signals: do not log modification to model done by code and not an user
This commit is contained in:
parent
e68a56f6f2
commit
1c38b5ff45
|
@ -778,18 +778,6 @@ def guest_users():
|
|||
def non_guest_users():
|
||||
return User.objects.exclude(docbowprofile__is_guest=True)
|
||||
|
||||
# signals
|
||||
|
||||
from django.db.models.signals import m2m_changed
|
||||
from django.dispatch import receiver
|
||||
|
||||
|
||||
@receiver(m2m_changed, sender=User.groups.through)
|
||||
def groups_changed(sender, instance, action, **kwargs):
|
||||
'''When a user get a group, give it access to the administration.'''
|
||||
if action.startswith('post'):
|
||||
instance.is_staff = instance.groups.exists()
|
||||
instance.save()
|
||||
|
||||
# do not remove me
|
||||
# pylint: disable=W0611
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.signals import user_logged_in, user_logged_out
|
||||
from django.db.models.signals import post_save as db_post_save, m2m_changed
|
||||
from django.contrib.auth import models as auth_models
|
||||
from django.utils.translation import ugettext_noop as N_
|
||||
from django.dispatch import receiver
|
||||
import django_journal
|
||||
|
||||
import models
|
||||
|
@ -30,9 +32,13 @@ def logged_out_handler(sender, request, user, **kwargs):
|
|||
user = user.user
|
||||
django_journal.record('logout', msg, user=user, ip=extra['ip'], **kwargs)
|
||||
|
||||
do_log = True
|
||||
|
||||
def modified_data(sender, instance, created, raw, using, **kwargs):
|
||||
global do_log
|
||||
extra = middleware.get_extra()
|
||||
if not do_log:
|
||||
return
|
||||
if hasattr(extra['user'], 'is_anonymous') and extra['user'].is_anonymous():
|
||||
extra['user'] = '-'
|
||||
if extra['user'] == middleware.NO_USER:
|
||||
|
@ -68,6 +74,17 @@ def list_m2m_changed_handler(sender, instance, action, reverse, model, pk_set, u
|
|||
django_journal.record(action, msg, list=instance, member=user,
|
||||
ip=extra['ip'], user=extra['user'])
|
||||
|
||||
@receiver(m2m_changed, sender=User.groups.through)
|
||||
def groups_changed(sender, instance, action, **kwargs):
|
||||
'''When a user get a group, give it access to the administration.'''
|
||||
global do_log
|
||||
if action.startswith('post'):
|
||||
try:
|
||||
do_log = False
|
||||
instance.is_staff = instance.groups.exists()
|
||||
instance.save()
|
||||
finally:
|
||||
do_log = True
|
||||
|
||||
user_logged_in.connect(logged_in_handler)
|
||||
user_logged_out.connect(logged_out_handler)
|
||||
|
|
Loading…
Reference in New Issue