zulip/zerver/lib
Zixuan James Li b02779c005 request: Refactor remote_server into RequestNotes.
This eliminates the possibility of having `request.user` as
`RemoteZulipServer` by refactoring it as an attribute of `RequestNotes`.

So we can effectively narrow the type of `request.user` by testing
`user.is_authenticated` in most cases (except that of `SCIMClient`) in
code paths that require access to `.format_requestor_for_logs` where we
previously expect either `UserProfile` or `RemoteZulipServer` backed by
the implied polymorphism.

Signed-off-by: Zixuan James Li <p359101898@gmail.com>
2022-07-28 09:38:40 -07:00
..
markdown openapi: Fuse generate_api_title with generate_api_description. 2022-07-22 16:41:55 -07:00
url_preview python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
webhooks integrations: Add RhodeCode webhook integration. 2022-07-13 14:10:00 -07:00
__init__.py
addressee.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
alert_words.py docs: Remove highlight parameters from links. 2022-02-16 13:15:39 -08:00
async_utils.py requirements: Upgrade Python requirements. 2022-05-03 10:10:06 -07:00
attachments.py python: Fix mypy no_implicit_reexport errors. 2021-07-16 14:02:31 -07:00
avatar.py avatar: Remove ?x=x kludge. 2021-10-14 12:47:43 -07:00
avatar_hash.py typing: Improve typing with assertions. 2021-08-20 05:54:19 -07:00
bot_config.py bot_config: Placate mypy 0.930. 2021-12-28 09:31:55 -08:00
bot_lib.py actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
bot_storage.py
bulk_create.py bulk_create: Copy realm-level defaults in bulk_create_users. 2022-05-04 12:52:43 -07:00
cache.py typing: Avoid redefinition of incompatible QuerySets. 2022-07-07 11:27:43 -07:00
cache_helpers.py cache: Tighten function signatures with generic QuerySet. 2022-07-07 11:28:13 -07:00
camo.py typing: Apply trivial none-checks with assertions as necessary. 2022-06-23 19:25:48 -07:00
ccache.py python: Remove default "utf8" argument for encode(), decode(). 2021-08-02 15:53:52 -07:00
compatibility.py requirements: Upgrade to Django 4.0. 2022-07-13 16:07:17 -07:00
context_managers.py
create_user.py user_profile: Fallback to "" for timezone upon creation. 2022-06-28 16:05:24 -07:00
data_types.py
db.py db: Use cursor_factory psycopg2 option. 2022-07-05 17:54:17 -07:00
debug.py python: Accept Optional[FrameType] in signal handlers. 2021-12-28 09:31:55 -08:00
dev_ldap_directory.py typing: Add assertions before accessing settings. 2022-07-15 14:00:56 -07:00
digest.py typing: Broaden type annotations for QuerySet compatibility. 2022-07-07 11:27:42 -07:00
display_recipient.py display_recipient: Tighten function signatures with ValuesQuerySet. 2022-07-07 11:28:13 -07:00
domains.py
drafts.py actions: Split out zerver.lib.recipient_users. 2022-04-14 17:14:30 -07:00
email_mirror.py email_mirror: Handle invalid `charset="..."` values. 2022-05-16 12:04:38 -07:00
email_mirror_helpers.py email_mirror: Move ZulipEmailForwardUserError into email_mirror_helpers. 2021-08-31 16:37:54 -07:00
email_notifications.py email_notifications: Fix type annotation for tuples. 2022-07-26 18:00:24 -07:00
email_validation.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
emoji.py emoji: Update emoji validation error messages with more information. 2022-07-12 16:43:29 -07:00
error_notify.py error_notify: Fix type narrowing of settings.ERROR_BOT. 2022-07-15 14:00:56 -07:00
event_schema.py models: Remove "role" field from Subscription. 2022-07-13 17:07:44 -07:00
events.py events_register: Pass spectator set language to client in user_settings. 2022-07-14 14:27:32 -07:00
exceptions.py exceptions: Guard validation error conversion with message_dict. 2022-07-26 14:17:46 -07:00
export.py realm_reactivation: Prevent realm reactivation link reuse. 2022-07-26 17:14:26 -07:00
external_accounts.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
fix_unreads.py models: Use default db table name for UserTopic. 2021-09-17 12:14:28 -07:00
generate_test_data.py populate_db: Generate resolved topics for testing. 2021-08-03 16:42:09 -07:00
github.py fetch-contributor-data: Use builtin backoff. 2021-09-01 05:34:13 -07:00
home.py home: Prevent mypy from inferring the type of page_params. 2022-06-23 22:09:05 -07:00
hotspots.py hotspots: Remove intro_reply hotspot. 2021-12-07 21:55:59 -08:00
html_diff.py html_diff: Handle empty differences between empty strings. 2021-10-18 18:27:40 -07:00
html_to_text.py
i18n.py django: Use HttpRequest.headers. 2022-05-13 20:42:20 -07:00
import_realm.py import: Call create_system_user_groups_for_realm outside the function. 2022-07-26 17:36:53 -07:00
initial_password.py initial_password: Add explicit development environment assertion. 2022-03-21 12:05:59 -07:00
integrations.py test_docs: Add assertion check. 2022-07-26 18:00:24 -07:00
logging_util.py logging_util: Save an assertion with __getitem__. 2022-06-28 16:05:24 -07:00
management.py typing: Avoid redefinition of incompatible QuerySets. 2022-07-07 11:27:43 -07:00
mdiff.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
mention.py mypy: Enable redundant-expr errors. 2022-06-23 19:22:12 -07:00
message.py realm: Removed WILDCARD_MENTION_POLICY_STREAM_ADMINS option. 2022-07-13 17:07:44 -07:00
migrate.py typing: Replace CursorObj by CursorWrapper. 2021-08-20 05:54:19 -07:00
mobile_auth_otp.py
name_restrictions.py name_restrictions: Add your-org.zulipchat.com as a reserved name. 2022-05-17 14:58:31 -07:00
narrow.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
notes.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
notification_data.py notifications: Move user group mentions helpers together. 2022-04-27 16:43:54 -07:00
onboarding.py onboarding: Override the language of welcome bot PMs with user setting. 2022-04-28 15:03:26 -07:00
outgoing_http.py python: Replace requests.packages.urllib3 alias with urllib3. 2022-01-23 22:14:17 -08:00
outgoing_webhook.py actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
presence.py typing: Avoid redefinition of incompatible QuerySets. 2022-07-07 11:27:43 -07:00
profile.py profile: Strengthen decorator types using ParamSpec. 2022-04-14 12:44:35 -07:00
push_notifications.py push_notifications: Soft reactivate mentioned users. 2022-04-27 16:43:54 -07:00
pysa.py
queue.py requirements: Upgrade to Tornado 6. 2022-05-02 17:41:49 -07:00
rate_limiter.py upload: Allow rate limited access to spectators for uploaded files. 2022-03-24 10:50:00 -07:00
realm_description.py markdown: Refactor out additional properties added to Message. 2021-06-24 18:14:53 -07:00
realm_icon.py
realm_logo.py realm: Rename plan type constants to be more descriptive. 2021-10-19 12:20:39 -07:00
recipient_users.py actions: Split out zerver.lib.recipient_users. 2022-04-14 17:14:30 -07:00
redis_utils.py
remote_server.py push_notifs: Log the number of devices notification was sent to. 2021-09-29 15:50:06 -07:00
request.py request: Refactor remote_server into RequestNotes. 2022-07-28 09:38:40 -07:00
response.py response: Replace json_unauthorized with UnauthorizedError. 2022-07-18 18:01:42 -07:00
rest.py decorator: Only URL-decode application/x-www-form-urlencoded requests. 2022-06-25 08:36:16 -07:00
retention.py typing: Broaden type annotations for QuerySet compatibility. 2022-07-07 11:27:42 -07:00
safe_session_cached_db.py session: Enforce that changes cannot happen in a transaction. 2022-03-15 13:52:15 -07:00
scim.py mypy: Enable redundant-expr errors. 2022-06-23 19:22:12 -07:00
scim_filter.py scim: Order Users by id when queried using filter syntax. 2021-11-26 16:06:16 -08:00
send_email.py typing: Broaden type annotations for QuerySet compatibility. 2022-07-07 11:27:42 -07:00
server_initialization.py actions: Split out zerver.actions.users. 2022-04-14 17:14:34 -07:00
sessions.py typing: Add none-checks for miscellaneous cases. 2022-05-31 09:43:55 -07:00
singleton_bmemcached.py cache: Instantiate only one BMemcached cache backend. 2022-05-02 17:41:49 -07:00
soft_deactivation.py soft_deactivation: Tighten function signatures with generic QuerySet. 2022-07-07 11:28:13 -07:00
sounds.py actions: Split out zerver.lib.sounds. 2022-04-14 14:26:40 -07:00
sqlalchemy_utils.py sqlalchemy_utils: Remove NonClosingPool.recreate override. 2022-02-10 11:59:41 -08:00
storage.py storage: Fix type annotation of content. 2022-07-27 13:46:13 -07:00
stream_color.py streams: Extract stream_color library. 2022-03-14 18:01:36 -07:00
stream_subscription.py stream_subscription: Tighten function signatures with generic QuerySet. 2022-07-07 11:28:13 -07:00
stream_topic.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
stream_traffic.py streams: Extract stream_traffic library. 2022-03-14 18:01:36 -07:00
streams.py streams: Extract stream access checks in a function. 2022-07-26 17:25:52 -07:00
string_validation.py string_validation: Prohibit non-printable characters in stream names. 2022-02-01 16:04:34 -08:00
subdomains.py python: Reformat with Black 22 (stable). 2022-02-18 18:03:13 -08:00
subscription_info.py models: Remove "role" field from Subscription. 2022-07-13 17:07:44 -07:00
templates.py templates: Narrow the type of jinjia to Jinja2. 2022-07-26 18:00:24 -07:00
test_classes.py requirements: Upgrade Python requirements. 2022-07-05 17:54:17 -07:00
test_console_output.py requirements: Upgrade Python requirements. 2022-05-03 10:10:06 -07:00
test_data.source.txt Rename default branch to ‘main’. 2021-09-06 12:56:35 -07:00
test_fixtures.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
test_helpers.py request: Refactor remote_server into RequestNotes. 2022-07-28 09:38:40 -07:00
test_runner.py requirements: Upgrade to Django 4.0. 2022-07-13 16:07:17 -07:00
tex.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
thumbnail.py docs: Remove some outdated references to thumbnailing.md doc. 2022-07-12 17:44:24 -07:00
timeout.py timeout: Minor comment cleanups. 2022-04-07 17:26:01 -07:00
timestamp.py docs: Add missing space in “time zone”. 2022-02-24 14:05:12 -08:00
timezone.py requirements: Upgrade to Django 4.0. 2022-07-13 16:07:17 -07:00
topic.py topic: Tighten function signatures with generic QuerySet. 2022-07-07 11:28:13 -07:00
transfer.py cache: Use getattr to access _cache. 2022-07-20 22:00:05 -07:00
type_debug.py
types.py types: Add ProfileDataElementUpdateDict. 2022-07-15 14:55:03 -07:00
unminify.py
upload.py emoji: Write "original" file before attempting resize. 2022-07-06 17:20:40 -07:00
url_encoding.py hash_util: Move enc/decodeHashComponent to shared. 2022-03-01 18:14:31 -08:00
user_agent.py
user_counts.py actions: Split out zerver.lib.user_counts. 2022-04-14 17:14:30 -07:00
user_groups.py user_groups: Tighten function signatures with generic QuerySet. 2022-07-07 11:28:13 -07:00
user_message.py actions: Split out zerver.lib.user_message. 2022-04-14 17:14:30 -07:00
user_mutes.py typing: Use assertions for function arguments. 2021-07-26 14:48:45 -07:00
user_status.py user_status: Add UserInfoDict. 2022-07-22 16:31:18 -07:00
user_topics.py typing: Avoid redefinition of incompatible QuerySets. 2022-07-07 11:27:43 -07:00
users.py 2fa: Refactor is_2fa_verified to require type narrowing. 2022-07-27 14:28:31 -07:00
utils.py utils: Remove unused split_by function. 2021-08-19 01:51:37 -07:00
validator.py requirements: Upgrade to Django 4.0. 2022-07-13 16:07:17 -07:00
widget.py poll widget: Add server validation. 2021-06-14 17:46:16 -07:00
zcommand.py actions: Split out zerver.actions.user_settings. 2022-04-14 17:14:34 -07:00
zephyr.py