projects
/
cascardo
/
ipsilon.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Implement change registration
[cascardo/ipsilon.git]
/
ipsilon
/
providers
/
openidp.py
diff --git
a/ipsilon/providers/openidp.py
b/ipsilon/providers/openidp.py
index
996d905
..
8f74578
100644
(file)
--- a/
ipsilon/providers/openidp.py
+++ b/
ipsilon/providers/openidp.py
@@
-1,8
+1,8
@@
-# Copyright (C) 2014
Ipsilon project Contributors, for license
e see COPYING
+# Copyright (C) 2014
Ipsilon project Contributors, for licens
e see COPYING
from __future__ import absolute_import
from __future__ import absolute_import
-from ipsilon.providers.common import ProviderBase
+from ipsilon.providers.common import ProviderBase
, ProviderInstaller
from ipsilon.providers.openid.store import OpenIDStore
from ipsilon.providers.openid.auth import OpenID
from ipsilon.providers.openid.extensions.common import LoadExtensions
from ipsilon.providers.openid.store import OpenIDStore
from ipsilon.providers.openid.auth import OpenID
from ipsilon.providers.openid.extensions.common import LoadExtensions
@@
-22,8
+22,6
@@
class IdpProvider(ProviderBase):
self.server = None
self.basepath = None
self.extensions = LoadExtensions()
self.server = None
self.basepath = None
self.extensions = LoadExtensions()
- print self.extensions.available()
- print self.extensions.available().keys()
self.description = """
Provides OpenID 2.0 authentication infrastructure. """
self.description = """
Provides OpenID 2.0 authentication infrastructure. """
@@
-55,6
+53,14
@@
Provides OpenID 2.0 authentication infrastructure. """
'enabled extensions',
'Choose the extensions to enable',
self.extensions.available().keys()),
'enabled extensions',
'Choose the extensions to enable',
self.extensions.available().keys()),
+ pconfig.MappingList(
+ 'default attribute mapping',
+ 'Defines how to map attributes before calling extensions',
+ [['*', '*']]),
+ pconfig.ComplexList(
+ 'default allowed attributes',
+ 'Defines a list of allowed attributes, applied after mapping',
+ ['*']),
)
@property
)
@property
@@
-89,6
+95,14
@@
Provides OpenID 2.0 authentication infrastructure. """
def enabled_extensions(self):
return self.get_config_value('enabled extensions')
def enabled_extensions(self):
return self.get_config_value('enabled extensions')
+ @property
+ def default_attribute_mapping(self):
+ return self.get_config_value('default attribute mapping')
+
+ @property
+ def default_allowed_attributes(self):
+ return self.get_config_value('default allowed attributes')
+
def get_tree(self, site):
self.init_idp()
self.page = OpenID(site, self)
def get_tree(self, site):
self.init_idp()
self.page = OpenID(site, self)
@@
-117,18
+131,22
@@
Provides OpenID 2.0 authentication infrastructure. """
self.extensions.enable(self._config['enabled extensions'].get_value())
self.extensions.enable(self._config['enabled extensions'].get_value())
-class Installer(
object
):
+class Installer(
ProviderInstaller
):
def __init__(self, *pargs):
def __init__(self, *pargs):
+ super(Installer, self).__init__()
self.name = 'openid'
self.name = 'openid'
- self.ptype = 'provider'
self.pargs = pargs
def install_args(self, group):
group.add_argument('--openid', choices=['yes', 'no'], default='yes',
help='Configure OpenID Provider')
self.pargs = pargs
def install_args(self, group):
group.add_argument('--openid', choices=['yes', 'no'], default='yes',
help='Configure OpenID Provider')
+ group.add_argument('--openid-dburi',
+ help='OpenID database URI')
+ group.add_argument('--openid-extensions', default='',
+ help='List of OpenID Extensions to enable')
- def configure(self, opts):
+ def configure(self, opts
, changes
):
if opts['openid'] != 'yes':
return
if opts['openid'] != 'yes':
return
@@
-144,7
+162,11
@@
class Installer(object):
po.wipe_data()
po.wipe_config_values()
config = {'endpoint url': url,
po.wipe_data()
po.wipe_config_values()
config = {'endpoint url': url,
- 'identity_url_template': '%sid/%%(username)s' % url}
+ 'identity url template': '%sid/%%(username)s' % url,
+ 'database url': opts['openid_dburi'] or
+ opts['database_url'] % {
+ 'datadir': opts['data_dir'], 'dbname': 'openid'},
+ 'enabled extensions': opts['openid_extensions']}
po.save_plugin_config(config)
# Update global config to add login plugin
po.save_plugin_config(config)
# Update global config to add login plugin