From: Aleksander Ɓukasz Date: Mon, 9 Jun 2014 12:27:34 +0000 (+0200) Subject: AttrCASBackend: Save user instance only when necessary X-Git-Tag: 0.1.19 X-Git-Url: https://git.mdrn.pl/fnpdjango.git/commitdiff_plain/26e2e8f9044a3d72cdc66be32cbf62aed118b146 AttrCASBackend: Save user instance only when necessary --- 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 diff --git a/setup.py b/setup.py index 080b75b..8f1806b 100755 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ def whole_trees(package_dir, paths): setup( name='fnpdjango', - version='0.1.18', + version='0.1.19', author='Radek Czajka', author_email='radekczajka@nowoczesnapolska.org.pl', url = '',