Skip to main content

PluggableAuthService (PAS) plug-ins allowing for the user-related behaviour and data to be obtained from content within a Plone site.

Project description


membrane is a set of PluggableAuthService (PAS) plug-ins that allow for the user-related behaviour and data (authentication, properties, roles, groups, etc.) to be obtained from content within a Plone site. It does not actually provide a full member implementation, it is intended to be a set of tools from which a full implementation can be constructed. It is meant to be flexible and pluggable, and easy to adapt to different deployment scenarios. It is not meant to be configured through-the-web-only, but to be adapted by filesystem code.

membrane tries to take a step backwards and re-think some of the Plone membership-handling. We have tried to make it as simple as possible, so that grasping and extending it is simple. Hopefully, simplicity should also make it easier to make sure it is secure.

For information about the “why?” of membrane, and some policies for helping out, please see ‘MANIFESTO.txt’.


  • Plone 3.0+

Please see docs/INSTALL.txt for installation instructions.


Currently, a catalog is used to index the interfaces implemented by the objects in the portal. However, interfaces are specified programmatically, either via Python code or ZCML. Any time Zope is restarted, interfaces may have changed, and, if they have, the catalog will have become out of date. Work is under way on a more robust interface lookup solution, but for now if you change the interfaces implemented on any membrane related type or object, you may need to explicitly reindex the ‘object_implements’ interface on the membrane_tool.

Changelog for Products.membrane

(name of developer listed in brackets)

1.1 (2011-12-01)

  • Made the getUserAuthProvider method private for better security. Use portal_membership.getMemberInfo(user_id) when you need something similar in a skin script or template. Problem reported by Richard Mitchell, thanks! [maurits]

  • Uninstall method [elro]

  • Fix Plone version requirement

1.1b5 Released March 23, 2009

  • Fix git based release problem, now using setuptools-git (hannosch)

1.1b4 Released March 20, 2009

  • Tested with Plone 3.0-3.2 [rossp]

  • Add a warning about upcoming changes to object_implements [rossp]

  • Deprecate the category mapper support [rossp]

  • Deprecate AT assumptions [rossp]

  • Provide the offending login name when more than one match [witsch]

  • Fix AttributeError bug when the search term is None [claytron]

  • Distinguish btn substring matches and case-insensitive matches for userid and username when supporting case-insensitive logins [rafrombrc]

  • Only use the membrane user factory plug-in for users for whom membrane provides authentication. [rafrombrc]

1.1b3 Released July 23, 2008

  • Fix issue with retrieving unnamed user adders. [witsch]

  • Remove counter again as the membrane tool inherits from Plone’s catalog tool, which already has support for a counter. Keep the test and caching helper, though. :) [witsch]

1.1b2 Released July 22, 2008

  • Add a counter to the membrane tool which can be used as a cache key as well as a convenience helper for quickly memoizing adapters and tools. [witsch]

  • Have rolemanager and groupmanager search for exact userids. [mj]

1.1b1 Released May 22, 2008

  • Initial egg release. [rafrombrc]

Please see Products/membrane/doc/HISTORY.txt for the changelog of previous, non-eggified versions.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Products.membrane-1.1.tar.gz (118.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page