Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This proposal outlines a plan to make it easy to hook Roller up to an external user permissions system. The general approach is to define a User Permissions API, provide a default implementation for Roller, and change UserManager to use that API. Developer could then provide alternative implementations of that API to plug in their own user permissions systems.

...

3.0 Requirements

  • Enable Roller to optionally read/write user-weblog permission information in an external system

4.0 Issues

Issues raised and addressed during review process. TBD

5.0 Background and Design

To understand this proposal you need to understand how Roller's existing user management system works. So here's an explanation of Roller's current system, the perceived problems and proposed solutions.

...

5.1 Roller manages user-weblog permissions

In addition to roles, which are global across a Roller site, Roller also manages each user's permissions to access weblogs. There is a many-to-many relationship between users and weblogs and it's stored in a database table:

...

Code Block
public boolean hasWritePermissions(User user)

...

5.1.1 Problem

Permissions cannot be managed by external system because the User to Permissions to Weblog relationship is managed by the ORM, the information must be stored in Roller database tables and cannot be externalized and managed by another system.

...

5.1.2 Solution: User Permissions API

First, we remove the dependence on ORM for permissions. Insead calling ORM supported methods on the Weblog and User classes, the Roller front-end will call the Roller UserManager to access permissions information. We'll add these new methods to accommodate that:

...

Roller will include a User Permissions API that stores data in the Roller database. Other implementations can be plugged in via DI. You can stop reading here... the rest is TBD

3.0 Requirements

Requirements satisfied by this proposal

4.0 Issues

Issues to be considered

5.0 Design

List and describe new manager methods, Struts actions, JSP pages, macros, etc.

6.0 Comments

Other can leave commments herePlease comment on the dev mailing list.