-# Copyright (C) 2014 Ipsilon project Contributors, for licensee see COPYING
+# Copyright (C) 2014 Ipsilon project Contributors, for license see COPYING
from __future__ import absolute_import
super(IdpProvider, self).__init__('openid', 'openid', *pargs)
self.mapping = InfoMapping()
self.page = None
+ self.datastore = None
self.server = None
self.basepath = None
self.extensions = LoadExtensions()
return self.get_config_value('default allowed attributes')
def get_tree(self, site):
- self.init_idp()
self.page = OpenID(site, self)
# self.admin = AdminPage(site, self)
return self.page
+ def used_datastores(self):
+ return [self.datastore]
+
def init_idp(self):
+ self.datastore = OpenIDStore(self.get_config_value('database url'))
self.server = Server(
- OpenIDStore(self.get_config_value('database url')),
+ self.datastore,
op_endpoint=self.endpoint_url)
# Expose OpenID presence in the root
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
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'}}
+ 'datadir': opts['data_dir'], 'dbname': 'openid'},
+ 'enabled extensions': opts['openid_extensions']}
po.save_plugin_config(config)
# Update global config to add login plugin