Go to file
Steve Howell 80c057d91d REQ: Use check_dict_only in update_user_backend.
Update the REQ check for profile_data in
update_user_backend by tweaking `check_profile_data`
to use `check_dict_only`.

Here is the relevant URL:

    path('users/<int:user_id>', rest_dispatch,
         {'GET': 'zerver.views.users.get_members_backend',

It would be nice to unify the validator
for these two views, but they are different:

    update_user_backend
    update_user_custom_profile_data

It's not completely clear to me why update_user_backend
seems to support a superset of the functionality
of `update_user_custom_profile_data`, but it has
this code to allow you to remove custom profile fields:

    clean_profile_data = []
    for entry in profile_data:
        assert isinstance(entry["id"], int)
        if entry["value"] is None or not entry["value"]:
            field_id = entry["id"]
            check_remove_custom_profile_field_value(target, field_id)
        else:
            clean_profile_data.append({
                "id": entry["id"],
                "value": entry["value"],
            })

Whereas the other view is much simpler:

def update_user_custom_profile_data(
    <snip>
) -> HttpResponse:

    validate_user_custom_profile_data(user_profile.realm.id, data)
    do_update_user_custom_profile_data_if_changed(user_profile, data)
    # We need to call this explicitly otherwise constraints are not check
    return json_success()
2020-06-25 10:54:15 -07:00
.circleci ci: Update Circle CI images. 2020-06-24 11:19:47 -07:00
.github github: Suggest GIFs too in PR template. 2018-02-16 09:59:22 -08:00
.tx cleanup: Delete trailing newlines. 2019-08-06 23:29:11 -07:00
analytics models: Update values of PreregistrationUser.invite_as dict. 2020-06-24 11:09:07 -07:00
confirmation python: Convert more percent formatting to Python 3.6 f-strings. 2020-06-14 23:27:22 -07:00
corporate test_stripe: Fix a type: ignore issue. 2020-06-23 11:29:54 -07:00
docs docs: Change next planned major release to 3.0. 2020-06-24 16:27:27 -07:00
frontend_tests puppeteer: Fix a flake in 02-message-basics.js. 2020-06-25 10:33:23 -07:00
locale i18n: Update translation data from Transifex. 2020-06-20 23:33:18 -07:00
pgroonga migrations: Escape more pedantically in pgroonga.0003_v2_api_upgrade. 2020-06-13 21:50:37 -07:00
puppet installer: Remove code specific to stretch or xenial. 2020-06-24 12:57:38 -07:00
requirements requirements: Upgrade fakeldap dependency to the latest version. 2020-06-24 20:14:32 -07:00
scripts installer: Halt if wrong version of PostgreSQL is already installed. 2020-06-24 12:57:38 -07:00
static recent_topics: Show a line below the focused element. 2020-06-24 15:37:46 -07:00
stubs pysa: Introduce sanitizers, models, and inline marking safe. 2020-06-11 12:57:49 -07:00
templates docs: Change next planned major release to 3.0. 2020-06-24 16:27:27 -07:00
tools check-issue-labels: Fix configparser import. 2020-06-24 19:26:02 -07:00
zerver REQ: Use check_dict_only in update_user_backend. 2020-06-25 10:54:15 -07:00
zilencer views: Rename messages.py to message_fetch.py. 2020-06-22 15:08:34 -07:00
zproject Revert "search: Enable pills-based UI for testing." 2020-06-24 16:58:58 -07:00
zthumbor isort: Treat tc_aws and thumbor as third-party. 2020-06-24 21:02:45 -07:00
.browserslistrc webpack: Transpile JS code with Babel. 2019-07-22 17:55:32 -07:00
.codecov.yml codecov: Change threshold to use percentage syntax. 2019-07-20 14:37:04 -07:00
.editorconfig .editorconfig: Add .scss, .hbs; drop weirder rules. 2020-04-22 15:03:08 -07:00
.eslintignore blueslip: Apply ESLint. 2019-11-01 12:13:59 -07:00
.eslintrc.json markdown: Add support for spoilers. 2020-06-16 16:14:10 -07:00
.gitattributes Revert "gitattributes: Mark yarn.lock as "binary", i.e. suppress diffs." 2019-05-20 19:31:14 -07:00
.gitignore gitignore: Ignore core dump files. 2020-06-17 13:35:33 -07:00
.gitlint lint: Allow revert commit messages in gitlint. 2018-02-13 09:21:01 -08:00
.isort.cfg isort: Treat tc_aws and thumbor as third-party. 2020-06-24 21:02:45 -07:00
.mailmap mailmap: Add mailmap entry for Aman Agrawal. 2020-05-15 17:11:19 -07:00
.npmignore
.pyre_configuration pysa: Add basic .pyre_configuration and taint.config for pysa. 2020-06-11 12:57:49 -07:00
.sonarcloud.properties tools: Configure Zulip to be scannable by SonarCloud. 2020-06-24 12:41:17 -07:00
.stylelintrc lint: Ban color names in CSS. 2019-01-22 15:33:18 -08:00
.yarnrc .yarnrc: Set ignore-scripts true. 2019-08-28 16:15:54 -07:00
CODE_OF_CONDUCT.md docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
CONTRIBUTING.md docs: Update most remaining references to zulipchat.com. 2020-06-08 18:10:45 -07:00
Dockerfile-postgresql base Zulip PostgreSQL Docker container on PGroonga official one 2019-12-30 10:20:25 -08:00
LICENSE docs: Bump copyright year. 2020-04-23 16:04:54 -07:00
NOTICE license: Move license application notice from LICENSE to NOTICE. 2018-10-02 12:04:44 -07:00
README.md docs: Update URLs to use https://zulip.com. 2020-06-08 18:10:45 -07:00
Vagrantfile vagrant: Remove uartmode1 woarkound. 2020-06-22 14:56:38 -07:00
babel.config.js babel: Enable loose mode. 2020-02-05 11:52:52 -08:00
manage.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
mypy.ini test_runner: Remove unused type: ignore comments. 2020-06-23 11:29:54 -07:00
package.json dependencies: Upgrade JavaScript dependencies. 2020-06-07 11:06:57 -07:00
postcss.config.js webpack: Move CSS minification to optimization stage. 2019-09-02 21:58:13 -07:00
tsconfig.json tsconfig: Enable resolveJsonModule. 2020-05-26 23:33:40 -07:00
version.py requirements: Upgrade fakeldap dependency to the latest version. 2020-06-24 20:14:32 -07:00
yarn.lock dependencies: Upgrade JavaScript dependencies. 2020-06-07 11:06:57 -07:00

README.md

Zulip overview

Zulip is a powerful, open source group chat application that combines the immediacy of real-time chat with the productivity benefits of threaded conversations. Zulip is used by open source projects, Fortune 500 companies, large standards bodies, and others who need a real-time chat system that allows users to easily process hundreds or thousands of messages a day. With over 500 contributors merging over 500 commits a month, Zulip is also the largest and fastest growing open source group chat project.

CircleCI branch Coverage Status Mypy coverage GitHub release docs Zulip chat Twitter

Getting started

Click on the appropriate link below. If nothing seems to apply, join us on the Zulip community server and tell us what's up!

You might be interested in:

You may also be interested in reading our blog or following us on twitter. Zulip is distributed under the Apache 2.0 license.