Record actor for the user/group create/edit events

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2019-04-25 02:30:52 -04:00
parent b3b92e8cda
commit 1a71e02aab
2 changed files with 31 additions and 10 deletions

View File

@@ -30,6 +30,7 @@ class GroupEventsTestCase(GroupTestMixin, GroupViewTestMixin, UserTestMixin, Gen
)
self._request_test_group_create_view()
self.assertEqual(Action.objects.last().actor, self._test_case_user)
self.assertEqual(Action.objects.last().target, self.test_group)
self.assertEqual(Action.objects.last().verb, event_group_created.id)
@@ -55,6 +56,9 @@ class GroupEventsAPITestCase(GroupAPITestMixin, GroupTestMixin, GroupViewTestMix
)
self._request_test_group_create_api_view()
# TODO: Future improvement, find method to record the user who
# commited the event. Will required custom serializer .create method
self.assertEqual(Action.objects.last().actor, self.test_group)
self.assertEqual(Action.objects.last().target, self.test_group)
self.assertEqual(Action.objects.last().verb, event_group_created.id)
@@ -67,6 +71,9 @@ class GroupEventsAPITestCase(GroupAPITestMixin, GroupTestMixin, GroupViewTestMix
)
self._request_test_group_edit_patch_api_view()
# TODO: Future improvement, find method to record the user who
# commited the event. Will required custom serializer .update method
self.assertEqual(Action.objects.last().actor, self.test_group)
self.assertEqual(Action.objects.last().target, self.test_group)
self.assertEqual(Action.objects.last().verb, event_group_edited.id)
@@ -80,6 +87,7 @@ class UserEventsTestCase(UserAPITestMixin, UserTestMixin, UserViewTestMixin, Gen
)
self._request_test_user_create_view()
self.assertEqual(Action.objects.last().actor, self._test_case_user)
self.assertEqual(Action.objects.last().target, self.test_user)
self.assertEqual(Action.objects.last().verb, event_user_created.id)
@@ -92,6 +100,7 @@ class UserEventsTestCase(UserAPITestMixin, UserTestMixin, UserViewTestMixin, Gen
)
self._request_test_user_edit_view()
self.assertEqual(Action.objects.last().actor, self._test_case_user)
self.assertEqual(Action.objects.last().target, self.test_user)
self.assertEqual(Action.objects.last().verb, event_user_edited.id)
@@ -105,6 +114,9 @@ class UserEventsAPITestCase(UserAPITestMixin, UserTestMixin, UserViewTestMixin,
)
self._request_test_user_create_api_view()
# TODO: Future improvement, find method to record the user who
# commited the event. Will required custom serializer .create method
self.assertEqual(Action.objects.last().actor, self.test_user)
self.assertEqual(Action.objects.last().target, self.test_user)
self.assertEqual(Action.objects.last().verb, event_user_created.id)
@@ -117,5 +129,8 @@ class UserEventsAPITestCase(UserAPITestMixin, UserTestMixin, UserViewTestMixin,
)
self._request_test_user_edit_patch_api_view()
# TODO: Future improvement, find method to record the user who
# commited the event. Will required custom serializer .update method
self.assertEqual(Action.objects.last().actor, self.test_user)
self.assertEqual(Action.objects.last().target, self.test_user)
self.assertEqual(Action.objects.last().verb, event_user_edited.id)

View File

@@ -66,6 +66,9 @@ class GroupCreateView(SingleObjectCreateView):
)
view_permission = permission_group_create
def get_save_extra_data(self):
return {'_user': self.request.user}
class GroupEditView(SingleObjectEditView):
fields = ('name',)
@@ -81,6 +84,9 @@ class GroupEditView(SingleObjectEditView):
'title': _('Edit group: %s') % self.get_object(),
}
def get_save_extra_data(self):
return {'_user': self.request.user}
class GroupListView(SingleObjectListView):
model = Group
@@ -185,22 +191,19 @@ class UserCreateView(SingleObjectCreateView):
view_permission = permission_user_create
def form_valid(self, form):
user = form.save(commit=False)
user.set_unusable_password()
user.save()
messages.success(
message=_('User "%s" created successfully.') % user,
request=self.request
)
super(UserCreateView, self).form_valid(form=form)
return HttpResponseRedirect(
reverse(
viewname='user_management:user_set_password', kwargs={
'pk': user.pk
}
viewname='user_management:user_set_password',
kwargs={'pk': self.object.pk}
)
)
def get_save_extra_data(self):
return {'_user': self.request.user}
class UserDeleteView(MultipleObjectConfirmActionView):
object_permission = permission_user_delete
queryset = get_user_model().objects.filter(
@@ -291,6 +294,9 @@ class UserEditView(SingleObjectEditView):
'title': _('Edit user: %s') % self.get_object(),
}
def get_save_extra_data(self):
return {'_user': self.request.user}
class UserGroupsView(AssignRemoveView):
decode_content_type = True