previo | inicio |
Permissions inheritance is a feature of the basic ACS Objects datamodel, but in practice usage is so intertwined with package instances and the operation of the site map that I've decided to discuss the subject here. The root object type of the OpenACS system, acs_object, contains two columns that control the inheritance of permissions from other objects. The first, a boolean named security_inherit_p, if set false disables inheritance. If set true, the column context_id identifies the object from which this object should inherit permissions. By default, security_inherit_p is set true. It is up to the programmer to set context_id to a meaningful value. Normally, context_id is set to the new object's logical parent object. Permissions inheritance, the site map, and the acs-subsite package interact in a way that makes it quite simple to control access to objects in a particular OpenACS-based website: |
|
The bottom line: in nearly all cases, changing the permissions of a subsite will lead to consistent permissions behavior on the part of applications packages it controls. The permissions system follows the "law of least astonishment". |