diff --git a/HISTORY.rst b/HISTORY.rst index e64f02b785..c6c8ac5ff8 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,6 +1,7 @@ 3.1.3 (2018-09-26) ================== * Make sure template API renders in non US languages. +* Fix Fix user groups view. 3.1.2 (2018-09-21) diff --git a/mayan/apps/user_management/tests/test_views.py b/mayan/apps/user_management/tests/test_views.py index c857f5882e..d73796dbce 100644 --- a/mayan/apps/user_management/tests/test_views.py +++ b/mayan/apps/user_management/tests/test_views.py @@ -50,6 +50,25 @@ class UserManagementViewTestCase(UserTestMixin, GenericViewTestCase): self.assertEqual(get_user_model().objects.count(), 3) self.assertTrue(TEST_USER_2_USERNAME in get_user_model().objects.values_list('username', flat=True)) + def _request_user_groups_view(self): + return self.post( + viewname='user_management:user_groups', args=(self.user_2.pk,) + ) + + def test_user_groups_view_no_permission(self): + self._create_test_user_2() + response = self._request_user_groups_view() + self.assertEqual(response.status_code, 403) + + def test_user_groups_view_with_access(self): + self._create_test_user_2() + self.grant_access(permission=permission_user_edit, obj=self.user_2) + + response = self._request_user_groups_view() + self.assertContains( + response=response, text=self.user_2.username, status_code=200 + ) + def _request_set_password(self, password): return self.post( viewname='user_management:user_set_password', args=(self.user_2.pk,), diff --git a/mayan/apps/user_management/views.py b/mayan/apps/user_management/views.py index 089dffd982..1c96280164 100644 --- a/mayan/apps/user_management/views.py +++ b/mayan/apps/user_management/views.py @@ -235,6 +235,7 @@ class UserGroupsView(AssignRemoveView): 'title': _('Groups of user: %s') % self.get_object() } + def get_object(self): return get_object_or_404( get_user_model().objects.filter( is_superuser=False, is_staff=False