def setUpPloneSite(self, portal): # Setup PAS plugin uf = portal.acl_users plugin = CASAuthenticationPlugin( 'cas_auth', cas_server_url='https://cas.domain.net') uf._setObject(plugin.getId(), plugin) plugin = uf['cas_auth'] plugin.manage_activateInterfaces([ 'IAuthenticationPlugin', 'IChallengePlugin', 'IExtractionPlugin', ]) self['plugin'] = plugin
def test_config_contains_cas_url(self, browser): # Install CAS plugin uf = self.portal.acl_users plugin = CASAuthenticationPlugin( 'cas_auth', cas_server_url='https://cas.server.local') uf._setObject(plugin.getId(), plugin) plugin = uf['cas_auth'] plugin.manage_activateInterfaces([ 'IAuthenticationPlugin', 'IChallengePlugin', 'IExtractionPlugin', ]) self.login(self.regular_user, browser) browser.open(self.portal.absolute_url() + '/@config', headers={'Accept': 'application/json'}) self.assertEqual(browser.status_code, 200) self.assertEqual(browser.json.get(u'cas_url'), 'https://cas.server.local')
def install_cas_auth_plugin(): acl_users = api.portal.get_tool('acl_users') if 'cas_auth' not in acl_users.objectIds(): # Build the URL for the CAS server once during initial setup and # configure it for the plugin. cas_server_url = build_cas_server_url() plugin = CASAuthenticationPlugin( 'cas_auth', cas_server_url=cas_server_url) acl_users._setObject(plugin.getId(), plugin) plugin = acl_users['cas_auth'] plugin.manage_activateInterfaces([ 'IAuthenticationPlugin', 'IChallengePlugin', 'IExtractionPlugin', ]) # Move challenge plugin to top position while not acl_users.plugins.listPluginIds(IChallengePlugin)[0] == 'cas_auth': acl_users.plugins.movePluginsUp(IChallengePlugin, ['cas_auth'])