From 0d15a2c208d18b3a79dfff5e9b361ea5776b696b Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Thu, 27 Mar 2014 15:21:35 +0100 Subject: [PATCH] Add auth_backends.AttrCASBackend --- fnpdjango/auth_backends.py | 22 ++++++++++++++++++++++ setup.py | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 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 + 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 = '', -- 2.20.1