source: spip-zone/_plugins_/pages/trunk/pages_autorisations.php @ 113433

Last change on this file since 113433 was 113433, checked in by real3t@…, 4 months ago

Il faut pouvoir créer une page unique, même dans un site qui n'a aucune rubrique (Olivier)

  • Property svn:eol-style set to native
File size: 4.8 KB
Line 
1<?php
2/**
3 * Fonction pour le pipeline, n'a rien a effectuer
4 *
5 * @return
6 */
7function pages_autoriser() {
8}
9
10
11/* ----------------------- AUTORISATIONS DE L'OBJET PAGE UNIQUE ----------------------- */
12
13/**
14 * Autorisation de créer un page unique.
15 *
16 * Cette page unique peut être créée soit à partir de rien
17 * soit en convertissant un article existant.
18 * Par défaut seuls les administrateurs complets sont autorisés.
19 *
20 * @param object $faire
21 * @param object $type
22 * @param object $id
23 * @param object $qui
24 * @param object $opt
25 * @return
26 */
27function autoriser_page_creer_dist($faire, $type, $id, $qui, $opt) {
28
29        // Conditions :
30        // - l'auteur connecté est un administrateur complet
31        $autoriser = pages_autorisation_defaut_dist($qui);
32
33        return $autoriser;
34}
35
36/**
37 * Autorisation de modifier une page unique existante.
38 *
39 * Cette page peut être modifiée soit au travers du formulaire d'édition
40 * soit en convertissant une page en article éditorial.
41 * Par défaut seuls les administrateurs complets sont autorisés.
42 *
43 * @param object $faire
44 * @param object $type
45 * @param object $id
46 * @param object $qui
47 * @param object $opt
48 * @return
49 */
50function autoriser_page_modifier_dist($faire, $type, $id, $qui, $opt) {
51
52        $autoriser = false;
53
54        // Conditions :
55        // - l'auteur connecté est un administrateur complet
56        if ($id_article = intval($id)) {
57                $autoriser = pages_autorisation_defaut_dist($qui);
58        }
59
60        return $autoriser;
61}
62
63
64/**
65 * Autorisation d'afficher une page unique.
66 *
67 * Par défaut seuls les administrateurs complets sont autorisés.
68 *
69 * @param object $faire
70 * @param object $type
71 * @param object $id
72 * @param object $qui
73 * @param object $opt
74 * @return
75 */
76function autoriser_page_voir_dist($faire, $type, $id, $qui, $opt) {
77
78        $autoriser = false;
79
80        // Conditions :
81        // - l'auteur connecté est un administrateur complet
82        if ($id_article = intval($id)) {
83                $autoriser = pages_autorisation_defaut_dist($qui);
84        }
85
86        return $autoriser;
87}
88
89
90/**
91 * Autorisation d'afficher la liste des pages uniques.
92 *
93 * Par défaut seuls les administrateurs complets sont autorisés.
94 *
95 * @param object $faire
96 * @param object $type
97 * @param object $id
98 * @param object $qui
99 * @param object $opt
100 * @return
101 */
102function autoriser_pages_voir_dist($faire, $type, $id, $qui, $opt) {
103
104        // Conditions :
105        // - l'auteur connecté est un administrateur complet
106        $autoriser = pages_autorisation_defaut_dist($qui);
107
108        return $autoriser;
109}
110
111
112/**
113 * Autorisation d'accéder à la liste des pages uniques.
114 *
115 * Cette autorisation coîncide avec l'autorisation pages_voir.
116 *
117 * @param object $faire
118 * @param object $type
119 * @param object $id
120 * @param object $qui
121 * @param object $opt
122 * @return
123 */
124function autoriser_pages_menu_dist($faire, $type, $id, $qui, $opt) {
125
126        // Conditions :
127        // - l'auteur connecté doit posséder l'autorisation pages_voir
128        $autoriser = autoriser('voir', '_pages', $id, $qui, $opt);
129
130        return $autoriser;
131}
132
133/**
134 * Autorisation d'afficher le bouton créer une page unique inclus
135 * dans la barre des outils rapides .
136 *
137 * Cette autorisation coîncide avec l'autorisation page_creer.
138 *
139 * @param object $faire
140 * @param object $type
141 * @param object $id
142 * @param object $qui
143 * @param object $opt
144 *
145*@return
146 */
147function autoriser_pagecreer_menu_dist($faire, $type, $id, $qui, $opt) {
148
149        // Conditions :
150        // - l'auteur connecté est un administrateur complet
151        $autoriser = autoriser('creer', 'page', $id, $qui, $opt);
152
153        return $autoriser;
154}
155
156/**
157 * Autorisation d'afficher le bouton "convertir en page unique" et "convertir en article"
158 *
159 * Par défaut seuls les administrateurs complets sont autorisés.
160 *
161 * @param object $faire
162 * @param object $type
163 * @param object $id
164 * @param object $qui
165 * @param object $opt
166 *
167*@return
168 */
169function autoriser_page_convertir_dist($faire, $type, $id, $qui, $opt) {
170
171        // Conditions :
172        // - l'auteur connecté est un administrateur complet
173        $autoriser = pages_autorisation_defaut_dist($qui);
174
175        return $autoriser;
176}
177
178
179function pages_autorisation_defaut_dist($qui) {
180        return (($qui['statut'] == '0minirezo')
181                        and !$qui['restreint']);
182}
183
184/**
185 * Autorisation de créer un article dans une rubrique $id
186 *
187 * Il faut pouvoir voir la rubrique et pouvoir créer un article…
188 * y compris tant qu'il n'y a pas de rubrique (pour une page unique)
189 *
190 * @param  string $faire Action demandée
191 * @param  string $type Type d'objet sur lequel appliquer l'action
192 * @param  int $id Identifiant de l'objet
193 * @param  array $qui Description de l'auteur demandant l'autorisation
194 * @param  array $opt Options de cette autorisation
195 * @return bool          true s'il a le droit, false sinon
196 **/
197function autoriser_rubrique_creerarticledans($faire, $type, $id, $qui, $opt) {
198        return
199                (($id == -1) and pages_autorisation_defaut_dist($qui))
200                OR ($id
201                and autoriser('voir', 'rubrique', $id)
202                and autoriser('creer', 'article'));
203}
204
Note: See TracBrowser for help on using the repository browser.