summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Uiterwijk <puiterwijk@redhat.com>2014-10-24 19:25:19 +0200
committerPatrick Uiterwijk <puiterwijk@redhat.com>2014-10-24 19:47:17 +0200
commitb9a969e989f6a84e945b8656ae79712d00d8a5be (patch)
tree42b7d2d30361787aab463d9cde94d93c479a6e5e
parentdcc545ed447feadb1ed6d53ab70311ed0d2123c3 (diff)
downloadipsilon-b9a969e989f6a84e945b8656ae79712d00d8a5be.tar.gz
ipsilon-b9a969e989f6a84e945b8656ae79712d00d8a5be.tar.xz
ipsilon-b9a969e989f6a84e945b8656ae79712d00d8a5be.zip
Map some common attributes from fas to userdata
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com> Signed-off-by: Simo Sorce <simo@redhat.com>
-rwxr-xr-xipsilon/login/authfas.py20
1 files changed, 17 insertions, 3 deletions
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