zulip/zerver/lib
Zixuan James Li 3349ac9f86 user_groups: Audit UserGroup group based setting changes.
This add audit log entries when any group based setting of a user group
is updated. We store both the old and new values in extra_data, along
with the name of that setting. Entries populated during user group creation
are hardcoded to track "can_mention_group".

Potentially we can adjust "set_defaults_for_group_settings" so that it
populates realm audit logs with it, but that is out of scope for this change.

We use an atomic transaction so that the audit logs are committed
together with the updates.

Signed-off-by: Zixuan James Li <p359101898@gmail.com>
2023-07-11 08:56:55 -07:00
..
markdown markdown-processor: Update insertion_index check for multiple classes. 2023-07-07 11:07:45 -04:00
upload upload: Provide a default upload file name, rather than 500. 2023-07-03 21:51:58 -07:00
url_preview Remove statsd support. 2023-04-25 19:58:16 -07:00
webhooks integrations: Remove label URL from GitHub issue labeled notifications. 2023-06-29 13:17:30 -07:00
__init__.py
addressee.py zerver: Update comments with "private message" or "PM". 2023-06-23 11:24:13 -07:00
alert_words.py alert_words: Refactor the code to flush alert_words cache. 2023-06-28 18:03:32 -07:00
async_utils.py requirements: Upgrade Python requirements. 2022-05-03 10:10:06 -07:00
attachments.py upload: Rename delete_message_image to use word "attachment". 2023-03-02 16:36:19 -08:00
avatar.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
avatar_hash.py ruff: Fix RUF010 Use conversion in f-string. 2023-05-26 22:09:18 -07:00
bot_config.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
bot_lib.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
bot_storage.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
bulk_create.py settings: Add backend code for using user email_address_visibility setting. 2023-02-10 17:35:49 -08:00
cache.py alert_words: Refactor the code to flush alert_words cache. 2023-06-28 18:03:32 -07:00
cache_helpers.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
camo.py typing: Apply trivial none-checks with assertions as necessary. 2022-06-23 19:25:48 -07:00
ccache.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
compatibility.py ruff: Fix DTZ004 `datetime.datetime.utcfromtimestamp()`. 2023-01-04 16:25:07 -08:00
context_managers.py
create_user.py models: Add a unique index on UserProfile.api_key. 2023-05-19 11:11:04 -07:00
data_types.py ruff: Fix more of RUF010 Use conversion in f-string. 2023-06-06 14:58:11 -07:00
db.py Revert "db: Force use of TimeTrackingCursor to work around Django 4.2 bug." 2023-05-10 19:44:47 -07:00
debug.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
default_streams.py signup: Avoid bloated Stream objects for default streams. 2023-07-10 13:41:28 -07:00
dev_ldap_directory.py tests: Update tests to use example profile picture. 2022-10-31 14:36:54 -07:00
digest.py ruff: Fix C414 Unnecessary `list` call within `sorted()`. 2022-11-03 12:10:15 -07:00
display_recipient.py typing: Import ValuesQuerySet alias from django_stubs_ext. 2022-10-05 16:15:56 -07:00
domains.py
drafts.py typing: Remove ViewFuncT. 2022-08-22 15:46:16 -07:00
email_mirror.py requirements: Upgrade Python requirements. 2023-05-10 19:44:47 -07:00
email_mirror_helpers.py
email_notifications.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
email_validation.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
emoji.py emoji: Disallow `.` in custom emoji names. 2023-01-31 17:28:33 -08:00
error_notify.py error-bot: Remove ERROR_BOT support. 2023-04-13 14:59:58 -07:00
event_schema.py user_groups: Add support to update can_mention_group setting. 2023-06-30 17:28:33 -07:00
events.py default streams: Extract library functions. 2023-07-10 13:41:28 -07:00
exceptions.py message: Don't allow moving messages that have passed the time limit. 2023-04-11 11:07:23 -07:00
export.py zerver: Update comments with "private message" or "PM". 2023-06-23 11:24:13 -07:00
external_accounts.py typing: Import StrPromise alias from django_stubs_ext. 2022-10-05 16:15:56 -07:00
fix_unreads.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
generate_test_data.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
github.py ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
home.py narrow: Split out narrow_helpers. 2023-06-30 11:26:23 -07:00
hotspots.py ruff: Fix SIM118 Use `key in dict` instead of `key in dict.keys()`. 2023-01-04 16:25:07 -08:00
html_diff.py html_diff: Fix lxml import. 2023-03-05 14:46:28 -08:00
html_to_text.py
i18n.py django: Use HttpRequest.headers. 2022-05-13 20:42:20 -07:00
import_realm.py models: Add modified_user_group. 2023-07-11 08:56:55 -07:00
initial_password.py
integrations.py integrations: Remove ancient legacy trello plugin docs. 2023-06-09 15:08:24 -07:00
logging_util.py ruff: Fix SIM105 Use `contextlib.suppress` instead of try-except-pass. 2023-01-23 11:18:36 -08:00
management.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
mdiff.py node_tests: Move to web/tests. 2023-02-23 16:04:17 -08:00
mention.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
message.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
migrate.py
mobile_auth_otp.py
muted_users.py muted users: Make file naming consistent. 2023-02-10 15:39:57 -08:00
name_restrictions.py name_restrictions: Reject anything with zulip or kandra in it. 2023-06-23 10:45:40 -07:00
narrow.py narrow: Split out narrow_helpers. 2023-06-30 11:26:23 -07:00
narrow_helpers.py narrow: Split out narrow_helpers. 2023-06-30 11:26:23 -07:00
notes.py notes: Separate __notes_map per-subclass. 2022-10-10 08:42:13 -07:00
notification_data.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
onboarding.py zerver: Update comments with "private message" or "PM". 2023-06-23 11:24:13 -07:00
outgoing_http.py
outgoing_webhook.py outgoing_webhook: Respect settings.OUTGOING_WEBHOOK_TIMEOUT_SECONDS. 2023-05-16 07:00:37 -07:00
presence.py presence: Support null values in UserPresence. 2023-04-26 14:26:47 -07:00
profile.py profile: Strengthen decorator types using ParamSpec. 2022-04-14 12:44:35 -07:00
push_notifications.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
pysa.py
queue.py queue_processors: Avoid queue worker timeouts in tests. 2023-06-28 11:06:24 -07:00
rate_limiter.py test_helpers: Switch add/remove_ratelimit to a contextmanager. 2023-06-12 12:55:27 -07:00
realm_description.py
realm_icon.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
realm_logo.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
recipient_users.py zerver: Update comments with "private message" or "PM". 2023-06-23 11:24:13 -07:00
redis_utils.py
remote_server.py migration: Add `extra_data_json` for audit log models. 2023-06-07 12:14:43 -07:00
request.py codespell: Correct “requestor” to “requester”. 2023-06-20 16:17:55 -07:00
response.py response: Implement ignored parameters with MutableJsonResponse class. 2023-03-06 10:33:13 -08:00
rest.py ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
retention.py scheduled_message: Handle attachments properly. 2023-05-08 09:56:02 -07:00
safe_session_cached_db.py
scheduled_messages.py scheduled_messages: Add reasonable failure handling. 2023-05-09 13:48:28 -07:00
scim.py users: Set tos_version to -1 for users who have not logged-in yet. 2023-05-16 13:52:56 -07:00
scim_filter.py
send_email.py send_email: Delete ScheduledEmail objects with no recipients. 2023-06-19 13:40:50 -07:00
server_initialization.py auth: Rewrite data model for tracking enabled auth backends. 2023-04-18 09:22:56 -07:00
sessions.py typing: Add none-checks for miscellaneous cases. 2022-05-31 09:43:55 -07:00
singleton_bmemcached.py requirements: Upgrade Python requirements. 2023-04-03 22:39:21 -07:00
soft_deactivation.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
sounds.py actions: Split out zerver.lib.sounds. 2022-04-14 14:26:40 -07:00
sqlalchemy_utils.py
storage.py ruff: Fix PLE0101 Explicit return in `__init__`. 2023-02-23 11:47:08 -08:00
stream_color.py
stream_subscription.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
stream_topic.py message_send: Handle notifications for UNMUTED topic in a muted stream. 2023-03-06 19:15:45 -08:00
stream_traffic.py
streams.py default streams: Extract library functions. 2023-07-10 13:41:28 -07:00
string_validation.py email_mirror: Replace disallowed characters in incoming email subject. 2022-08-22 17:16:20 -07:00
subdomains.py settings: Allow customization of STATIC_URL. 2023-02-14 17:17:06 -05:00
subscription_info.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
templates.py requirements: Upgrade Python requirements. 2023-04-03 22:39:21 -07:00
test_classes.py test_classes: Do not necessary wrap test cases in a transaction. 2023-07-06 11:44:50 -07:00
test_console_output.py requirements: Upgrade Python requirements. 2023-04-25 21:20:33 -07:00
test_data.source.txt
test_fixtures.py ruff: Fix ANN204 missing return type annotation for __init__. 2022-11-16 09:29:11 -08:00
test_helpers.py test_helpers: Switch add/remove_ratelimit to a contextmanager. 2023-06-12 12:55:27 -07:00
test_runner.py avatars: Serve /user_avatars/ through Django, which offloads to nginx. 2023-01-09 18:23:58 -05:00
tex.py
thumbnail.py docs: Remove some outdated references to thumbnailing.md doc. 2022-07-12 17:44:24 -07:00
timeout.py test_timeout: Skip test_timeout_warn on Python 3.11 for coverage issue. 2023-05-18 11:52:22 -07:00
timestamp.py timestamp: Switch to a slightly faster datetime_to_timestamp. 2023-02-23 12:15:13 -08:00
timezone.py timezone: Improve tzdata parser’s compatibility with zic(8). 2022-09-20 16:58:31 -07:00
topic.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
transfer.py uploads: Add LOCAL_AVATARS_DIR / LOCAL_FILES_DIR computed settings. 2023-01-09 18:23:58 -05:00
types.py user_groups: Add can_mention_group setting. 2023-06-30 17:28:33 -07:00
url_encoding.py url-encoding: Update URLs for direct messages. 2023-04-25 09:07:08 -07:00
url_redirects.py help: Rename "Starting a new private thread" to "... new direct message". 2023-05-15 16:13:55 -07: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: Audit UserGroup group based setting changes. 2023-07-11 08:56:55 -07:00
user_message.py actions: Split out zerver.lib.user_message. 2022-04-14 17:14:30 -07:00
user_status.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
user_topics.py user_topics: Update 'topic_has_visibility_policy' to support INHERIT. 2023-04-18 16:40:57 -07:00
users.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
utils.py Remove statsd support. 2023-04-25 19:58:16 -07:00
validator.py validator: Generalize type of check_string_in argument. 2023-05-11 12:08:25 -07:00
widget.py
zcommand.py actions: Split out zerver.actions.user_settings. 2022-04-14 17:14:34 -07:00
zephyr.py