RSS

Navigation





Quick Search
»
Advanced Search »

PoweredBy

Users, roles, membership and profile data

RSS
Modified on Mon, 04 Jan 2010 16:51 by bleroy Categorized as Specification, Users

Requirements

  • Do not couple authentication to membership and profile data
  • Ability to plug-in and combine multiple authentication schemes (internal AD, OpenID, etc.)
  • Must enable creation of roles by administrators and modules
  • Must be able to store custom and extensible information about users
  • Ability for areas to extend user profiles
  • Allow administrators to set-up user permissions in a scalable manner (adding more users and features do not result in non-linear growth of workload for the administrator)
  • Allows modules to expose permissions
  • Permission checking logic can be replaced

Non goals

  • ACL-type of permission system with allow/deny and priorities
  • Setting permissions at the content item or instance level

Scenarios

A user can log into the application using his existing OpenID account

A user can create a new user account

This should include a default captcha mechanism and provide extensibility points to replace it.

An administrator can create a new user account

The account verification is bypassed in this case.

A user can access and modify all his profile information

This is by law in many countries.

This includes subscriptions, etc.

A user can delete his account

An administrator can create new roles and assign users to roles

A module author can add new roles and profile properties

An administrator can manage user membership in groups

An administrator can modify a user's profile

An administrator can delete or ban a user

User creation can be configured to require validation and/or confirmation

A user can recover a lost password

If not using OpenID.

An administrator can personalize automatic e-mail messages to the users

Messages include welcome message (with or without approval), approval notices, password recovery, account activation, account banned or account deleted.

A module can expose permissions

A module exposes what operations can be configured to be allowed or denied to specific groups.

An administrator can configure what groups are allowed to perform operations

Default roles

Orchard comes installed with some default roles. New packages should provide default permission settings for those default roles to minimize the administrator's workload when adding a new package to the system.

Those roles are:
  • Anonymous user (cannot be removed)
  • Authenticated user (cannot be removed)
  • Owner (cannot be removed, and is dynamically determined based on the object being verified)
  • Administrator (cannot be removed)
  • Author (typically creates new contents and can manage their own)
  • Editor (can modify and publish contents created by authors)

Permissions

As part of our initial implementation of the permission system, we are retrofitting the following permissions into the existing Orchard packages.

Administration UI

.Anon.Authentic.OwnerAdmin.AuthorEditor
Access the administration UINoNoYesYesYesYes

User/Role/Permission editing

.Anon.Authentic.OwnerAdmin.AuthorEditor
Manage permissionsNoNoYesYesNoNo
Create & manage usersNoNoYesYesNoNo
Create & manage rolesNoNoYesYesNoNo
Assign users to rolesNoNoYesYesNoNo

Note: the site owner not only has this permission by default but it also cannot be revoked from him, which is a special case.

Blog

See Blog package.

CMS Pages

See CMS scenarios.

Media

See Media management.

XML-RPC operations

See XML-RPC.

Tags

See Tags.

Comments

See Comments.

Error messages

When an operation can't be performed due to a permission issue, the user gets the following message if he's not authenticated:

"You are not allowed to perform this operation. Please log into the site and try again."

If he's authenticated:

"You are not allowed to perform this operation. Please contact the site administrator if you think this is an error."

Flows

User self-creation

Image

Image

Image

Image

Add a role

Image

Image

Image

Modify roles for a user

Image

Image

Image

Image

Modify permissions for a role

Image

Image

Image

Image
  Name Size
- 1.png 100.40 KB
- 1_s.png 37.27 KB
- 2.1.png 103.81 KB
- 2.1_s.png 40.78 KB
- 2.2.png 111.27 KB
- 2.2_s.png 39.43 KB
- 2.3.png 108.30 KB
- 2.3_s.png 40.31 KB
- 2.png 165.98 KB
- 2_s.png 54.54 KB
- 3.1.png 104.95 KB
- 3.1_s.png 41.01 KB
- 3.2.png 120.30 KB
- 3.2_s.png 43.03 KB
- 3.3.png 139.21 KB
- 3.3_s.png 46.65 KB
- 3.4.png 107.49 KB
- 3.4_s.png 38.51 KB
- 3.png 91.85 KB
- 3_s.png 47.89 KB
- 4.1.png 101.63 KB
- 4.1_s.png 37.82 KB
- 4.2.png 108.04 KB
- 4.2_s.png 39.32 KB
- 4.3.png 168.26 KB
- 4.3_s.png 56.35 KB
- 4.4.png 92.80 KB
- 4.4_s.png 48.30 KB
- 5.1.png 82.49 KB
- 5.1_s.png 33.36 KB
- 5.2.png 79.19 KB
- 5.2_s.png 32.89 KB
- 5.3.png 158.31 KB
- 5.3_s.png 64.78 KB
- 5.4.png 71.08 KB
- 5.4_s.png 30.05 KB

ScrewTurn Wiki version 3.0.1.400. Some of the icons created by FamFamFam.