Project-Id-Version: Trac 0.12
Report-Msgid-Bugs-To: trac-dev@googlegroups.com
POT-Creation-Date: 2008-01-30 09:20+0100
PO-Revision-Date: 2010-07-19 23:05+0200
Last-Translator: Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
Language-Team: en_US <trac-dev@googlegroups.com>
Plural-Forms: nplurals=2; plural=(n != 1)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Generated-By: Babel 0.9.6

Warning: Can't synchronize with repository "(default)" (Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? ). Look in the Trac log for more information.

Changes between Version 6 and Version 7 of MultipleGroupAccessModel


Ignore:
Timestamp:
12/31/09 17:04:52 (10 years ago)
Author:
sebastian
Comment:

Delete GROUP_ACL_VIEW_PREVIEW, change GROUP_FLAG_PUBLIC to GROUP_FLAG_VISIBLE, typos

Legend:

Unmodified
Added
Removed
Modified
  • MultipleGroupAccessModel

    v6 v7  
    4848 
    4949 * Access rights granularity 
    50   * Proposed ACL flags: {{{GROUP_ACL_META_ADD}}}, {{{GROUP_ACL_META_DEL}}}, {{{GROUP_ACL_VIEW_PREVIEW}}}, and {{{GROUP_ACL_VIEW_ORIGINAL}}}.  
     50  * Proposed ACL flags: {{{GROUP_ACL_META_ADD}}}, {{{GROUP_ACL_META_DEL}}}, and {{{GROUP_ACL_VIEW_ORIGINAL}}}.  
    5151   * {{{GROUP_ACL_META_ADD}}}: MetaData could be added, but not deleted or overwritten.  
    5252   * {{{GROUP_ACL_META_DEL}}}: MetaData could be added, modified, and deleted 
    53    * {{{GROUP_ACL_VIEW_PREVIEW}}}: Media could be seen in preview but the original media could not be viewed nor downloaded 
    54    * {{{GROUP_ACL_VIEW_ORIGINAL}}}: Media could be seen in all preview sizes and could be downloaed 
     53   * {{{GROUP_ACL_VIEW_ORIGINAL}}}: Media could be seen in all preview sizes and could be downloaded 
    5554 
    5655 * User Roles 
     
    6059 
    6160 * New Group Flags 
    62   * Proposed flags: {{{GROUP_FLAG_SYSTEM}}}, {{{GROUP_FLAG_PUBLIC}}}, {{{GROUP_FLAG_OPEN}}}, and {{{GROUP_FLAG_SHARED}}}.  
    63    * {{{GROUP_FLAG_SYSTEM}}}: indicates a group of the system which are initialized at installation or created by admins and sysops. These groups could not be modified or deleted by ordinary users. E.g. the group of public images, group of images accessable for ordinary users, user's own image group. '''(System groups dont have an group owner.)''' 
    64    * {{{GROUP_FLAG_PUBLIC}}}: indicates a group which is viewable for all users. These groups are shown in the media. Users can create public groups. 
    65    * {{{GROUP_FLAG_OPEN}}}: indictes a group which could be joined freely without an acknolegement of the group owner. Users can decide if the group is open or closed. 
    66    * {{{GROUP_FLAG_SHARED}}}: indicates a group which could be shared between different users. The group owner keeps the controll of the group members and can add or delete members of it. 
     61  * Proposed flags: {{{GROUP_FLAG_SYSTEM}}}, {{{GROUP_FLAG_VISIBLE}}}, {{{GROUP_FLAG_OPEN}}}, and {{{GROUP_FLAG_SHARED}}}.  
     62   * {{{GROUP_FLAG_SYSTEM}}}: indicates a group of the system which are initialized at installation or created by admins and sysops. These groups could not be modified or deleted by ordinary users. E.g. the group of public images, group of images accessible for ordinary users, user's own image group. '''(System groups dont have an group owner.)''' 
     63   * {{{GROUP_FLAG_VISIBLE}}}: indicates a group which is visible for all users. These groups are shown in the media details. Users can create visible groups. 
     64   * {{{GROUP_FLAG_OPEN}}}: indicates a group which could be joined freely without an acknowledgment of the group owner. Users can decide if the group is open or closed. 
     65   * {{{GROUP_FLAG_SHARED}}}: indicates a group which could be shared between different users. The group owner keeps the control of the group members and can add or delete members of it. 
    6766 
    6867== Database == 
     
    7776== Programming == 
    7877 
    79  * Behaviour 
    80   * Create GroupAccess behaviour ({{{models/behaviours/group_access.php}}}) which handles all the new access stuff and all its "magic". See http://book.cakephp.org/view/88/Behaviors (basically behaviours enriches a model class with a behaviour and all functions of the behaviour is callable from the model itself) 
    81   * Add GroupAccess to behaviour to Media model 
    82   * Adapt access management to the behaviour and adapt the code, e.g. FileManager, WebDAV, etc 
     78 * Behavior 
     79  * Create GroupAccess behavior({{{models/behaviors/group_access.php}}}) which handles all the new access stuff and all its "magic". See http://book.cakephp.org/view/88/Behaviors (basically behaviors enriches a model class with a behavior and all functions of the behavior is callable from the model itself) 
     80  * Add GroupAccess to behavior to Media model 
     81  * Adapt access management to the behavior and adapt the code, e.g. FileManager, WebDAV, etc 
    8382 
    8483 * MVC 
    8584  * Adapt the group model/view/controller 
    86   * Add database initialisation of public system groups in the setup to ensure required groups (e.g. group of public media, group of media accessible for users) 
     85  * Add database initialization of public system groups in the setup to ensure required groups (e.g. group of public media, group of media accessible for users) 
     86   * public, users, guests 
     87   * Options could define the initial groups for anonymous user and for user creations 
    8788  * On user creation create private user group 
    8889  * List all user's public groups in his profile 
    8990  * On media creation assign the ''private user group'' (see section Database Layer) 
     91   * Options could define the initial groups for media creation 
    9092  * Add a group search which should handle multiple groups (and exclusions) 
    9193  * Write schema migration script like {{{vendor/shells/upgradeMediaSchema.php}}} to ensure migration of older phtagr versions 
     
    9496 
    9597 * If each user has its own ''private user group'' and all his media has at least this private user group, the SQL magic and access management is reduced to an {{{INNER JOIN}}} [http://www.w3schools.com/Sql/sql_join.asp w3schools] to the user's groups. The private user group should be handled invisible and must be set always on creation or media group assignment changes. 
    96  * Simplefied Cases: User 'john' has the private user group {{{<1:john>}}} (syntax {{{<group ID:group name>}}}). He is also member of groups {{{<2:nature>}}} and {{{<3:buildings>}}}. 
    97   * To fetch all media accessable for 'john' select all media with 'john's private user group: {{{SELECT * FROM media INNER JOIN group_media ON media.id = group_media.media_id AND group_media.group_id = 1}}} 
     98 * Simplified Cases: User 'john' has the private user group {{{<1:john>}}} (syntax {{{<group ID:group name>}}}). He is also member of groups {{{<2:nature>}}} and {{{<3:buildings>}}}. 
     99  * To fetch all media accessible for 'john' select all media with 'john's private user group: {{{SELECT * FROM media INNER JOIN group_media ON media.id = group_media.media_id AND group_media.group_id = 1}}} 
    98100  * Select all media which are accessible for 'john' (all media having 'john's groups): {{{SELECT * FROM media INNER JOIN group_media ON media.id = group_media.media_id AND group_media.group_id IN (1, 2, 3)}}} 
    99101