X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Flogin%2Fauthfas.py;h=27596267cee0dcc6667e578ebc2b8228d1f9bf4f;hp=8f05e82f7f3ec7c5a0f442092a5507edbcaa2d80;hb=b9a969e989f6a84e945b8656ae79712d00d8a5be;hpb=dcc545ed447feadb1ed6d53ab70311ed0d2123c3 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