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.34 -r1.35 --- openacs-4/packages/acs-core-docs/www/object-system-design.html 27 Oct 2014 16:39:23 -0000 1.34 +++ openacs-4/packages/acs-core-docs/www/object-system-design.html 7 Aug 2017 23:47:51 -0000 1.35 @@ -1,5 +1,5 @@ -
By Pete Su, Michael Yoon, Richard Li, Rafael Schloming
+By Pete Su, Michael Yoon, Richard Li, Rafael Schloming
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Until the implementation of the general permissions 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,
+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, the second row represents an entry in User Group 456's shared address book, and the third row represents an entry in the site's public address book.
In this way, the scoping columns identify the security context in which a @@ -260,11 +260,11 @@ form:
create table acs_object_types (
- object_type varchar(100) not null primary key,
+ object_type varchar(1000) not null primary key,
supertype references acs_object_types (object_type),
abstract_p char(1) default 'f' not null
- pretty_name varchar(100) not null unique,
- pretty_plural varchar(100) not null unique,
+ pretty_name varchar(1000) not null unique,
+ pretty_plural varchar(1000) not null unique,
table_name varchar(30) not null unique,
id_column varchar(30) not null,
name_method varchar(30),
@@ -337,7 +337,7 @@
acs_rel_types
. The key parts of this table look like this:
create table acs_rel_types (
- rel_type varchar(100) not null
+ rel_type varchar(1000) not null
references acs_object_types(object_type),
object_type_one not null
references acs_object_types (object_type),
@@ -857,5 +857,5 @@
type mechanism is a bit more complex, but in return it provides functionality
on par with the old user/groups system in a more general way.
Pete Su generated this document from material culled from other documents by Michael Yoon, Richard Li and Rafael Schloming. But, any remaining lies -are his and his alone.