Advanced Configuration
The ACS 4.0 permissions system is about hierarchies and in particular
hiearchical containment. There are three important hiearchies:
the user hierarchy (users, groups, and parties)
the object hierarchy (objects nested in the contexts of others)
the privilege hiearchy (privileges can entail other entails).
This complexity of mechanism is designed to allow for
simplicity of use for programmers and administrators. Unfortunately,
interfaces to facilitate this simplicity of use are not here yet. Until then,
sophisticated control and configuration of BBoard necessitates an
understanding of these details.
The first hierarchy is straightforward. There are users and groups (or
together parties). Privileges granted to groups inherit to their members.
Unless explicitly disabled (see below), privileges granted to parties are
inherited down an object hierarchy. The nature of the BBoard hierarchy is as
follows: subsites contain bboard package instances; bboard package instances
contain forums; forums contain both categories and messages. Privileges
granted to parties on the package instance are inherited to all the forums
nested within and so on.
The third hiearchy is the least clear. Privileges can be nested into other
privileges. This lets us group related privileges like those for reading a
message and reading a forum together to allow us to easily grant "read
access" on a hiearchy of objects to a party even though there are
separate notions of "read a message" and "read a forum".
All the bboard privileges are nested in one of the following system level
"super"-privileges: "read", "write",
"create", "delete", and "admin".
The full set of self explanatory bboard privileges is listed here:
bboard_create_forum
bboard_create_category
bboard_create_message
bboard_write_forum
bboard_write_category
bboard_write_message
bboard_read_forum
bboard_read_category
bboard_read_message
bboard_delete_forum
bboard_delete_category
bboard_delete_message
bboard_moderate_forum
Permissions on package instances are controlled through the "set
permissions" options on the appropriate folder in the admin site map
(/admin/site-map/). While in principal, the system should allow you to grant
permissions on lower level objects like forums or even individual messages
and categories, right now the UI is limited to granting permissions on the
application instance. SQL*Plus users or even URL hackers can probably figure
out how to do this if they're so inclined.
The default set of permissions granted in a bboard system are those
inherited from the main site:
Registered Users have bboard_create_message
The Public has bboard_read_category
The Public has bboard_read_forum
The Public has bboard_read_message
The Public has read
[Admin user] admin
Granting additional privileges to parties is fairly straightforward. For
moderated forums, creating a moderators group and granting them
"bboard_moderate_forum" (or "admin" if you're feeling
lucky) will let you delegate more of the discussion culling.
For significantly different configurations you might need to revoke
privileges already granted by the defaults. In this case you must configure
the package instance not to inherit permissions from the main site and then
add back any permissions needed. Granting "read" to registered
users and bboard_create_message to "Elite d00ds" will give you a
pseudo-private forum.
Note: To facilitate usability in the common case, BBoard pages present the
option to post or reply even if the user doesn't have the
bboard_create_message privilege. If you remove posting ability from
registered users, you may wish to alter the templates to appropriately
display options.