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 10 and Version 11 of MultipleGroupAccessModel


Ignore:
Timestamp:
01/04/10 17:56:28 (10 years ago)
Author:
martin
Comment:

clarified the specifications, added user-interface section

Legend:

Unmodified
Added
Removed
Modified
  • MultipleGroupAccessModel

    v10 v11  
    4747 * Create svn branch {{{branches/phtagr-multiple-group-access-model}}} for this non-minor change 
    4848 
    49  * Access rights granularity 
    50   * Proposed ACCESS flags: {{{GROUP_ACCESS_META_ADD}}}, {{{GROUP_ACCESS_META_EDIT}}}, and {{{GROUP_ACCESS_DOWNLOAD_RAW}}}.  
    51    * {{{GROUP_ACCESS_META_ADD}}}: MetaData could be added, but not deleted or overwritten.  
    52    * {{{GROUP_ACCESS_META_EDIT}}}: MetaData could be added, modified, and deleted 
    53    * {{{GROUP_ACCESS_DOWNLOAD_RAW}}}: Media could be seen in all preview sizes and could be downloaded in its raw formats with embedded the MetaData 
     49=== Types of groups === 
    5450 
    55  * User Roles 
    56   * owner: can assign moderators and perform everything else a moderator can (Do we need multiple moderators? This could be a open group. See group flags) 
    57   * moderator: can add/invite/delete users (Could be also a public group) 
    58   * member: is allowed to view and assign images to the group 
     51There are two types of groups: private and public. The only difference of the two is that a public group will be listed when someone searches for groups whereas a private one is not. To be able to become a member of a hidden group one needs an invitation by a group moderator. For public groups one might need an approval for joining the group by a group moderator. 
    5952 
    60  * New Group Flags 
    61   * Proposed flags: {{{GROUP_FLAG_SYSTEM}}}, {{{GROUP_FLAG_VISIBLE}}}, {{{GROUP_FLAG_OPEN}}}, {{{GROUP_FLAG_SHARED}}}, and {{{GROUP_FLAG_PUBLIC}}}.  
    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 users. These groups are shown in the media details. E.g. a non visible group of john is not shown in the media details if jack views this media. A visible group could be searched by other users but not a non-visible group. 
    64    * {{{GROUP_FLAG_OPEN}}}: indicates a group which could be joined freely without an acknowledgment of the group owner/moderator. User 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/moderator keeps the control of the group members and can add or delete members. If jack is member of john's shared group ''food'', jack can use the group ''food'' for his own media (jack must be a member of the group ''food'' first to be able to use it). 
    66    * {{{GROUP_FLAG_PUBLIC}}}: indicates a a group which media is viewable by anyone (also an anonymous visitor) 
    67   * Example Flags and description 
     53The flags for the group types are: {{{GROUP_TYPE_PUBLIC}}} and {{{GROUP_TYPE_HIDDEN}}} 
    6854 
    69   ||System||Visible||Open||Shared||Public||Comment|| 
    70   ||x|| || || || ||A hidden system group like the private user group|| 
    71   ||x|| || ||x||x||A system group like the group 'public' to show pictures to everybody|| 
    72   ||x||x|| ||x|| ||A special system group which is not an hidden system group and created by a sysop after phtagr's installation. E.g. the group 'special-screenshots'|| 
    73   || || || || || ||A private group of a user like a 'my-secret-pics'|| 
    74   || ||x|| || || ||A group of an user, which needs authorization of the group owner/moderator to join. E.g. 'johns-vacation' group. Only john can use this group for his pictures|| 
    75   || ||x||x|| || ||A group of an user which could be joined freely like the group 'johns-food'. Only john can use this group for his pictures|| 
    76   || ||x||x||x|| ||A shared group of an user which could be joined freely and used by other group members, too. Like 'car-fan-group'|| 
    77   || ||x|| ||x|| ||A shared group of an user, which needs authorization of the group owner/moderator to join. Group members can use this group for their pictures, too. E.g. 'johns-sunset-contest' group|| 
    78   || || || || ||x||A public group of an user. These photos are viewable for everybody|| 
    79   || ||x|| || ||x||A public group of an user. These photos are viewable for everybody and the group name is shown in the media properties|| 
     55=== Visibility of images belonging to a group === 
     56Images that belong to a group can have the following visibility: 
     57 
     58 * member: Only members of the group can view the images. 
     59 * registered: Images are visible for registered users (also for users that are not members of the group) but not for anonymous visitors. 
     60 * anonymous: Images are visible for everyone. 
     61 
     62Flags for the visibility are: {{{GROUP_ACCESS_MEMBER}}}, {{{GROUP_ACCESS_REGISTERED}}}, and {{{GROUP_ACCESS_ANONYMOUS}}}. 
     63 
     64=== Access rights for tagging ===  
     65 
     66To prevent that tags or other meta data get deleted by accident or are being maliciously modified, one can assign the following access rights with respect to tagging: 
     67 
     68 * readonly: Tags cannot be modified at all but are displayed. 
     69 * only add: Tags can be added but not removed or modified. 
     70 * full: Tags can freely be added, removed and modified. 
     71 
     72Flags for the tagging rights: {{{GROUP_TAGGING_READONLY}}}, {{{GROUP_TAGGING_ONLYADD}}}, and {{{GROUP_TAGGING_FULL}}}. 
     73 
     74=== Access levels for viewing the media === 
     75One might be interested to provide download of the original image to some people so that they can print them out or save them in high quality. But this is not always the case. Therefore there should be two different kinds of access levels for media: 
     76 
     77 * view: Images and videos can only be viewed in the browser. 
     78 * full: Images and videos can also be downloaded. 
     79 
     80Flags for the access levels for the media: {{{GROUP_MEDIAVIEW_VIEW}}} and {{{GROUP_MEDIAVIEW_FULL}}}. 
     81 
     82=== User Roles for groups === 
     83 
     84To be able to make groups self-governing we need the following user roles for groups: 
     85 
     86 * owner: can assign moderators and perform everything else a moderator can, 
     87 * moderator: can add/invite/delete users, 
     88 * member: is allowed to view and assign images to the group. 
    8089 
    8190== Database == 
     
    8796  * Add fields to Group schema: flags (int), acl (int), description (text) 
    8897 
     98== User-interface == 
     99 
     100One should take care that the user-interface simplifies the creation of groups. It would be rather confusing for non-geek users to expose all flags to them. 
     101By providing a small set of examples with a fixed access sheme, e.g.: 
     102 
     103 * private: {{{GROUP_TYPE_HIDDEN}}}, {{{GROUP_ACCESS_MEMBER}}}, 
     104 * shared: {{{GROUP_TYPE_PUBLIC}}}, {{{GROUP_ACCESS_MEMBER}}}, 
     105 * public: {{{GROUP_TYPE_PUBLIC}}}, {{{GROUP_ACCESS_ANONYMOUS}}}, 
     106 
     107and additional checkboxes, whether users should be allowed to tag and/or download the original media should suffice. More advanced combinations should be hidden by an "Advanced Settings" tab or similar. 
    89108 
    90109== Programming ==