def test_log_user_groups_mixed( user_a, user_b, assert_permissionchangelog, ): group0, group1, group2 = GroupFactory.create_batch(size=3) added_groups = [group2] removed_groups = [group0] log_user_groups(user_a, user_b, (added_groups, removed_groups)) changelog_entry0, changelog_entry1 = PermissionChangelog.objects.all() assert_permissionchangelog( changelog_entry0, 'added', user_a, user_b, group2 ) assert_permissionchangelog( changelog_entry1, 'removed', user_a, user_b, group0 )
def test_log_user_groups_removed( user_a, user_b, assert_permissionchangelog, ): group0, group1, group2 = GroupFactory.create_batch(size=3) removed_members = [group0, group2] log_user_groups(user_a, user_b, ([], removed_members)) changelog_entry0, changelog_entry1 = PermissionChangelog.objects.all() assert_permissionchangelog( changelog_entry0, 'removed', user_a, user_b, group0 ) assert_permissionchangelog( changelog_entry1, 'removed', user_a, user_b, group2 )
def save_model(self, request, obj, form, change): """ Save a user and log changes in its roles. """ add_groups, remove_groups = utils.get_m2m_changes( obj.groups, form.cleaned_data['groups']) super(UserAdmin, self).save_model(request, obj, form, change) log_user_groups(request.user, obj, (add_groups, remove_groups))
def test_log_user_groups_added(user0, user1, group_factory, assert_permissionchangelog): group0, group1, group2 = group_factory(batch=3) added_groups = [group0, group2] log_user_groups(user0, user1, (added_groups, [])) changelog_entry0, changelog_entry1 = PermissionChangelog.objects.all() assert_permissionchangelog(changelog_entry0, 'added', user0, user1, group0) assert_permissionchangelog(changelog_entry1, 'added', user0, user1, group2)
def save_model(self, request, obj, form, change): """ Save a user and log changes in its roles. """ super().save_model(request, obj, form, change) # Users can only be moved between groups upon editing, not creation if "groups" in form.cleaned_data: add_groups, remove_groups = utils.get_m2m_changes( obj.groups, form.cleaned_data["groups"]) log_user_groups(request.user, obj, (add_groups, remove_groups))
def test_log_user_groups_removed(user0, user1, group_factory, assert_permissionchangelog): group0, group1, group2 = group_factory(batch=3) removed_members = [group0, group2] log_user_groups(user0, user1, ([], removed_members)) changelog_entry0, changelog_entry1 = PermissionChangelog.objects.all() assert_permissionchangelog(changelog_entry0, 'removed', user0, user1, group0) assert_permissionchangelog(changelog_entry1, 'removed', user0, user1, group2)
def test_log_user_groups_added( user_a, user_b, assert_permissionchangelog, ): group0, group1, group2 = GroupFactory.create_batch(size=3) added_groups = [group0, group2] log_user_groups(user_a, user_b, (added_groups, [])) changelog_entry0, changelog_entry1 = PermissionChangelog.objects.all() assert_permissionchangelog(changelog_entry0, "added", user_a, user_b, group0) assert_permissionchangelog(changelog_entry1, "added", user_a, user_b, group2)
def save_model(self, request, obj, form, change): """ Save a user and log changes in its roles. """ add_groups, remove_groups = utils.get_m2m_changes( obj.groups, form.cleaned_data['groups'] ) super(UserAdmin, self).save_model(request, obj, form, change) log_user_groups( request.user, obj, (add_groups, remove_groups) )
def test_log_user_groups_empty(user_a, user_b): log_user_groups(user_a, user_b, ([], [])) assert list(PermissionChangelog.objects.all()) == []