class UserProfileDetailShow(UserProfileOneToOne, OneToOneDetailShow): one_fields = ('username', 'first_name', 'last_name', 'email') two_fields = ('flat', 'picture') one_img_fields = None two_img_fields = ('picture', ) template_name = 'koop_adm_user_prof.html' FormOne = None FormTwo = None @method_decorator( author_or_permission_required(UserProfile, 'koopsite.view_userprofile')) def dispatch(self, request, *args, **kwargs): return super().dispatch(request, *args, **kwargs) def get_obj(self, instance, fields): obj = [] for k in fields: t = instance._meta.get_field(k).get_internal_type() n = instance._meta.get_field(k).verbose_name.capitalize() # if instance._meta.model_name == 'user': # n = user_verbose_names_uk.get(k, n) v = getattr(instance, k) obj.append((k, n, v)) return obj
def test_author_or_permission_required_User_1_Permission_True(self): view_func = self.view_func decorated = author_or_permission_required(self.model, self.perm) self.assertEqual(view_func(0), 'passed') self.assertEqual(decorated(view_func)(self.request, pk='1'), 'passed') self.assertEqual(decorated(view_func)(self.request, pk='2'), 'passed')
def test_author_or_permission_required_User_1_Permission_True(self): view_func = self.view_func decorated = author_or_permission_required(self.model, self.perm) self.assertEqual(view_func(0), 'passed') self.assertEqual(decorated(view_func)(self.request, pk='1'), 'passed') self.assertEqual(decorated(view_func)(self.request, pk='2'), 'passed')
def test_author_or_permission_required_User_1_Perm_False(self): view_func = self.view_func self.user.has_perms.return_value = False decorated = author_or_permission_required(self.model, self.perm) self.assertEqual(view_func(0), 'passed') self.assertEqual(decorated(view_func)(self.request, pk='1'), 'passed') self.assertEqual(type(decorated(view_func)(self.request, pk='2')), HttpResponseRedirect)
def test_author_or_permission_required_User_1_Perm_False(self): view_func = self.view_func self.user.has_perms.return_value = False decorated = author_or_permission_required(self.model, self.perm) self.assertEqual(view_func(0), 'passed') self.assertEqual(decorated(view_func)(self.request, pk='1'), 'passed') self.assertEqual(type(decorated(view_func)(self.request, pk='2')), HttpResponseRedirect)
def test_author_or_permission_required_UserProfile_Perm_False(self): view_func = self.view_func self.user.has_perms.return_value = False DummyUser().create_dummy_profile(self.user, id=3) DummyUser().create_dummy_profile(self.user2, id=4) decorated = author_or_permission_required(UserProfile, "") self.assertEqual(view_func(0), 'passed') self.assertEqual(decorated(view_func)(self.request, pk='3'), 'passed') self.assertEqual(type(decorated(view_func)(self.request, pk='4')), HttpResponseRedirect)
def test_author_or_permission_required_UserProfile_Perm_False(self): view_func = self.view_func self.user.has_perms.return_value = False DummyUser().create_dummy_profile(self.user, id=3) DummyUser().create_dummy_profile(self.user2, id=4) decorated = author_or_permission_required(UserProfile, "") self.assertEqual(view_func(0), 'passed') self.assertEqual(decorated(view_func)(self.request, pk='3'), 'passed') self.assertEqual(type(decorated(view_func)(self.request, pk='4')), HttpResponseRedirect)
class AjaxReportDelete(AjaxTableRowViewBase): # Перейменовуємо обрану теку у відомій теці з доп. AJAX @method_decorator(author_or_permission_required(Report, 'folders.delete_report', raise_exception=True)) def dispatch(self, request, *args, **kwargs): return super().dispatch(request, *args, **kwargs) def processing(self, report, rqst, msg): # Умови при яких зміни не відбудуться: if False: # перевірка відбувається раніше декоратором msg.title = rqst.name msg.type = msgType.Forbidden msg.message = "У Вас немає доступу для видалення обраного файла." else: # Робимо зміни: report.file.delete() # файл видалено з диска report.delete() # файл видалено з бази даних msg.title = rqst.name msg.type = msgType.DeleteRow msg.message = "Файл видалено!" return None, msg