Members can invite new members; registration only possible if invited
PloneInvite is a tool for Plone which allows portal members to invite new users to register into the portal. The portal administrator assigns the invite codes to the portal members and members can and these invite codes are used to send the invitation.
How to Use
For Portal Administrator:
- Log in as portal administrator, go to Site Setup and click on Member Invitations link.
- On this page you can give invites to other users and set the expiration period in days for the portal invites.
- After logging in open invite link present just below search box.
- This page allows members to send invitations as well as see the status of their invitations.
- Add Products.PloneInvite to your buildout
- Install the product via Plone’s Add-on Products configlet (@@prefs_install_products_form)
People wanting to develop on this product (adding translations) may want to use the buildout:
$ svn co https://svn.plone.org/svn/collective/Products.PloneInvite/trunk/buildout ploneinvite $ cd ploneinvite $ python2.4 bootstrap.py $ ./bin/buildout
Development for Plone 3 is the default. For Plone 4, go into buildout-dvl.cfg and uncomment and comment out the relevant lines.
The buildout should create (by means of plone.recipe.plonesite) a Plone site with id ploneinvite, and the product installed.
- Assign invites to the users.
- Admin can enforce email in the the invitation (invitee register with the same email address to which the invitation was sent )
- Expiry Date for the invitation
- Inviter can enforce email
- User can register only if they have the invitation code
- Manager can add users with out invitation code
- Invitation e-mail message can be customized (page template modification)
Customizing the invite e-mail
- Go to the ZMI
- Go to portal_skins, to plone_invite, select the invite_template, customize that
Customizing the invitation sender address
The email address which will be used as the “sender” in invite e-mails is the site-wide e-mail address by default. You can change it via “@@mail-controlpanel”.
If you want to use a different sender address than the site address
- Go to the ZMI
- Go to the plone_invite tool, go to the ‘properties’ tab, modify plone_invite_email_address
Customizing who can delegate invitation codes to users
If you go into the ZMI and look into your portal’s security settings, you’ll find these permissions:
- PloneInvite: Generate Portal Invites
- PloneInvite: Invite Portal Users
- PloneInvite: Invite Portal Users
If you want a selected group of users to be able to give out invitations, just add (in the ZMI) a new Role “InvitationGivers”, give this Role the permission “PloneInvite: Generate Portal Invites” (still in the ZMI), and create (in Plone) a group which has this Role, and these users should now be able to use the ‘user_invites’ form.
- Plone 3.2.1, CMF 2.1.2, Zope 2.10.6-final
- Plone 3.3b1, CMF 2.1.2, Zope 2.10.7-final
- Plone 3.3.3, CMF 2.1.2, Zope 2.10.9-final
- Plone 3.3.5, Zope 2.10.11
Plone version compatibility
Recent versions of this product are compatible with Plone 3 only.
There’s no release for Plone 4. There’s a branch for Plone 4 in the repository, but it’s not actively being developed.
The 1.0.2 version is compatible with Plone 2.5.
The product relies on a modification of the join_form for its functionality. Using the product alongside another product which also modifies join_form will not work.
1.1 / 1.1-alpha to 1.1.2 or higher
Upgrading by clicking upgrade in the plone product installer does not do a complete upgrade, because the tool is already installed, and will not get the new property “plone_invite_email_address”. However, you might add this property manually (through the ZMI) to an already existing tool.
- Created by Giovani Spagnolo of Partecs Participatory Technologies.
- Maintained by Kees Hink of Goldmund, Wyldebeast & Wunderliebe.
- German (de): Hartmut Goebel
- Added Spanish translations [macagua]
- Improved translations support [macagua]
- Bugfix: Allow special characters in “mesaage” field when sending invitation. (http://plone.org/products/plone-invite/issues/3)
- Bugfix: Members with permission “PloneInvite: Generate Portal Invites” can now view user_invites (refs http://plone.org/products/plone-invite/issues/2)
- Bugfix: user_invites now only displays “Days” field if user has permission to set PloneInvite’s tool “days” property. This would cause an “unauthorized” error in invite_codes.cpy if non-priviliged members tried to generate invites. (refs http://plone.org/products/plone-invite/issues/2)
- Add a user action link to user_invites for non-Manager members that can generate invitations. Also added nl and de translations. (refs http://plone.org/products/plone-invite/issues/2)
- Added German (de) translation, thanks to Hartmut Goebel
- Added some of Hartmut’s ideas for extra features to TODO
- Added a bit of doc about “Customizing who can delegate invitation codes to users”
- Fixed bug with import of unused ‘INVITE_EMAIL’ variable from config.py
- remove setting of site property for PloneInvite email address
- Fixed bug where invitation email’s sender address was left empty
- Add property ‘plone_invite_sender_addres’ to tool to use instead of site’s ‘email_from_addres’.
Plone 3 compatibility fixes.
- Breaks compatibility with Plone 2.5, due to @@authenticator, which is called from the join_form in Plone 3, isn’t available in Plone 2.5.
- Renamed permissions from “PortalInvite: …” to “PloneInvite: …”.
- Minor modifications so it works under Plone 3, most notably encode e-mail before sending
- Enabled self-registration (‘Add portal member’ permission on the site), which is needed to enable new members to register themselves. (Self-registration is protected by the validation on the join_form, so people will only be able to register with an invitation code.)
- Disabled firstname.lastname@example.org as default value, use site-wide email_from_address as default. (Still customizable through config.py)
- Disable overriding of mailhost settings. (Install.py used to reset the portal’s mailhost settings to localhost:25)
- Turn on invitation generation for new users by default (5 invitations), this is probably what most sites want. Should be configurable in Plone product settings configlet.
- Disable bare try-except blocks in invite.cpy
- Added PloneInvite.pot and plone.pot
- Added Makefile for easy creation and updating of translation (.po) files
- Added Dutch translation
- Fixed a bug in the user_invites template table, which showed only the invites which did not have enforce_address set.
- Fixed bug in Extensions/Install.py which added two ‘invite_form’ links to user actions.
- Added a “FakeMessageFactory” class for translations in controller scripts, see fakemessagefactory.py
First public release.
- Test/fix expiration functionality (invitation expires after configurable time period).
- Allow modification of invitiations e-mail “Sender” in configlet (currently through ZMI).
- Modify configlet to enable modification of number of invites to give new users. (default is 5)
- Do not lose invitations when re-installing. Actually, re-installing doesn’t lose invitations, but uninstalling does: it removes the plone_invite tool (which contains the invitations). So we’re looking for another place to store invitations, which doesn’t get deleted on uninstall (making the uninstall less clean, but whatever).
- Allow specified users or groups to have “infinite” invitations.
- When inviting a user, it should be possible to put him into groups (at least if the inviter is a Manager). Thus a Manager could invite a new user directly into a certain group (which defines the access rights).
- Do not generate invitations when delegating them, but store only the number of invitations a user has left. Then generate the invite code on demand when the invitation is sent. Used invitation codes will still be stored as they are now.
- Code cleanup and improvements:
- Use getToolByName instead of relying on Acquisition in: - send_invite_codes.cpy
- Import permissions by name in PloneInvite.py