X-Git-Url: https://git.mdrn.pl/fnpdjango.git/blobdiff_plain/356cd44aeb14e2b6d0f7b1d2cba88ab4099e4763..0d15a2c208d18b3a79dfff5e9b361ea5776b696b:/fnpdjango/auth_backends.py 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 +