From: Florian F. <svn...@pl...> - 2008-08-18 13:55:35
|
Author: chaoflow Date: Mon Aug 18 13:55:34 2008 New Revision: 70117 Modified: paula/paula.suite/trunk/src/paula/suite/__init__.py Log: other hacks to try to achieve it - MyPluggableAuthentication cannot be pickled Modified: paula/paula.suite/trunk/src/paula/suite/__init__.py ============================================================================== --- paula/paula.suite/trunk/src/paula/suite/__init__.py (original) +++ paula/paula.suite/trunk/src/paula/suite/__init__.py Mon Aug 18 13:55:34 2008 @@ -45,18 +45,6 @@ from persistent import Persistent -def _containerTypeIt(It, ContainerType): - if issubclass(It, ContainerType): - return It - - class ContainerTyped(ContainerType, It): - def __init__(self, id=None, **kws): - ContainerType.__init__(self) - It.__init__(self, **kws) - self.id = id - - return ContainerTyped - #def createPaulaSuite(container=None, create_pau=False, create_credplug=False): def createPaulaSuite(container, create_pau=False, create_credplugin=False, ContainerType=None): @@ -66,42 +54,30 @@ - credplugin, iff told so - authutil """ - # XXX: If we support this, the registries get mixed up - # It is meant, to register globally, if we don't get a container - #if not container: - # container = {} - - if not 'paula' in container: - if ContainerType: - paula = ContainerType() + sm = getSiteManager(container) + + if create_pau and not 'paula_pau' in container: + try: + from OFS.SimpleItem import Item + import Acquisition + import AccessControl.Role + except ImportError: + MyPluggableAuthentication = PluggableAuthentication else: - paula = Folder() - paula.id = 'paula' - container['paula'] = paula - - paula = container['paula'] - - sm = getSiteManager(paula) - - if create_pau and not 'pau' in paula: - # a PAU - #if ContainerType: - # #pau = _containerTypeIt(PluggableAuthentication, ContainerType)() - # #pau.id = 'pau' - # from zope.app.component.site import SiteManagerContainer - # class Hack(PluggableAuthentication, SiteManagerContainer): - # def __init__(self): - # PluggableAuthentication.__init__(self) - # SiteManagerContainer.__init__(self) - # pau = Hack() - # paula.pau = pau - # pau.setSiteManager(sm) - #else: - # pau = PluggableAuthentication() - # paula['pau'] = pau - pau = PluggableAuthentication() - pau.__parent__ = paula - paula.pau = pau + class MyPluggableAuthentication( + PluggableAuthentication, + Item, + Acquisition.Implicit, + AccessControl.Role.RoleManager, + ): + def __init__(self): +# super(MyPluggableAuthentication, self).__init__() + PluggableAuthentication.__init__(self) + Item.__init__(self) + Acquisition.Implicit.__init__(self) + AccessControl.Role.RoleManager.__init__(self) + pau = MyPluggableAuthentication() + container['paula_pau'] = pau # register PAU as IAuthentication and IPluggableAuthentication sm = getSiteManager(container) @@ -118,68 +94,36 @@ pau = sm.getUtility(IPluggableAuthentication) # Paula's PAU AuthenticatorPlugin - if not 'authplugin' in paula: - #if ContainerType: - # authplugin = _containerTypeIt(LocalAuthenticatorPlugin, - # ContainerType)() - # authplugin.id = 'authplugin' - # from zope.app.component.site import SiteManagerContainer - # class Hack(LocalAuthenticatorPlugin, SiteManagerContainer): - # def __init__(self): - # LocalAuthenticatorPlugin.__init__(self) - # SiteManagerContainer.__init__(self) - # authplugin = Hack() - #else: - # authplugin = LocalAuthenticatorPlugin() - authplugin = LocalAuthenticatorPlugin() - authplugin.__parent__ = paula - authplugin.__name__ = 'authplugin' - paula.authplugin = authplugin - sm.registerUtility( authplugin, - ILocalAuthenticatorPlugin, - name=PAULA_AUTHPLUGIN_NAME, - ) - pau.authenticatorPlugins += (PAULA_AUTHPLUGIN_NAME,) - - if create_credplugin and not 'credplugin' in paula: - #if ContainerType: - # credplugin = _containerTypeIt(CredentialsFromMappingPlugin, - # ContainerType)() - #else: - # credplugin = CredentialsFromMappingPlugin() - #credplugin.id = 'credplugin' - credplugin = CredentialsFromMappingPlugin() - credplugin.__parent__ = paula - credplugin.__name__ = 'credplugin' - paula.credplugin = credplugin - sm.registerUtility( credplugin, - ICredentialsFromMappingPlugin, - name=PAULA_CREDPLUGIN_NAME, - ) - pau.credentialsPlugins += (PAULA_CREDPLUGIN_NAME,) - - if not 'authutil' in paula: - #if ContainerType: - # authutil = _containerTypeIt(RWAuthProviderUtility, - # ContainerType)() - #else: - # authutil = RWAuthProviderUtility() - #authutil.id = 'authutil' - authutil = RWAuthProviderUtility() - authutil.__parent__ = paula - authutil.__name__ = 'authutil' - paula.authutil = authutil - sm.registerUtility( authutil, IRWAuthProviderUtility) - - if not 'proputil' in paula: - #if ContainerType: - # proputil = _containerTypeIt(RWPropertyProviderUtility, - # ContainerType)() - #else: - # proputil = RWPropertyProviderUtility() - #proputil.id = 'proputil' - proputil = RWPropertyProviderUtility() - proputil.__parent__ = paula - proputil.__name__ = 'proputil' - paula.proputil = proputil - sm.registerUtility( proputil, IRWPropertyProviderUtility) + #if not 'authplugin' in paula: + # authplugin = LocalAuthenticatorPlugin() + # authplugin.__parent__ = paula + # authplugin.__name__ = 'authplugin' + # paula.authplugin = authplugin + # sm.registerUtility( authplugin, + # ILocalAuthenticatorPlugin, + # name=PAULA_AUTHPLUGIN_NAME, + # ) + # pau.authenticatorPlugins += (PAULA_AUTHPLUGIN_NAME,) + # + #if create_credplugin and not 'credplugin' in paula: + # credplugin = CredentialsFromMappingPlugin() + # credplugin.__parent__ = paula + # credplugin.__name__ = 'credplugin' + # paula.credplugin = credplugin + # sm.registerUtility( credplugin, + # ICredentialsFromMappingPlugin, + # name=PAULA_CREDPLUGIN_NAME, + # ) + # pau.credentialsPlugins += (PAULA_CREDPLUGIN_NAME,) + + #if not 'authutil' in paula: + # authutil = RWAuthProviderUtility() + # authutil.__parent__ = paula + # authutil.__name__ = 'authutil' + # paula.authutil = authutil + # sm.registerUtility( authutil, IRWAuthProviderUtility) + + #if not 'paula_proputil' in container: + # proputil = RWPropertyProviderUtility() + # paula['paula_proputil'] = proputil + # sm.registerUtility( proputil, IRWPropertyProviderUtility) |