diff --git a/extra/modules/admin.ptl b/extra/modules/admin.ptl index 8045b8a..9bc294c 100644 --- a/extra/modules/admin.ptl +++ b/extra/modules/admin.ptl @@ -96,28 +96,13 @@ class CollectivityUI: def form(self, new = False): form = Form(enctype="multipart/form-data") if new: - form.add(StringWidget, 'id', title = _('Collectivity Id'), required = True, size = 30, + form.add(StringWidget, 'id', title = _('Collectivity SPL Id'), + required = True, size = 30, value = self.collectivity.id) form.add(StringWidget, 'name', title = _('Name'), required = True, size = 30, value = self.collectivity.name) - options = [('', _('None'))] - for klp, lp in get_cfg('providers', {}).items(): - if lp['role'] != lasso.PROVIDER_ROLE_IDP: - continue - p = lasso.Provider(lp['role'], - misc.get_abs_path(lp['metadata']), - misc.get_abs_path(lp.get('publickey')), - misc.get_abs_path(lp.get('cacertchain'))) - if not p: - continue - label = misc.get_provider_and_label(klp)[1] - if not label: - label = klp - options.append((p.providerId, label)) - form.add(SingleSelectWidget, 'own_idp', title = _('Collectivity Own Identity Provider'), - options = options, value = self.collectivity.own_idp) - form.add(CheckboxWidget, 'propose_msp', title = _('Propose MSP as Identity Provider'), - value = self.collectivity.propose_msp) + form.add(StringWidget, 'msp_tsid', title = _('MSP tsId'), required = False, size = 10, + value = self.collectivity.msp_tsid) form.add_submit('submit', _('Submit')) form.add_submit('cancel', _('Cancel')) return form @@ -129,7 +114,7 @@ class CollectivityUI: return self.form() def submit_form(self, form): - for f in ('id', 'name', 'own_idp', 'propose_msp'): + for f in ('id', 'name', 'msp_tsid'): if form.get_widget(f): setattr(self.collectivity, f, form.get_widget(f).parse()) @@ -188,7 +173,6 @@ class AdelineSettingsDirectory(Directory): html_top('adeline') '

%s - ' % _('New Collectivity') '%s - '% _('New National Service') - '%s - ' % _('SP Mapping for MSP') '%s

' % _('Options') '

%s

' % _('Collectivities') @@ -197,6 +181,7 @@ class AdelineSettingsDirectory(Directory): '
  • ' '%s' % collectivity.name '

    ' + _('SPL Code: ') collectivity.id '

    ' '

    ' diff --git a/extra/modules/collectivity.py b/extra/modules/collectivity.py index 92b9d05..f231724 100644 --- a/extra/modules/collectivity.py +++ b/extra/modules/collectivity.py @@ -7,4 +7,5 @@ class Collectivity(StorableObject): name = None own_idp = None propose_msp = True + msp_tsid = None diff --git a/extra/modules/liberty.py b/extra/modules/liberty.py index 4b1e8e5..2363bf6 100644 --- a/extra/modules/liberty.py +++ b/extra/modules/liberty.py @@ -28,6 +28,8 @@ import misc import authentic.liberty.root from authentic.liberty.root import SOAPError +import collectivity + ED_MIGRATION_DISABLED = False ED_DOCUMENTS_MIGRATION_DISABLED = True @@ -98,6 +100,14 @@ class AlternateLibertyDirectory(authentic.liberty.root.RootDirectory): continue_home = ('/',_('Home')) server = authentic.misc.get_lasso_server(lasso.PROVIDER_ROLE_SP) + + if get_field('tsId'): + for coll in collectivity.Collectivity.select(): + if coll.msp_tsid == get_field('tsId'): + resp = get_response() + resp.set_header('X-Gdd-Account-Number', coll.id) + break + if session.msp_login_dump: login = lasso.Login.newFromDump(server, session.msp_login_dump) session.msp_login_dump = None