Index: openacs-4/packages/acs-core-docs/www/object-system-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-design.html,v diff -u -r1.37.2.3 -r1.37.2.4 --- openacs-4/packages/acs-core-docs/www/object-system-design.html 3 Sep 2021 09:15:18 -0000 1.37.2.3 +++ openacs-4/packages/acs-core-docs/www/object-system-design.html 1 Aug 2024 08:03:40 -0000 1.37.2.4 @@ -33,7 +33,7 @@ object type (e.g. users) to instances of another object type (e.g. groups).
The next section will explore these facilities in the context of the -particular programming idioms that we wish to generalize.
Related Links
This design document should be read along with the design documents for the new groups system, subsites and the permissions system
The motivation for most of the facilities in the OpenACS 4 Object Model can be +particular programming idioms that we wish to generalize.
Related Links
This design document should be read along with the design documents for the new groups system, subsites and the permission system
The motivation for most of the facilities in the OpenACS 4 Object Model can be understood in the context of the 3.x code base and the kinds of programming idioms that evolved there. These are listed and discussed below.
Object identification is a central mechanism in OpenACS 4. Every application
object in OpenACS 4 has a unique ID which is mapped to a row in a central table
@@ -77,7 +77,7 @@
in the new system. Each row in acs_objects
stores information
about the application object, but not the application object itself.
This becomes more clear if you skip ahead and look at the SQL schema code
-that defines this table.
Until the implementation of the general permissions system, every OpenACS +that defines this table.
Until the implementation of the general 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:
... | scope | user_id | group_id | ... |
... | user | 123 | ... | |
... | group | 456 | ... | |
... | public | ... |
The first row represents an entry in User 123's personal address book, @@ -101,7 +101,7 @@ to an object's context if there is no information about user X's permission to perform action Y on object Z.
The context system forms the basis for the rest of the OpenACS access control system, which is described in two separate documents: one for the -permissions system and another for the +permission system and another for the party groups system. The context system is also used to implement subsites.