Skip to main content

A PloneFormGen adapter that saves signup form

Project description

collective.pfg.signup

CI Coverage

Workflows

Introduction

Flexible member registration, membership workflow and membership management in Plone.

Features:

  • Customisable user registration forms (via PloneFormGen);

  • different registration forms for certain areas of the site;

  • user approval workflow and user management based on groups;

  • collecting additional information about members.

This plugin provides a PloneFormGen save adapter that uses the details from the submitted form to add Plone members.

It can be configured to:

  • put the user in a predefined group, and

  • allow members of a group to approve users before they are added.

  • The destination group or the group of approvers can be predefined, or

  • polcies of groups based on naming conventions by using python expressions

Use Cases

There are 3 use cases for adding users:

  • User is automatically created with the password supplied in the form.

  • User is created, password is randomly generated, and a password reset email is sent.

  • User is held within the adaptor, pending approval.

Destination group

Once someone is signed up, they are added to a destination group. The id of the destination group is determined by the destination group id template in your signup adapter.

If you enter Members into the destination group id template field, all users will be added to the Members group.

Dynamic Destination Group

You can vary the group that a user gets added to by using variable substitution in your destination group id template TAL expression.

For example, if you - create a registration form - with a selection box called organisation - with the values IBM, APPLE, GOOGLE, - configure the adapter destination group id template to `Members_${organisation}` - Users will be added to Members_APPLE, Members_IBM, Members_GOOGLE based on the registration form

The substitutions need to correspond to fields on your registration form and the groups need to exist

If the group doesn’t exist the registrations will be held for approval and an error email sent to the portal administrator.

Registration Approval Workflow

To hold registrations temporarily before the user accounts are added you can set a Approval Group on your adapter. This specifies the policy on which group manages users being added to another group.

Approval Group is a python expression returning a dict of `python:{manager_group: [group1, group2, ...]}`

  • Create a registration form

  • Set adapter Approval Group to `python:{'Administrators': ['*']}`

  • Upon registration the user is emailed to say their registration is pending approval

  • and email of the group is sent an email to notify that a registration needs to approved
    • if the group has no email, every memeber of group will be notified

  • Someone from the adminstrators group can login, view a list of waiting registrations

  • Once approved they are able to be edited or deactivated by the manager

Note if the approval group doesn’t exist then email will be sent to the portal administrator instead.

Post approval actions

If you want to store the information entered into a signup form, or take any other actions based on this information, you can configure an additional PFG save action adapter. Instead of directly activating that on the form, configure it as the approved save action adapter in the signup adapter and this adapter will be activated only once the user has finally been approved. You can use this with a scriptable adapter for example to do scriptable actions on user approval.

Membership management view

This plugin adds the @@user_search_view browser view, which improves upon the default Plone Users and Groups settings page for member management.

User profile pages are filtered by the Manage Group Template field. Members have the fields Access approved by, Access approved date, Access last updated by and Access last updated date to have a record of membership management actions.

There are activate and deactivate buttons to disable user for accessing the site.

Contributors

Pretaweb, Author

Changelog

1.6.1 (2021-02-05)

  • Use SemVer

1.6 (2021-02-03)

  • Fix bug with user not auto-created when user approve group is not set [nngu6036]

  • Fix deprecation errors related to plone.app.controlpanel and Products.CMFPlone. [b4oshany]

  • Add email domain verification option. [ivanteoh]

  • Display Login ID rather than User ID on search, profile view and profile edit view. [JeffersonBledsoe]

  • Fix users not being able to be deactivated if their login id is different to their user id. [JeffersonBledsoe]

1.5 (2017-03-08)

  • Fix aaData contains unicode. [ivanteoh]

  • Default to ‘Administrators’ when the TAL expression miss out the approval group. [ivanteoh]

1.4 (2016-07-25)

  • Use Plone 5 valid email regular expression. [ivanteoh]

1.3 (2016-05-04)

  • Change ‘approval_group’ to accept a list of groups instead of one group in string. [ivanteoh]

1.2 (2015-09-10)

  • Remove unused JavaScript file. [ivanteoh]

1.1 (2015-08-27)

  • User management [ivanteoh]

1.0 (2013-06-20)

  • User sign up management [davismr, ivanteoh, djay]

0.1 (2013-02-05)

  • Initial implementation [Pretaweb]

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

collective.pfg.signup-1.6.1.tar.gz (39.2 kB view details)

Uploaded Source

File details

Details for the file collective.pfg.signup-1.6.1.tar.gz.

File metadata

  • Download URL: collective.pfg.signup-1.6.1.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.8.1 pkginfo/1.5.0.1 requests/2.9.2 setuptools/44.1.0 requests-toolbelt/0.9.1 clint/0.5.1 CPython/2.7.17 Darwin/19.6.0

File hashes

Hashes for collective.pfg.signup-1.6.1.tar.gz
Algorithm Hash digest
SHA256 289404c11589ab4c38b8e96c07fe3aebd1c306f4875182c2ed66980b12ee35f0
MD5 5ee9618556549c68b7611326e739c96e
BLAKE2b-256 fb1c54931047be80900a32be12b5ea604c657a6b1ad357d690bbb7c3631a78ac

See more details on using hashes here.

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