def add_user(self, user, role_type): UserGroup = get_user_model().groups.through with transaction.atomic(): role = self.roles.get(role_type=role_type) membership, created = UserGroup.objects.get_or_create( user=user, group=role.permission_group, ) if created: structure_role_granted.send( sender=Customer, structure=self, user=user, role=role_type, ) role_name = role.get_role_type_display().lower() event_logger.info( 'User %s has gained role of %s in customer %s.', user.username, role_name, self.name, extra={ 'customer': self, 'affected_user': user, 'event_type': 'role_granted', 'structure_type': 'customer', 'role_name': role_name, }, ) return membership, created
def add_user(self, user, role_type): UserGroup = get_user_model().groups.through with transaction.atomic(): role = self.roles.get(role_type=role_type) membership, created = UserGroup.objects.get_or_create( user=user, group=role.permission_group, ) if created: structure_role_granted.send( sender=ProjectGroup, structure=self, user=user, role=role_type, ) return membership, created
def add_user(self, user, role, created_by=None, expiration_time=None): permission = self.permissions.filter(user=user, role=role, is_active=True).first() if permission: return permission, False permission = self.permissions.create( user=user, role=role, is_active=True, created_by=created_by, expiration_time=expiration_time, ) structure_role_granted.send( sender=self.__class__, structure=self, user=user, role=role, ) return permission, True