user_groups: Audit UserGroup memberships changes.

This also add audit log entries during user creation and role change,
because we modify system group memberships there.

Signed-off-by: Zixuan James Li <p359101898@gmail.com>
This commit is contained in:
Zixuan James Li
2022-11-20 22:26:34 -08:00
committed by Tim Abbott
parent 63f5936207
commit 44781ddfa9
7 changed files with 168 additions and 4 deletions

View File

@@ -240,6 +240,18 @@ def bulk_add_members_to_user_group(
for user_id in user_profile_ids
]
UserGroupMembership.objects.bulk_create(memberships)
now = timezone_now()
RealmAuditLog.objects.bulk_create(
RealmAuditLog(
realm=user_group.realm,
modified_user_id=user_id,
modified_user_group=user_group,
event_type=RealmAuditLog.USER_GROUP_DIRECT_USER_MEMBERSHIP_ADDED,
event_time=now,
acting_user=acting_user,
)
for user_id in user_profile_ids
)
do_send_user_group_members_update_event("add_members", user_group, user_profile_ids)
@@ -251,6 +263,18 @@ def remove_members_from_user_group(
UserGroupMembership.objects.filter(
user_group_id=user_group.id, user_profile_id__in=user_profile_ids
).delete()
now = timezone_now()
RealmAuditLog.objects.bulk_create(
RealmAuditLog(
realm=user_group.realm,
modified_user_id=user_id,
modified_user_group=user_group,
event_type=RealmAuditLog.USER_GROUP_DIRECT_USER_MEMBERSHIP_REMOVED,
event_time=now,
acting_user=acting_user,
)
for user_id in user_profile_ids
)
do_send_user_group_members_update_event("remove_members", user_group, user_profile_ids)