[DOC] Updated html help
[cds-indico.git] / indico / htdocs / ihelp / html / _sources / UserGuide / Protection.txt
blob0c0ab7f813aa9482c6de2ab48e68f7d6853c6eca
1 .. _protection_guide:
3 =================
4 Protection System
5 =================
7 Introduction
8 ------------
10 This section aims to describe the protection system used by
11 Indico to grant or restrict access to users.
13 --------------
15 Basic Concepts
16 --------------
18 Inheritance Graphic
19 ~~~~~~~~~~~~~~~~~~~
21 You can set up a protection policy for almost all the objects that
22 you can create within Indico. This protection policy is based on an
23 inheritance system, meaning that an object is going to inherit the
24 protection from its father, e.g., a contribution can be public but
25 becomes private if we set up its container (a meeting) as private.
27 The protection objects tree is as shown in the following picture:
29 |image208|
31 As we can see, a **File** inherits the protection policy from
32 *Material*, *Material* from *Contribution*, *Contribution* from
33 *Session*, *Session* from *Event*, *Event* from *Sub-category* and
34 *Sub-category* from *Category.*
35 The next picture shows an example of this inheritance system.
36 "Category A" is RESTRICTED and because of this, "Conference 1" becomes
37 RESTRICTED too. As User 1 and User 2 are in the access list for
38 "Category A" they can also access "Conference 1". The rest of Indico
39 users cannot access "Category A" and "Conference 1".
41 |image209|
43 --------------
45 Protection Types
46 ~~~~~~~~~~~~~~~~
48 For each object (category, conference, contribution, session,
49 etc) in Indico, one can set up three kinds of protection:
50 modification control list, access control setup, and domain control.
53    The modification control list contains all the users or groups that can
54    edit and modify an object. Therefore, people in this list will be
55    the managers for the object and they can access all the pages
56    related to it and the objects under it.
58    Access control setup: by default, an object is inheriting but we can
59    make it public or private and add restrictions as shown in the section
60    `Access Control Policy <#id1>`_.
62    Domain control: one can protect an Indico object to be accessed
63    only by users who are connected from some given IPs (see
64    `Domain Control Policy <#id3>`_).
67 --------------
70 .. _access_control:
72 Access Control Policy
73 ---------------------
76 In Indico, an object can be a category, an event, a session, a contribution,
77 material, files and links. You need to assign a level of protection to
78 all of these events. There are three different kinds of events in Indico:
81 **Public**: Making an object public will make it accessible and visible
82 to anyone. For example, suppose conference A belongs to category A. If
83 the category A is private, but the conference A is public, then only
84 allowed users will be able to access the category A, but everyone can
85 access conference A.
87 |image210|
89 In this graph, only restricted users have access to Category A, but
90 everyone can access Conference A, as it is public.
93 **Restricted**: Making an object private will make it invisible to all
94 users. You will then need to set the users which will have access to it.
95 For example, suppose category B is public and conference B is private,
96 and you allow users 1 and 2 to access the conference. Then everyone will
97 have access to category B, but only users 1 and 2 will be able to see
98 conference B.
100 |image212|
102 In this graph, everyone can access Category B, but only restricted users
103 can access Conference B, as it has been made private.
106 **Inheriting**: Making an object inheriting makes it inherit the access
107 protection of its parent. Changing the protection of the parent will
108 change the protection of the object. For example, suppose conference C
109 belongs to category C. If you make category C private, then conference C
110 will be private; if category C is public, then conference C will be public.
111 Making a category which belongs to the category *Home* inheriting
112 will make the category public by default.
114 Here is a graph that illustrates the inheriting example.
117    |image211|
119 In this graph, we see how Category C transmets its access protection to
120 Conference C (which is included in it), i.e. how Conference C inherits
121 its access protection from its parent category, Category C.
123 By default, all objects in Indico are INHERITING.
126 --------------
128 Domain Control Policy
129 ---------------------
131 If an Indico object (category, event, session, contribution,
132 material, file and link) is PUBLIC, we can restrict the access to
133 users accessing Indico from some given IPs (these IPs could be like
134 127.1 which means that every IP starting like this will be valid).
136 If the Indico object is RESTRICTED, this checking will not be
137 applied.
139 If it is INHERITING, it will have the same access protection as its
140 parent. Its access protection status will therefore change whenever
141 the parent's access protection changes.
143 .. |image208| image:: UserGuidePics/tree.png
144 .. |image209| image:: UserGuidePics/privByInh.png
145 .. |image210| image:: UserGuidePics/privatePublic.png
146 .. |image211| image:: UserGuidePics/inheriting.png
147 .. |image212| image:: UserGuidePics/publicPrivate.png