OpenACS Object
'acs_object' is the root object type of the ]po[ object hierarchy. It all starts here folks.
Purpose
A number of ]po[ services are defined on the level of 'acs_object' and for all objects in ]po[:
- Object-level permissions: You can define access permissions for each object per group and action
- Full-Text search: You can include any object in the ]po[ full-text index
- DynField SQL Metadata system: You can extend objects with new fields at runtime.
Object Fields
- object_id: A unique integer ID for each object. This ID is also shared by the object's other tables. For example, a project's ID in the im_projects.project_id is identical with the acs_objects.object_id.
In other words: There is only a single sequence of IDs in ]po[, as opposed to separate IDs for each table. Thanks to this unique ID, it is possible to extract the object's class, the objects's fields and other meta-information about the object.
- object_type: The object's type. This field references the table 'acs_object_types', which contains meta-information for the object type (see below).
- context_id: Please see the [tutorial]. A reference to the object's super-object for the inheritance of permissions. For example, the context_id of a discussion forum reply references the discussion thread. The context_id of the discussion thread references the forum, and the forum references the "discussion forum" package, which in turn references the "main_site" root of the object hierarchy.
Now: If you grant permissions for all registered users to "read" the main site, then all registered users will automatically have permissions to read all forum discussion items.
- security_inherit_p: Should the object inherit the permissions from the object referenced by context_id? This way you can cut the chain of inheritance defined by context_id.
- creation_user: Who created the object initially?
- creation_date: When was the object created initially?
- creation_ip: From which IP (of the users's browser) was the object created?
- last-modified: When was the object last modified?
- modifying_user: Who performed the last modification?
- modifying_ip: From which IP was the object last modified?
- tree_sortkey: Part of the pre-calculated hierarchical object index based on context_id.
- max_child_sortkey: Part of the pre-calculated hierarchical object index based on context_id.
- title (>V3.4): Cached name of the object.
- package_id (>V3.4): To which package does the object belong?
- last_audit_id (>V3.4): Which is the last version of the object? This field is added by the audit package.
Object Definition
Column | Type
--------------------+--------------------------
object_id | integer
object_type | character varying(100)
context_id | integer
security_inherit_p | boolean
creation_user | integer
creation_date | timestamp with time zone
creation_ip | character varying(50)
last-modified | timestamp with time zone
modifying_user | integer
modifying_ip | character varying(50)
tree_sortkey | bit varying
max_child_sortkey | bit varying
title | character varying(1000)
package_id | integer
last_audit_id | integer
References