-
-
Save elcolie/d28e7fcf54334a9f13df5fff1b7d9fe0 to your computer and use it in GitHub Desktop.
UserRole model with user is assigned when the instance is save
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.contrib.auth.models import User | |
from django.db import models | |
from poinkbackend.apps.commons.models import AbstractTimestamp | |
from poinkbackend.apps.roles.models import Role | |
class UserRole(AbstractTimestamp): | |
user = models.ForeignKey(User, related_name='user_roles', on_delete=models.PROTECT) | |
role = models.ForeignKey(Role, related_name='user_roles', on_delete=models.PROTECT) | |
def __str__(self): | |
return f'{self.user}-{self.role}' | |
def save(self, force_insert=False, force_update=False, using=None, | |
update_fields=None): | |
instance = super().save(force_insert=False, force_update=False, using=None, | |
update_fields=None) | |
self.user.groups.add(self.role.group) | |
return instance | |
def delete(self, using=None, keep_parents=False): | |
self.user.groups.remove(self.role.group) | |
return super().delete(using=None, keep_parents=False) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment