[Checkins] SVN: PluggableAuthService/trunk/ Created a "Configured
PAS" entry in the ZMI add list.
Tres Seaver
tseaver at palladion.com
Tue Jul 25 18:59:45 EDT 2006
Log message for revision 69264:
Created a "Configured PAS" entry in the ZMI add list.
o Allows creating a PAS using base and extension GenericSetup profiles
registered for IPluggableAuthService.
o This entry should eventually replace the "stock" PAS entry, assuming that
we make GenericSetup a "hard" dependency.
Added an "empty" GenericSetup profile.
o creates a PAS containing only a plugin registry and a setup tool.
Repaired the "simple" GenericSetup profile to be useful, rather than
catastrophic, to apply.
o This profile now creates and registers a set of ZODB-based
user / group / role plugins, along with a basic auth helper.
Changed:
U PluggableAuthService/trunk/PluggableAuthService.py
U PluggableAuthService/trunk/__init__.py
U PluggableAuthService/trunk/doc/CHANGES.txt
U PluggableAuthService/trunk/doc/DEPENDENCIES.txt
A PluggableAuthService/trunk/profiles/empty/
A PluggableAuthService/trunk/profiles/empty/PAS/
A PluggableAuthService/trunk/profiles/empty/PAS/.objects
A PluggableAuthService/trunk/profiles/empty/PAS/pluginregistry.xml
A PluggableAuthService/trunk/profiles/empty/export_steps.xml
A PluggableAuthService/trunk/profiles/empty/import_steps.xml
A PluggableAuthService/trunk/profiles/simple/PAS/.objects
A PluggableAuthService/trunk/profiles/simple/PAS/basic_auth.xml
A PluggableAuthService/trunk/profiles/simple/PAS/dynamic_groups.xml
A PluggableAuthService/trunk/profiles/simple/PAS/groups.xml
A PluggableAuthService/trunk/profiles/simple/PAS/pluginregistry.xml
A PluggableAuthService/trunk/profiles/simple/PAS/recursive_groups.xml
A PluggableAuthService/trunk/profiles/simple/PAS/roles.xml
A PluggableAuthService/trunk/profiles/simple/PAS/users.xml
U PluggableAuthService/trunk/version.txt
A PluggableAuthService/trunk/www/pasAddForm.zpt
-=-
Modified: PluggableAuthService/trunk/PluggableAuthService.py
===================================================================
--- PluggableAuthService/trunk/PluggableAuthService.py 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/PluggableAuthService.py 2006-07-25 22:59:44 UTC (rev 69264)
@@ -1110,6 +1110,34 @@
InitializeClass( PluggableAuthService )
+class ResponseCleanup:
+ def __init__(self, resp):
+ self.resp = resp
+
+ def __del__(self):
+ # Free the references.
+ #
+ # No errors of any sort may propagate, and we don't care *what*
+ # they are, even to log them.
+ stack = getattr(self.resp, '_unauthorized_stack', [])
+ old = None
+
+ while stack:
+ old = stack.pop()
+
+ if old is not None:
+ self.resp._unauthorized = old
+ else:
+ try:
+ del self.resp._unauthorized
+ except:
+ pass
+
+ try:
+ del self.resp
+ except:
+ pass
+
_PLUGIN_TYPE_INFO = (
( IExtractionPlugin
, 'IExtractionPlugin'
@@ -1217,9 +1245,16 @@
)
)
-def addPluggableAuthService( dispatcher, REQUEST=None ):
+def addPluggableAuthService( dispatcher
+ , base_profile=None
+ , extension_profiles=()
+ , create_snapshot=True
+ , setup_tool_id='setup_tool'
+ , REQUEST=None
+ ):
+ """ Add a PluggableAuthService to 'dispatcher'.
- """ Add a PluggableAuthService to 'self.
+ o BBB for non-GenericSetup use.
"""
pas = PluggableAuthService()
preg = PluginRegistry( _PLUGIN_TYPE_INFO )
@@ -1227,7 +1262,6 @@
pas._setObject( 'plugins', preg )
dispatcher._setObject( pas.getId(), pas )
-
if REQUEST is not None:
REQUEST['RESPONSE'].redirect(
'%s/manage_workspace'
@@ -1235,31 +1269,64 @@
'PluggableAuthService+added.'
% dispatcher.absolute_url() )
-class ResponseCleanup:
- def __init__(self, resp):
- self.resp = resp
+def addConfiguredPASForm(dispatcher):
+ """ Wrap the PTF in 'dispatcher', including 'profile_registry' in options.
+ """
+ from Products.GenericSetup import EXTENSION
+ from Products.GenericSetup import profile_registry
- def __del__(self):
- # Free the references.
- #
- # No errors of any sort may propagate, and we don't care *what*
- # they are, even to log them.
- stack = getattr(self.resp, '_unauthorized_stack', [])
- old = None
+ wrapped = PageTemplateFile( 'pasAddForm', _wwwdir ).__of__( dispatcher )
- while stack:
- old = stack.pop()
+ base_profiles = []
+ extension_profiles = []
- if old is not None:
- self.resp._unauthorized = old
+ for info in profile_registry.listProfileInfo(for_=IPluggableAuthService):
+ if info.get('type') == EXTENSION:
+ extension_profiles.append(info)
else:
- try:
- del self.resp._unauthorized
- except:
- pass
+ base_profiles.append(info)
- try:
- del self.resp
- except:
- pass
+ return wrapped( base_profiles=tuple(base_profiles),
+ extension_profiles =tuple(extension_profiles) )
+def addConfiguredPAS( dispatcher
+ , base_profile
+ , extension_profiles=()
+ , create_snapshot=True
+ , setup_tool_id='setup_tool'
+ , REQUEST=None
+ ):
+ """ Add a PluggableAuthService to 'self.
+ """
+ from Products.GenericSetup.tool import SetupTool
+
+ pas = PluggableAuthService()
+ preg = PluginRegistry( _PLUGIN_TYPE_INFO )
+ preg._setId( 'plugins' )
+ pas._setObject( 'plugins', preg )
+ dispatcher._setObject( pas.getId(), pas )
+
+ pas = dispatcher._getOb( pas.getId() ) # wrapped
+ tool = SetupTool( setup_tool_id )
+ pas._setObject( tool.getId(), tool )
+
+ tool = pas._getOb( tool.getId() ) # wrapped
+ tool.setImportContext( 'profile-%s' % base_profile )
+ tool.runAllImportSteps()
+
+ for extension_profile in extension_profiles:
+ tool.setImportContext( 'profile-%s' % extension_profile )
+ tool.runAllImportSteps()
+
+ tool.setImportContext( 'profile-%s' % base_profile )
+
+ if create_snapshot:
+ tool.createSnapshot( 'initial_configuration' )
+
+ if REQUEST is not None:
+ REQUEST['RESPONSE'].redirect(
+ '%s/manage_workspace'
+ '?manage_tabs_message='
+ 'PluggableAuthService+added.'
+ % dispatcher.absolute_url() )
+
Modified: PluggableAuthService/trunk/__init__.py
===================================================================
--- PluggableAuthService/trunk/__init__.py 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/__init__.py 2006-07-25 22:59:44 UTC (rev 69264)
@@ -259,6 +259,16 @@
)
if profile_registry is not None:
+
+ context.registerClass( PluggableAuthService.PluggableAuthService
+ , meta_type='Configured PAS'
+ , permission=ManageUsers
+ , constructors=(
+ PluggableAuthService.addConfiguredPASForm,
+ PluggableAuthService.addConfiguredPAS,
+ )
+ , icon='www/PluggableAuthService.png'
+ )
profile_registry.registerProfile('simple',
'Simple PAS Content Profile',
'Content for a simple PAS.',
@@ -267,3 +277,12 @@
BASE,
IPluggableAuthService,
)
+ profile_registry.registerProfile('empty',
+ 'Empty PAS Content Profile',
+ 'Content for an empty PAS '
+ '(plugins registry only).',
+ 'profiles/empty',
+ 'PluggableAuthService',
+ BASE,
+ IPluggableAuthService,
+ )
Modified: PluggableAuthService/trunk/doc/CHANGES.txt
===================================================================
--- PluggableAuthService/trunk/doc/CHANGES.txt 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/doc/CHANGES.txt 2006-07-25 22:59:44 UTC (rev 69264)
@@ -2,8 +2,24 @@
PluggableAuthService 1.4-beta (unreleased)
+ Features Added
+
+ - Created a "Configured PAS" entry in the ZMI add list, which
+ allows creating a PAS using base and extension GenericSetup profiles
+ registered for IPluggableAuthService. This entry should eventually
+ replace the "stock" PAS entry (assuming that we make GenericSetup
+ a "hard" dependency).
+
+ - Added an "empty" GenericSetup profile, which creates a PAS containing
+ only a plugin registry and a setup tool.
+
Bugs Fixed
+ - Repaired the "simple" GenericSetup profile to be useful, rather than
+ catastrophic, to apply: it now creates and registers a set of
+ ZODB-based user / group / role plugins, along with a basic auth
+ helper.
+
- ZODBUserManager: Extend the "notional IZODBUserManager interface"
with the left-out updateUser facility and a corresponding
manage_updateUser method for ZMI use. Removed any responsibility
Modified: PluggableAuthService/trunk/doc/DEPENDENCIES.txt
===================================================================
--- PluggableAuthService/trunk/doc/DEPENDENCIES.txt 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/doc/DEPENDENCIES.txt 2006-07-25 22:59:44 UTC (rev 69264)
@@ -1,3 +1,4 @@
Zope >= 2.8.5
Five >= 1.2 (http://codespeak.net/z3/five/)
GenericSetup >= 1.1 (http://www.zope.org/Products/GenericSetup)
+PluginRegistry >= 1.1.1
Added: PluggableAuthService/trunk/profiles/empty/PAS/.objects
===================================================================
--- PluggableAuthService/trunk/profiles/empty/PAS/.objects 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/empty/PAS/.objects 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1 @@
+plugins,Products.PluginRegistry.PluginRegistry.PluginRegistry
Added: PluggableAuthService/trunk/profiles/empty/PAS/pluginregistry.xml
===================================================================
--- PluggableAuthService/trunk/profiles/empty/PAS/pluginregistry.xml 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/empty/PAS/pluginregistry.xml 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<plugin-registry>
+ <plugin-type id="IExtractionPlugin" title="extraction"
+ description="Extraction plugins are responsible for extracting credentials from the request."
+ interface="Products.PluggableAuthService.interfaces.plugins.IExtractionPlugin">
+ </plugin-type>
+ <plugin-type id="IAuthenticationPlugin"
+ title="authentication"
+ description="Authentication plugins are responsible for validating credentials generated by the Extraction Plugin."
+ interface="Products.PluggableAuthService.interfaces.plugins.IAuthenticationPlugin">
+ </plugin-type>
+ <plugin-type id="IChallengePlugin" title="challenge"
+ description="Challenge plugins initiate a challenge to the user to provide credentials."
+ interface="Products.PluggableAuthService.interfaces.plugins.IChallengePlugin">
+ </plugin-type>
+ <plugin-type id="ICredentialsUpdatePlugin"
+ title="update credentials"
+ description="Credential update plugins respond to the user changing credentials."
+ interface="Products.PluggableAuthService.interfaces.plugins.ICredentialsUpdatePlugin">
+ </plugin-type>
+ <plugin-type id="ICredentialsResetPlugin"
+ title="reset credentials"
+ description="Credential clear plugins respond to a user logging out."
+ interface="Products.PluggableAuthService.interfaces.plugins.ICredentialsResetPlugin">
+ </plugin-type>
+ <plugin-type id="IUserFactoryPlugin" title="userfactory"
+ description="Create users."
+ interface="Products.PluggableAuthService.interfaces.plugins.IUserFactoryPlugin">
+ </plugin-type>
+ <plugin-type id="IAnonymousUserFactoryPlugin"
+ title="anonymoususerfactory"
+ description="Create anonymous users."
+ interface="Products.PluggableAuthService.interfaces.plugins.IAnonymousUserFactoryPlugin">
+ </plugin-type>
+ <plugin-type id="IPropertiesPlugin" title="properties"
+ description="Properties plugins generate property sheets for users."
+ interface="Products.PluggableAuthService.interfaces.plugins.IPropertiesPlugin">
+ </plugin-type>
+ <plugin-type id="IGroupsPlugin" title="groups"
+ description="Groups plugins determine the groups to which a user belongs."
+ interface="Products.PluggableAuthService.interfaces.plugins.IGroupsPlugin">
+ </plugin-type>
+ <plugin-type id="IRolesPlugin" title="roles"
+ description="Roles plugins determine the global roles which a user has."
+ interface="Products.PluggableAuthService.interfaces.plugins.IRolesPlugin">
+ </plugin-type>
+ <plugin-type id="IUpdatePlugin" title="update"
+ description="Update plugins allow the user or the application to update the user's properties."
+ interface="Products.PluggableAuthService.interfaces.plugins.IUpdatePlugin">
+ </plugin-type>
+ <plugin-type id="IValidationPlugin" title="validation"
+ description="Validation plugins specify allowable values for user properties (e.g., minimum password length, allowed characters, etc.)"
+ interface="Products.PluggableAuthService.interfaces.plugins.IValidationPlugin">
+ </plugin-type>
+ <plugin-type id="IUserEnumerationPlugin"
+ title="user_enumeration"
+ description="Enumeration plugins allow querying users by ID, and searching for users who match particular criteria."
+ interface="Products.PluggableAuthService.interfaces.plugins.IUserEnumerationPlugin">
+ </plugin-type>
+ <plugin-type id="IUserAdderPlugin" title="user_adder"
+ description="User Adder plugins allow the Pluggable Auth Service to create users."
+ interface="Products.PluggableAuthService.interfaces.plugins.IUserAdderPlugin">
+ </plugin-type>
+ <plugin-type id="IGroupEnumerationPlugin"
+ title="group_enumeration"
+ description="Enumeration plugins allow querying groups by ID."
+ interface="Products.PluggableAuthService.interfaces.plugins.IGroupEnumerationPlugin">
+ </plugin-type>
+ <plugin-type id="IRoleEnumerationPlugin"
+ title="role_enumeration"
+ description="Enumeration plugins allow querying roles by ID."
+ interface="Products.PluggableAuthService.interfaces.plugins.IRoleEnumerationPlugin">
+ </plugin-type>
+ <plugin-type id="IRoleAssignerPlugin" title="role_assigner"
+ description="Role Assigner plugins allow the Pluggable Auth Service to assign roles to principals."
+ interface="Products.PluggableAuthService.interfaces.plugins.IRoleAssignerPlugin">
+ </plugin-type>
+ <plugin-type id="IChallengeProtocolChooser"
+ title="challenge_protocol_chooser"
+ description="Challenge Protocol Chooser plugins decide what authorizationprotocol to use for a given request type."
+ interface="Products.PluggableAuthService.interfaces.plugins.IChallengeProtocolChooser">
+ </plugin-type>
+ <plugin-type id="IRequestTypeSniffer"
+ title="request_type_sniffer"
+ description="Request Type Sniffer plugins detect the type of an incoming request."
+ interface="Products.PluggableAuthService.interfaces.plugins.IRequestTypeSniffer">
+ </plugin-type>
+</plugin-registry>
Property changes on: PluggableAuthService/trunk/profiles/empty/PAS/pluginregistry.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: PluggableAuthService/trunk/profiles/empty/export_steps.xml
===================================================================
--- PluggableAuthService/trunk/profiles/empty/export_steps.xml 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/empty/export_steps.xml 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<export-steps>
+ <export-step id="contents"
+ handler="Products.PluggableAuthService.exportimport.exportPAS"
+ title="Contents">
+ Export the PAS' registry and plugins.
+ </export-step>
+</export-steps>
Property changes on: PluggableAuthService/trunk/profiles/empty/export_steps.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: PluggableAuthService/trunk/profiles/empty/import_steps.xml
===================================================================
--- PluggableAuthService/trunk/profiles/empty/import_steps.xml 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/empty/import_steps.xml 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<import-steps>
+ <import-step id="contents" version="20051116-01"
+ handler="Products.PluggableAuthService.exportimport.importPAS"
+ title="Contents">
+ Import the PAS' registry and plugins.
+ </import-step>
+</import-steps>
Property changes on: PluggableAuthService/trunk/profiles/empty/import_steps.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: PluggableAuthService/trunk/profiles/simple/PAS/.objects
===================================================================
--- PluggableAuthService/trunk/profiles/simple/PAS/.objects 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/simple/PAS/.objects 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,7 @@
+plugins,Products.PluginRegistry.PluginRegistry.PluginRegistry
+users,Products.PluggableAuthService.plugins.ZODBUserManager.ZODBUserManager
+roles,Products.PluggableAuthService.plugins.ZODBRoleManager.ZODBRoleManager
+groups,Products.PluggableAuthService.plugins.ZODBGroupManager.ZODBGroupManager
+dynamic_groups,Products.PluggableAuthService.plugins.DynamicGroupsPlugin.DynamicGroupsPlugin
+basic_auth,Products.PluggableAuthService.plugins.HTTPBasicAuthHelper.HTTPBasicAuthHelper
+recursive_groups,Products.PluggableAuthService.plugins.RecursiveGroupsPlugin.RecursiveGroupsPlugin
Added: PluggableAuthService/trunk/profiles/simple/PAS/basic_auth.xml
===================================================================
--- PluggableAuthService/trunk/profiles/simple/PAS/basic_auth.xml 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/simple/PAS/basic_auth.xml 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,2 @@
+<?xml version="1.0" ?>
+<plug-in title="HTTP Basic Authentication"/>
Property changes on: PluggableAuthService/trunk/profiles/simple/PAS/basic_auth.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: PluggableAuthService/trunk/profiles/simple/PAS/dynamic_groups.xml
===================================================================
--- PluggableAuthService/trunk/profiles/simple/PAS/dynamic_groups.xml 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/simple/PAS/dynamic_groups.xml 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,3 @@
+<?xml version="1.0" ?>
+<dynamic-groups title="Rule-based Group Membership">
+</dynamic-groups>
Property changes on: PluggableAuthService/trunk/profiles/simple/PAS/dynamic_groups.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: PluggableAuthService/trunk/profiles/simple/PAS/groups.xml
===================================================================
--- PluggableAuthService/trunk/profiles/simple/PAS/groups.xml 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/simple/PAS/groups.xml 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,9 @@
+<?xml version="1.0" ?>
+<zodb-groups title="Group Management">
+ <group group_id="managers" title="Site Managers"
+ description="">
+ </group>
+ <group group_id="members" title="Site Members"
+ description="">
+ </group>
+</zodb-groups>
Property changes on: PluggableAuthService/trunk/profiles/simple/PAS/groups.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: PluggableAuthService/trunk/profiles/simple/PAS/pluginregistry.xml
===================================================================
--- PluggableAuthService/trunk/profiles/simple/PAS/pluginregistry.xml 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/simple/PAS/pluginregistry.xml 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<plugin-registry>
+ <plugin-type id="IExtractionPlugin" title="extraction"
+ description="Extraction plugins are responsible for extracting credentials from the request."
+ interface="Products.PluggableAuthService.interfaces.plugins.IExtractionPlugin">
+ <plugin id="basic_auth"/>
+ </plugin-type>
+ <plugin-type id="IAuthenticationPlugin"
+ title="authentication"
+ description="Authentication plugins are responsible for validating credentials generated by the Extraction Plugin."
+ interface="Products.PluggableAuthService.interfaces.plugins.IAuthenticationPlugin">
+ <plugin id="users"/>
+ </plugin-type>
+ <plugin-type id="IChallengePlugin" title="challenge"
+ description="Challenge plugins initiate a challenge to the user to provide credentials."
+ interface="Products.PluggableAuthService.interfaces.plugins.IChallengePlugin">
+ <plugin id="basic_auth"/>
+ </plugin-type>
+ <plugin-type id="ICredentialsUpdatePlugin"
+ title="update credentials"
+ description="Credential update plugins respond to the user changing credentials."
+ interface="Products.PluggableAuthService.interfaces.plugins.ICredentialsUpdatePlugin">
+ </plugin-type>
+ <plugin-type id="ICredentialsResetPlugin"
+ title="reset credentials"
+ description="Credential clear plugins respond to a user logging out."
+ interface="Products.PluggableAuthService.interfaces.plugins.ICredentialsResetPlugin">
+ <plugin id="basic_auth"/>
+ </plugin-type>
+ <plugin-type id="IUserFactoryPlugin" title="userfactory"
+ description="Create users."
+ interface="Products.PluggableAuthService.interfaces.plugins.IUserFactoryPlugin">
+ </plugin-type>
+ <plugin-type id="IAnonymousUserFactoryPlugin"
+ title="anonymoususerfactory"
+ description="Create anonymous users."
+ interface="Products.PluggableAuthService.interfaces.plugins.IAnonymousUserFactoryPlugin">
+ </plugin-type>
+ <plugin-type id="IPropertiesPlugin" title="properties"
+ description="Properties plugins generate property sheets for users."
+ interface="Products.PluggableAuthService.interfaces.plugins.IPropertiesPlugin">
+ </plugin-type>
+ <plugin-type id="IGroupsPlugin" title="groups"
+ description="Groups plugins determine the groups to which a user belongs."
+ interface="Products.PluggableAuthService.interfaces.plugins.IGroupsPlugin">
+ <plugin id="groups"/>
+ <plugin id="dynamic_groups"/>
+ <plugin id="recursive_groups"/>
+ </plugin-type>
+ <plugin-type id="IRolesPlugin" title="roles"
+ description="Roles plugins determine the global roles which a user has."
+ interface="Products.PluggableAuthService.interfaces.plugins.IRolesPlugin">
+ <plugin id="roles"/>
+ </plugin-type>
+ <plugin-type id="IUpdatePlugin" title="update"
+ description="Update plugins allow the user or the application to update the user's properties."
+ interface="Products.PluggableAuthService.interfaces.plugins.IUpdatePlugin">
+ </plugin-type>
+ <plugin-type id="IValidationPlugin" title="validation"
+ description="Validation plugins specify allowable values for user properties (e.g., minimum password length, allowed characters, etc.)"
+ interface="Products.PluggableAuthService.interfaces.plugins.IValidationPlugin">
+ </plugin-type>
+ <plugin-type id="IUserEnumerationPlugin"
+ title="user_enumeration"
+ description="Enumeration plugins allow querying users by ID, and searching for users who match particular criteria."
+ interface="Products.PluggableAuthService.interfaces.plugins.IUserEnumerationPlugin">
+ <plugin id="users"/>
+ </plugin-type>
+ <plugin-type id="IUserAdderPlugin" title="user_adder"
+ description="User Adder plugins allow the Pluggable Auth Service to create users."
+ interface="Products.PluggableAuthService.interfaces.plugins.IUserAdderPlugin">
+ <plugin id="users"/>
+ </plugin-type>
+ <plugin-type id="IGroupEnumerationPlugin"
+ title="group_enumeration"
+ description="Enumeration plugins allow querying groups by ID."
+ interface="Products.PluggableAuthService.interfaces.plugins.IGroupEnumerationPlugin">
+ <plugin id="groups"/>
+ <plugin id="dynamic_groups"/>
+ </plugin-type>
+ <plugin-type id="IRoleEnumerationPlugin"
+ title="role_enumeration"
+ description="Enumeration plugins allow querying roles by ID."
+ interface="Products.PluggableAuthService.interfaces.plugins.IRoleEnumerationPlugin">
+ <plugin id="roles"/>
+ </plugin-type>
+ <plugin-type id="IRoleAssignerPlugin" title="role_assigner"
+ description="Role Assigner plugins allow the Pluggable Auth Service to assign roles to principals."
+ interface="Products.PluggableAuthService.interfaces.plugins.IRoleAssignerPlugin">
+ <plugin id="roles"/>
+ </plugin-type>
+ <plugin-type id="IChallengeProtocolChooser"
+ title="challenge_protocol_chooser"
+ description="Challenge Protocol Chooser plugins decide what authorizationprotocol to use for a given request type."
+ interface="Products.PluggableAuthService.interfaces.plugins.IChallengeProtocolChooser">
+ </plugin-type>
+ <plugin-type id="IRequestTypeSniffer"
+ title="request_type_sniffer"
+ description="Request Type Sniffer plugins detect the type of an incoming request."
+ interface="Products.PluggableAuthService.interfaces.plugins.IRequestTypeSniffer">
+ </plugin-type>
+</plugin-registry>
Property changes on: PluggableAuthService/trunk/profiles/simple/PAS/pluginregistry.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: PluggableAuthService/trunk/profiles/simple/PAS/recursive_groups.xml
===================================================================
--- PluggableAuthService/trunk/profiles/simple/PAS/recursive_groups.xml 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/simple/PAS/recursive_groups.xml 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,2 @@
+<?xml version="1.0" ?>
+<plug-in title="Recursive Group Membership"/>
Property changes on: PluggableAuthService/trunk/profiles/simple/PAS/recursive_groups.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: PluggableAuthService/trunk/profiles/simple/PAS/roles.xml
===================================================================
--- PluggableAuthService/trunk/profiles/simple/PAS/roles.xml 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/simple/PAS/roles.xml 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,9 @@
+<?xml version="1.0" ?>
+<zodb-roles title="Role Management">
+ <role role_id="Manager" title="" description="">
+ <principal principal_id="managers"/>
+ </role>
+ <role role_id="Owner" title="" description="">
+ <principal principal_id="members"/>
+ </role>
+</zodb-roles>
Property changes on: PluggableAuthService/trunk/profiles/simple/PAS/roles.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: PluggableAuthService/trunk/profiles/simple/PAS/users.xml
===================================================================
--- PluggableAuthService/trunk/profiles/simple/PAS/users.xml 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/profiles/simple/PAS/users.xml 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,3 @@
+<?xml version="1.0" ?>
+<zodb-users title="User Management">
+</zodb-users>
Property changes on: PluggableAuthService/trunk/profiles/simple/PAS/users.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: PluggableAuthService/trunk/version.txt
===================================================================
--- PluggableAuthService/trunk/version.txt 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/version.txt 2006-07-25 22:59:44 UTC (rev 69264)
@@ -1 +1 @@
-PluggableAuthService-1.3
+PluggableAuthService-1.3+
Added: PluggableAuthService/trunk/www/pasAddForm.zpt
===================================================================
--- PluggableAuthService/trunk/www/pasAddForm.zpt 2006-07-25 22:12:05 UTC (rev 69263)
+++ PluggableAuthService/trunk/www/pasAddForm.zpt 2006-07-25 22:59:44 UTC (rev 69264)
@@ -0,0 +1,45 @@
+<h1 tal:replace="structure context/manage_page_header">PAGE HEADER</h1>
+<h2 tal:define="form_title string:Add Pluggable Auth Service"
+ tal:replace="structure context/manage_form_title">FORM TITLE</h2>
+
+<p class="form-help">Please select the configuration for the new user folder</p>
+
+<form action="addConfiguredPAS" method="post">
+<table cellspacing="0" cellpadding="2" border="0">
+ <tr valign="top">
+ <td>
+ <div class="form-label">Setup profile</div>
+ </td>
+ <td>
+ <select name="base_profile">
+ <option value="PROFILE_ID"
+ tal:repeat="info options/base_profiles"
+ tal:attributes="value info/id"
+ tal:content="info/title">PROFILE TITLE</option>
+ </select>
+ </td>
+ </tr>
+ <tr valign="top"
+ tal:condition="options/extension_profiles | nothing">
+ <td>
+ <div class="form-label">Optional extensions</div>
+ </td>
+ <td><tal:span tal:repeat="info options/extension_profiles">
+ <input type="checkbox" name="extension_profiles:list" value="PROFILE_ID"
+ tal:attributes="value info/id" />
+ <tal:span tal:content="info/title">PROFILE TITLE</tal:span><br /></tal:span>
+ </td>
+ </tr>
+ <tr>
+ <td>
+
+ </td>
+ <td>
+ <input class="form-element" type="submit" name="submit" value="Add" />
+ </td>
+ </tr>
+</table>
+</form>
+
+<h1 tal:replace="structure context/manage_page_footer">PAGE FOOTER</h1>
+
Property changes on: PluggableAuthService/trunk/www/pasAddForm.zpt
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the Checkins
mailing list