From 25818c8ad6beeebb4fb2e89122c6450ecd9b2868 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Jan 08 2016 02:41:51 +0000 Subject: [PATCH 1/2] Provide email field in openid Signed-off-by: Patrick Uiterwijk Reviewed-by: Rob Crittenden --- diff --git a/ipsilon/providers/openid/auth.py b/ipsilon/providers/openid/auth.py index 561cd5a..e8b056d 100644 --- a/ipsilon/providers/openid/auth.py +++ b/ipsilon/providers/openid/auth.py @@ -67,6 +67,9 @@ class AuthenticateRequest(ProviderPageBase): policy = Policy(self.cfg.default_attribute_mapping, self.cfg.default_allowed_attributes) userattrs = session.get_user_attrs() + if 'email' not in userattrs and self.cfg.default_email_domain: + userattrs['email'] = '%s@%s' % (userattrs['username'], + self.cfg.default_email_domain) mappedattrs, _ = policy.map_attributes(userattrs) attributes = policy.filter_attributes(mappedattrs) self.debug('Filterd attributes: %s' % repr(attributes)) diff --git a/ipsilon/providers/openidp.py b/ipsilon/providers/openidp.py index 21e48a3..04be1e5 100644 --- a/ipsilon/providers/openidp.py +++ b/ipsilon/providers/openidp.py @@ -34,8 +34,9 @@ Provides OpenID 2.0 authentication infrastructure. """ 'openid.sqlite'), pconfig.String( 'default email domain', - 'Used for users missing the email property.', - 'example.com'), + 'Used for users missing the email property.' + + ' (Leave empty to disable)', + ''), pconfig.String( 'endpoint url', 'The Absolute URL of the OpenID provider', From 64011bd1dbe2272e99785f80e877df6709e83640 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Jan 08 2016 03:33:18 +0000 Subject: [PATCH 2/2] Provide username attribute This will allow mappings to make use of the username Signed-off-by: Patrick Uiterwijk Reviewed-by: Rob Crittenden --- diff --git a/ipsilon/login/common.py b/ipsilon/login/common.py index 622abe4..4f8b13d 100644 --- a/ipsilon/login/common.py +++ b/ipsilon/login/common.py @@ -100,6 +100,9 @@ class LoginHelper(Log): if userdata is None: userdata = dict() + if '_username' not in userdata: + userdata['_username'] = username + if '_groups' in infoattrs: userdata['_groups'] = list(set(userdata.get('_groups', []) + infoattrs['_groups']))