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


 

  Contact Us
  Project Open Business Solutions S.L.

Calle Aprestadora 19, 12o-2a

08902 Hospitalet de Llobregat (Barcelona)

Spain

 Tel Europe: +34 609 953 751
 Tel US: +1 415 200 2465
 Mail: info@project-open.com