From: Patrick Uiterwijk Date: Fri, 24 Oct 2014 17:25:19 +0000 (+0200) Subject: Map some common attributes from fas to userdata X-Git-Tag: v0.3.0~43 X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=commitdiff_plain;h=b9a969e989f6a84e945b8656ae79712d00d8a5be Map some common attributes from fas to userdata Signed-off-by: Patrick Uiterwijk Signed-off-by: Simo Sorce --- diff --git a/ipsilon/login/authfas.py b/ipsilon/login/authfas.py index 8f05e82..2759626 100755 --- a/ipsilon/login/authfas.py +++ b/ipsilon/login/authfas.py @@ -3,6 +3,7 @@ # Copyright (C) 2014 Ipsilon contributors, see COPYING file for license +from ipsilon.info.common import InfoMapping from ipsilon.login.common import LoginFormBase, LoginManagerBase from ipsilon.login.common import FACILITY from ipsilon.util.plugin import PluginObject @@ -28,9 +29,23 @@ try: except ImportError: CLA_GROUPS = dict() +fas_mapping = { + 'username': 'nickname', + 'telephone': 'phone', + 'country_code': 'country', + 'human_name': 'fullname', + 'email': 'email', + 'timezone': 'timezone', +} + class FAS(LoginFormBase): + def __init__(self, site, mgr, page): + super(FAS, self).__init__(site, mgr, page) + self.mapper = InfoMapping() + self.mapper.set_mapping(fas_mapping) + def POST(self, *args, **kwargs): username = kwargs.get("login_name") password = kwargs.get("login_password") @@ -66,12 +81,11 @@ class FAS(LoginFormBase): return self._template(self.formtemplate, **context) def make_userdata(self, fas_data): - userdata = dict() - userdata['fas'] = fas_data + userdata, fas_extra = self.mapper.map_attrs(fas_data) # compute and store groups and cla groups userdata['groups'] = [] - userdata['extras'] = {'cla': []} + userdata['extras'] = {'fas': fas_extra, 'cla': []} for group in fas_data.get('approved_memberships', {}): if 'name' not in group: continue