Add role create and edit events

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2019-04-24 23:19:04 -04:00
parent 3f9421fc75
commit 5574aaec9e
9 changed files with 123 additions and 2 deletions

View File

@@ -3,12 +3,13 @@ from __future__ import unicode_literals
import logging
from django.contrib.auth.models import Group
from django.db import models
from django.db import models, transaction
from django.urls import reverse
from django.utils.encoding import force_text, python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from .classes import Permission
from .events import event_role_created, event_role_edited
from .managers import RoleManager, StoredPermissionManager
logger = logging.getLogger(__name__)
@@ -121,3 +122,18 @@ class Role(models.Model):
def natural_key(self):
return (self.label,)
natural_key.dependencies = ['auth.Group', 'permissions.StoredPermission']
def save(self, *args, **kwargs):
_user = kwargs.pop('_user', None)
with transaction.atomic():
is_new = not self.pk
super(Role, self).save(*args, **kwargs)
if is_new:
event_role_created.commit(
actor=_user, target=self
)
else:
event_role_edited.commit(
actor=_user, target=self
)