A major goal in OpenACS 4 is to unify and normalize many of the core services of the system into a coherent common data model and API. In the past, these services were provided to applications in an ad-hoc and irregular fashion. Examples of such services include:
General Comments
User/groups
Attribute storage in user/groups
General Permissions
Site wide search
General Auditing
General Comments
User/groups
Attribute storage in user/groups
General Permissions
Site-wide search
General Auditing
All of these services involve relating extra information and services to application data objects, examples of which include:
Support for Unified Access Control
Access control should be as transparent as possible to the application developer. Until the implementation of the general -permissions system, every OpenACS application had to manage access +permission system, every OpenACS application had to manage access control to its data separately. Later on, a notion of "scoping" was introduced into the core data model.
"Scope" is a term best explained by example. Consider
some hypothetical rows in the address_book
table: