def processing(self, user, profile, msg): # Умови при яких зміни не відбудуться: if has_group(user, 'members'): msg.title = user.username msg.type = msgType.NoChange msg.message = "Акаунт вже має ці права доступу!" self.counter["доступ вже є"] += 1 elif profile and profile.is_recognized == False: msg.title = user.username msg.type = msgType.Error msg.message = "Відхилений Акаунт не може отримати права доступу!" self.counter["відхилені"] += 1 elif (not profile) or (profile and profile.is_recognized == None): msg.title = user.username msg.type = msgType.Error msg.message = "Непідтверджений Акаунт не може отримати права доступу!" self.counter["непідтверджені"] += 1 else: # Робимо зміни: add_group(user, 'members') user.save() msg.title = user.username msg.type = msgType.Change msg.message = "Права доступу встановлено!" self.counter["встановлено"] += 1 e_msg_body = "Ваш акаунт на сайті отримав права доступу " \ "члена кооперативу." self.send_e_mail(user, e_msg_body) return user, msg
def save(self, commit=True): instance = super().save(commit=False) if self.cleaned_data.get('has_perm_member'): add_group(instance, 'members') else: remove_group(instance, 'members') if commit: instance.save() return instance
def test_remove_group(self): DummyUser().create_dummy_group(group_name='members') add_group(self.user, 'members') self.assertTrue(has_group(self.user, 'members')) remove_group(self.user, 'members') self.assertFalse(has_group(self.user, 'members'))
def test_add_group_gives_error_if_no_group(self): with self.assertRaises(IntegrityError): add_group(self.user, 'members')