From: Radek Czajka Date: Thu, 27 Mar 2014 14:21:35 +0000 (+0100) Subject: Add auth_backends.AttrCASBackend X-Git-Tag: 0.1.17 X-Git-Url: https://git.mdrn.pl/fnpdjango.git/commitdiff_plain/0d15a2c208d18b3a79dfff5e9b361ea5776b696b?hp=356cd44aeb14e2b6d0f7b1d2cba88ab4099e4763 Add auth_backends.AttrCASBackend --- diff --git a/fnpdjango/auth_backends.py b/fnpdjango/auth_backends.py new file mode 100644 index 0000000..3cd60a7 --- /dev/null +++ b/fnpdjango/auth_backends.py @@ -0,0 +1,22 @@ +from django.conf import settings +from django_cas.backends import CASBackend + +attr_map = getattr(settings, 'CAS_USER_ATTRS_MAP', { + 'email': 'email', + 'firstname': 'first_name', + 'lastname': 'last_name', +}) + +class AttrCASBackend(CASBackend): + def authenticate(self, ticket, service, request): + user = super(AttrCASBackend, self).authenticate(ticket, service, request) + 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() + return user + diff --git a/setup.py b/setup.py index ccc5a59..6444a5c 100755 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ def whole_trees(package_dir, paths): setup( name='fnpdjango', - version='0.1.16', + version='0.1.17', author='Radek Czajka', author_email='radekczajka@nowoczesnapolska.org.pl', url = '',