def addAutoUserMakerPASPlugin(context):
    """Find the nearest acl_users and adds and activates an Auto User Maker.

    Return a 1-tuple with the new Auto User Maker as its only element."""

    acl_users = getattr(context, 'acl_users', None)
    if acl_users is None:
        raise LookupError("No acl_users can be acquired or otherwise found.")

    pas = IPluggableAuthService(acl_users, None)
    if pas is None:
        raise ValueError(
            "The nearest acl_users object is not a PluggableAuthService.")

    pluginId = _firstIdOfClass(acl_users, ApacheAuthPluginHandler)
    if not pluginId:
        pluginId = 'AutoUserMakerPASPlugin'
        setup = acl_users.manage_addProduct[pluginId]
        setup.manage_addAutoUserMaker(pluginId, 'AutoUserMakerPAS Plugin')

    plugins = acl_users.plugins
    for interface in [IAuthenticationPlugin, IExtractionPlugin]:
        plugins.activatePlugin(interface, pluginId)

    return pas[pluginId]
Exemple #2
0
def addShibbolethPermissions(context):
    """Find the nearest acl_users and adds and activates an ShibbolethPermissions.

    Return a 1-tuple with the new ShibbolethPermissions as its only element."""

    acl_users = getattr(context, 'acl_users', None)
    if acl_users is None:
        raise LookupError("No acl_users can be acquired or otherwise found.")

    pas = IPluggableAuthService(acl_users, None)
    if pas is None:
        raise ValueError(
            "The nearest acl_users object is not a PluggableAuthService.")

    pluginId = _firstIdOfClass(acl_users, ShibbolethPermissionsHandler)
    if not pluginId:
        pluginId = 'ShibbolethPermissions'
        setup = acl_users.manage_addProduct[pluginId]
        setup.manage_addShibbolethPermissions(pluginId,
                                              'ShibbolethPermissions')

    return pas[pluginId]