Personal tools
Skip to content. | Skip to navigation
This product declares the key framework services for the Zope Content Management Framework (CMF).
A table input component for Plone. Uses Javascript to make entering tabular data more user friendly process - there are no round trip HTTP requests to the server when inserting or deleting rows. Features o Any number of columns set by a developer o Any number of rows filled by a user o Insert and deleting rows without submitting a form o Many different column types
GroupUserFolder is a kind of user folder that provides a special kind of user management.
Persistent Zope 2 LDAP connection manager
The LDAPMultiPlugins provides PluggableAuthService plugins that interoperate with LDAP.
This product is a replacement for a Zope user folder. It does not store its own user objects but builds them on the fly after authenticating a user against the LDAP database. Why does the LDAPUserFolder not show all my LDAP groups? According to feedback received from people who use Netscape directory products the way a new group is instantiated allows empty groups to exist in the system. However, according to the canonical definition for group records groups must always have a group member attribute. The LDAPUserFolder looks up group records by looking for group member entries. If a group record has no members then it will be skipped. As said above, this only seems to affect Netscape directory servers. To work around this (Netscape) phenomenon add one or more members to the group in question using the tools that came with the directory server. It should appear in the LDAPUserFolder after that. Why use LDAP to store user records? LDAP as a source of Zope user records is an excellent choice in many cases, like... * You already have an existing LDAP setup that might store company employee data and you do not want to duplicate any data into a Zope user folder * You want to make the same user database available to other applications like mail, address book clients, operating system authenticators (PAM-LDAP) or other network services that allow authentication against LDAP * You have several Zope installations that need to share user records or a ZEO setup * You want to be able to store more than just user name and password in your Zope user folder * You want to manipulate user data outside of Zope ... the list continues. The LDAP Schema Your LDAP server should contain records that can be used as user records. Any object types like person, organizationalPerson, or inetOrgPerson and any derivatives thereof should work. Records of type posixAccount should work correctly as well. The LDAPUserFolder expects your user records to have at least the following attributes, most of which are required for the abovementioned object classes, anyway: * an attribute to hold the user ID (like cn, uid, etc) * userPassword (the password field) * objectClass * whatever attribute you choose as the username attribute * typcial person-related attributes like sn (last name), givenName (first name), uid or mail (email address) will make working with the LDAPUserFolder nicer Zope users have certain roles associated with them, these roles determine what permissions the user have. For the LDAPUserFolder, role information can be expressed through membership in group records in LDAP. Group records can be of any object type that accepts multiple attributes of type "uniqueMember" or "member" and that has a "cn" attribute. One such type is "groupOfUniqueNames". The cn describes the group / role name while the member attributes point back to all those user records that are part of this group. Only those group-style records that use full DNs for its members are supported, which excludes classes like posixGroup. For examples of valid group- and user-records for LDAP please see the file SAMPLE_RECORDS.txt in this distribution. It has samples for a user- and a group record in LDIF format. It is outside of the scope of this documentation to describe the different object classes and attributes in detail, please see LDAP documentation for a better treatment. Things to watch out for Since a user folder is one of these items that can lock users out of your site if they break I suggest testing the settings in some inconspicuous location before replacing a site's main acl_users folder with a LDAPUserFolder. As a last resort you will always be able to log in and make changes as the superuser (or in newer Zope releases called "emergency user") who, as an added bonus, can delete and create user folders. This is a breach of the standard "the superuser cannot create / own anything" policy, but can save your skin in so many ways. LDAP Schema considerations when used with the CMF The CMF (and by extension, Plone) expect that every user has an email address. In order to make everything work correctly your LDAP user records must have a "mail" attribute, and this attribute must be set up in the "LDAP Schema" tab of your LDAPUserFolder. When you add the "mail" schema item make sure you set the "Map to Name" field to "email". The attributes that show up on the join form and the personalize view are governed by the properties you 'register' using the 'Member Properties' tab in the portal_memberdata tool ZMI view, which in turn is sourced from the 'LDAP Schema' tab in the LDAPUserFolder ZMI view. Attributes you would like to enable for portal members must be set up on the LDAPUserFolder 'LDAP Schema' tab first, and then registered using the 'Membeer properties' screen in the Member data tool ZMI view.
LinguaPlone is the multilingual/translation solution for Plone, and achieves this by being as transparent as possible and by minimizing the impact for existing applications and Plone itself. It utilizes the Archetypes reference engine to do the translation, and all content is left intact both on install and uninstall - thus, it will not disrupt your content structure in any way. LinguaPlone doesn’t require a particular hierarchy of content, and will in theory work with any layout of your content space, though the default layout advertised in the install instructions will make the site easier to use. Some benefits of LinguaPlone Totally transparent, install-and-go. Each translation is a discrete object, and can be workflowed individually. Translations are kept track of using AT references. You can multilingual-enable your types without affecting their operation outside LinguaPlone. Even if you uninstall LinguaPlone after adding multilingual content, all your content will be intact and will work as separate objects! The only thing that will be inactive is the references between the objects. If you re-install it, they will be back. It’s very non-intrusive. Supporting multilingual capabilities is a 4 (!) line addition to your Archetypes class, and does not alter the functionality of the class when used outside LinguaPlone. Fully integrated with ATContentTypes, so the basic content types are translatable. Supports language-independent fields (example: dates, first/last names) for fields you want to be the same across translations, and updated in all languages if one of them changes. Uses the notion of canonical versions, so you can do interesting things with workflow, like invalidate all translations of a document when the master copy has changed.
MIMETools provides the <!--#mime--> tag for DocumentTemplate.
The MailHost product provides support for sending email from within the Zope environment using MailHost objects. An optional character set can be specified to automatically encode unicode input, and perform appropriate RFC 2822 header and body encoding for the specified character set. Full python email.Message.Message objects may be sent. Email can optionally be encoded using Base64, Quoted-Printable or UUEncode encoding (though automatic body encoding will be applied if a character set is specified). MailHost provides integration with the Zope transaction system and optional support for asynchronous mail delivery. Asynchronous mail delivery is implemented using a queue and a dedicated thread processing the queue. The thread is (re)-started automatically when sending an email. The thread can be started manually (in case of restart) by calling its manage_restartQueueThread?action=start method through HTTP. There is currently no possibility to start the thread at Zope startup time. Supports TLS/SSL encryption (requires Python compiled with SSL support).
Products.ManagableIndex is a framework for the easy construction of efficient, flexible, via the ZMI fully customizable indexes for Zope 2.11 (or above). It comes with a set of predefined indexes: Field, Keyword, Path, Range, Word and SimpleText index. Usually, they are more flexible and more efficient than the corresponding indexes from the Zope core. Products.ManagableIndex uses dm.incrementalsearch when it is installed. This can speed up queries by several orders of magnitude when used together with Products.AdvancedQuery