source: extensions/Icy_Picture_Modify/doc/zaml.md @ 16495

Last change on this file since 16495 was 16495, checked in by icy, 12 years ago

Version 2.0.0, advance ACL . Code copied from git/master.

I could not use merging with git svn . Stupidly copy-&-paste ;)

File size: 4.2 KB
Line 
1# PURPOSE
2
3  This format is used to describe advance ACL for Piwigo installation.
4  This ACL is supported by the plugin `icy_picture_modify`.
5
6# FORMAT
7
8  Format details
9
10  * Name:     ZAML (not YAML)
11  * Version:  1.0.0
12  * Author:   icy (Anh K. Huynh)
13
14# SYNTAX
15
16  There are only three types of lines in the format. They follows
17  a rule: a late one overwrites any similar mean of the previous lines.
18
19  * user name specification   _(meanful)_
20  * variable assigment        _(meanful)_
21  * all other non-sense lines _(meanless)_
22
23## User name specification
24
25  A user name (as in your Piwigo system) is put on a single line,
26  ended by a colon (:), and optionally followed by `reference`.
27
28  A `reference` is any user name started by `@`. The current user
29  will have all settings of the `reference` user; those settings will
30  be overwritten by other assignment for the current user. If the
31  `reference` user has't any settings at the time it is declared,
32  the reference will be ignored.
33
34  * *Note 1:* The special name `default` is used specially by the format,
35    and you should not use it for any user in your Piwigo system.
36  * *Note 2:* User name must not contain a colon (:)
37
38## Variable assigment
39
40  A variable assigment has two parts: a variable name and its value.
41  On the line, the variable name must be started by two spaces,
42  followed by a colon (:) and its value.
43
44  You can specify any variable name, though most of them are not
45  officialy supported by `icy_picture_modify` (see EXAMPLES).
46
47  To specify variable's value, you can use
48
49  * nothing, or any spaces      _(meaning: `FALSE`)_
50  * `no`, `false`               _(meaning: `FALSE`)_
51  * `yes`, `true`               _(meaning: `TRUE`)_
52  * Any other string. This string will be considered as an array
53    whose its delimiter is any space, semi-colon (`;`), colon (`:`)
54    or colon (`,`), or any combination of them. Each item of array
55    is often a number, a user name, `sub` or `any` or `owner`.
56
57    * number:     specify category identity
58    * user name:  specify any Piwigo user name
59    * `sub`:      action can work on sub categories
60    * `any`:      action can work on any categories
61    * `owner`:    action can work on any image of current user
62
63## Meanless lines
64
65  Any other lines are considered as comment. They are meanless.
66
67# PARSER
68
69  Simple parser can be found in the function `icy_zml_parser` in
70  ```
71    plugins/icy_picture_modify/include/ \
72      functions_icy_picture_modify.inc.php
73  ```
74
75# EXAMPLE
76
77## Default settings
78
79  Default settings for all users (except guest user). These settings are
80  put in the code of the plugin `icy_picture_modify` so you may not have
81  to specify them. All of the following lines mean:
82
83  *  User can edit their own images (image they uploaded)
84  *  User can't delete any image
85  *  User can upload image to sub categories. Unfortunately, there is no
86  *  category specified, so they can't upload images to any category.
87  *  All images are showed on the Piwigo system after they are uploaded;
88  *  they will not require any moderation work
89  *  User can create new gallery inside sub categories. As there isn't
90  *  any category specified, they can't create any new gallery.
91  *  User can't link an image to any album
92  *  User can't create representation for any album
93
94```
95default:
96  edit_image_of: owner
97  delete_image_of:
98  upload_image_to: sub
99  moderate_image: no
100  create_gallery_to: sub
101  associate_image_to:
102  present_image_to:
103```
104
105## A normal user
106
107  This user can upload image to category whose identity is `34`;
108  He can edit image of his own and of the user `example_user0`;
109  He can link images to any album in Piwigo system;
110  He can create new gallery in the parent category `34` and its sub
111  category; He can also make representation for any album
112  Finally, he can't delete any images.
113
114```
115example_user1:
116  upload_image_to: sub, 34
117  edit_image_of:  example_user0, owner
118  associate_image_to: any
119  create_gallery_to: 34, sub
120  present_image_to: any
121  delete_image_of:
122```
123
124## Reference
125
126  This user `example_user2` will have all settings of `example_user1`,
127  except he can delete images of `example_user1` and his own
128
129```
130example_user2: @example_user1
131  delete_image_of: owner, example_user1
132```
Note: See TracBrowser for help on using the repository browser.