X-Git-Url: https://git.mdrn.pl/fnpdjango.git/blobdiff_plain/078af52d6c351b939a7d3c91650c5e43374af500..26e2e8f9044a3d72cdc66be32cbf62aed118b146:/fnpdjango/auth_backends.py?ds=inline diff --git a/fnpdjango/auth_backends.py b/fnpdjango/auth_backends.py index 3cd60a7..7a89c1a 100644 --- a/fnpdjango/auth_backends.py +++ b/fnpdjango/auth_backends.py @@ -10,13 +10,17 @@ attr_map = getattr(settings, 'CAS_USER_ATTRS_MAP', { class AttrCASBackend(CASBackend): def authenticate(self, ticket, service, request): user = super(AttrCASBackend, self).authenticate(ticket, service, request) + dirty = False for attr, value in request.session.get('attributes', {}).items(): try: local_attr = attr_map[attr] except KeyError: pass else: - setattr(user, local_attr, value) - user.save() + if getattr(user, local_attr, None) != value: + setattr(user, local_attr, value) + dirty = True + if dirty: + user.save() return user