projects
/
cascardo
/
ipsilon.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Map some common attributes from fas to userdata
[cascardo/ipsilon.git]
/
ipsilon
/
login
/
authfas.py
diff --git
a/ipsilon/login/authfas.py
b/ipsilon/login/authfas.py
index
8f05e82
..
2759626
100755
(executable)
--- a/
ipsilon/login/authfas.py
+++ b/
ipsilon/login/authfas.py
@@
-3,6
+3,7
@@
# Copyright (C) 2014 Ipsilon contributors, see COPYING file for license
# 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
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()
except ImportError:
CLA_GROUPS = dict()
+fas_mapping = {
+ 'username': 'nickname',
+ 'telephone': 'phone',
+ 'country_code': 'country',
+ 'human_name': 'fullname',
+ 'email': 'email',
+ 'timezone': 'timezone',
+}
+
class FAS(LoginFormBase):
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")
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):
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'] = []
# 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
for group in fas_data.get('approved_memberships', {}):
if 'name' not in group:
continue