X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Flogin%2Fauthfas.py;h=c2d8fff90974ec0a2b96ac2cf9fbcae0e9a4d396;hp=8f05e82f7f3ec7c5a0f442092a5507edbcaa2d80;hb=62b4656571be6e8671ada295047eac385d330f66;hpb=92291b4692864aad0aa4806eaf71e6e1cb354673 diff --git a/ipsilon/login/authfas.py b/ipsilon/login/authfas.py index 8f05e82..c2d8fff 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 @@ -197,5 +211,4 @@ class Installer(object): order = [] order.append('fas') globalconf['order'] = ','.join(order) - po.set_config(globalconf) - po.save_plugin_config(FACILITY) + po.save_plugin_config(FACILITY, globalconf)