source: spip-zone/_plugins_/encarts/trunk/encarts_autorisations.php @ 100130

Last change on this file since 100130 was 100130, checked in by teddy.spip@…, 5 years ago

Formatage de code.

File size: 6.7 KB
Line 
1<?php
2/**
3 * Définit les autorisations du plugin encarts
4 *
5 * @plugin     encarts
6 * @copyright  2013-2016
7 * @author     Cyril
8 * @licence    GNU/GPL
9 * @package    SPIP\Encarts\Autorisations
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) {
13        return;
14}
15
16
17/*
18 * Un fichier d'autorisations permet de regrouper
19 * les fonctions d'autorisations de votre plugin
20 */
21
22/**
23 * Fonction d'appel pour le pipeline
24 *
25 * @pipeline autoriser
26 */
27function encarts_autoriser() { }
28
29
30/* Exemple
31function autoriser_configurer_encarts_dist($faire, $type, $id, $qui, $opt) {
32        // type est un objet (la plupart du temps) ou une chose.
33        // autoriser('configurer', '_encarts') => $type = 'encarts'
34        // au choix
35        return autoriser('webmestre', $type, $id, $qui, $opt); // seulement les webmestres
36        return autoriser('configurer', '', $id, $qui, $opt); // seulement les administrateurs complets
37        return $qui['statut'] == '0minirezo'; // seulement les administrateurs (même les restreints)
38        // ...
39}
40*/
41
42// -----------------
43// Objet encarts
44
45
46/**
47 * Autorisation de voir un élément de menu (encarts)
48 *
49 * @param  string $faire Action demandée
50 * @param  string $type Type d'objet sur lequel appliquer l'action
51 * @param  int $id Identifiant de l'objet
52 * @param  array $qui Description de l'auteur demandant l'autorisation
53 * @param  array $opt Options de cette autorisation
54 * @return bool          true s'il a le droit, false sinon
55 **/
56function autoriser_encarts_menu_dist($faire, $type, $id, $qui, $opt) {
57        return true;
58}
59
60
61/**
62 * Autorisation de voir le bouton d'accès rapide de création (encart)
63 *
64 * @param  string $faire Action demandée
65 * @param  string $type Type d'objet sur lequel appliquer l'action
66 * @param  int $id Identifiant de l'objet
67 * @param  array $qui Description de l'auteur demandant l'autorisation
68 * @param  array $opt Options de cette autorisation
69 * @return bool          true s'il a le droit, false sinon
70 **/
71function autoriser_encartcreer_menu_dist($faire, $type, $id, $qui, $opt) {
72        return autoriser('creer', 'encart', '', $qui, $opt);
73}
74
75/**
76 * Autorisation de créer (encart)
77 *
78 * @param  string $faire Action demandée
79 * @param  string $type Type d'objet sur lequel appliquer l'action
80 * @param  int $id Identifiant de l'objet
81 * @param  array $qui Description de l'auteur demandant l'autorisation
82 * @param  array $opt Options de cette autorisation
83 * @return bool          true s'il a le droit, false sinon
84 **/
85function autoriser_encart_creer_dist($faire, $type, $id, $qui, $opt) {
86        return in_array($qui['statut'], array('0minirezo', '1comite'));
87}
88
89/**
90 * Autorisation de voir (encart)
91 *
92 * @param  string $faire Action demandée
93 * @param  string $type Type d'objet sur lequel appliquer l'action
94 * @param  int $id Identifiant de l'objet
95 * @param  array $qui Description de l'auteur demandant l'autorisation
96 * @param  array $opt Options de cette autorisation
97 * @return bool          true s'il a le droit, false sinon
98 **/
99function autoriser_encart_voir_dist($faire, $type, $id, $qui, $opt) {
100        return true;
101}
102
103/**
104 * Autorisation de modifier (encart)
105 *
106 * @param  string $faire Action demandée
107 * @param  string $type Type d'objet sur lequel appliquer l'action
108 * @param  int $id Identifiant de l'objet
109 * @param  array $qui Description de l'auteur demandant l'autorisation
110 * @param  array $opt Options de cette autorisation
111 * @return bool          true s'il a le droit, false sinon
112 **/
113function autoriser_encart_modifier_dist($faire, $type, $id, $qui, $opt) {
114        return in_array($qui['statut'], array('0minirezo', '1comite'));
115}
116
117/**
118 * Autorisation de supprimer (encart)
119 *
120 * @param  string $faire Action demandée
121 * @param  string $type Type d'objet sur lequel appliquer l'action
122 * @param  int $id Identifiant de l'objet
123 * @param  array $qui Description de l'auteur demandant l'autorisation
124 * @param  array $opt Options de cette autorisation
125 * @return bool          true s'il a le droit, false sinon
126 **/
127function autoriser_encart_supprimer_dist($faire, $type, $id, $qui, $opt) {
128        return $qui['statut'] == '0minirezo' AND !$qui['restreint'];
129}
130
131/**
132 * Autorisation à associer un encart à un objet donné.
133 *
134 * Il faut pouvoir modifier l'objet
135 * ou être admin complet
136 *
137 * @example
138 *     ```
139 *     #AUTORISER{associer,encart,#ID_ENCART,'',#ARRAY{objet,#OBJET,id_objet,#ID_OBJET}}
140 *     ```
141 *
142 * @param  string $faire Action demandée
143 * @param  string $type Type d'objet auquel on veut associer un encart
144 * @param  int $id Identifiant de l'objet auquel on veut associer un encart
145 * @param  array $qui Description de l'auteur demandant l'autorisation
146 * @param  array $opts Options de cette autorisation
147 *                       Doit contenir les clés `objet` et `id_objet`
148 *                       pour rensigner le type et l'identifiant de l'objet
149 * @return bool          true s'il a le droit, false sinon
150 **/
151function autoriser_encart_associer_dist($faire, $type, $id, $qui, $opts) {
152
153        $autoriser = (
154                ($qui['statut'] == '0minirezo' AND !$qui['restreint'])
155                OR (autoriser('modifier', $opts['objet'], $opts['id_objet'], $qui))
156        ) ? true : false;
157
158        return $autoriser;
159}
160
161/**
162 * Autorisation à dissocier un encart d'un objet donné.
163 *
164 * Il faut être autorisé à associer un encart à l'objet,
165 * et qu'il ne soit pas inséré dans le texte.
166 *
167 * @example
168 *     ```
169 *     #AUTORISER{dissocier,encart,#ID_ENCART,'',#ARRAY{objet,#OBJET,id_objet,#ID_OBJET}}
170 *     ```
171 *
172 * @param  string $faire Action demandée
173 * @param  string $type Type d'objet sur lequel appliquer l'action
174 * @param  int $id Identifiant de l'objet
175 * @param  array $qui Description de l'auteur demandant l'autorisation
176 * @param  array $opts Options de cette autorisation
177 *                       Doit contenir les clés `objet` et `id_objet`
178 *                       pour renseigner le type et l'identifiant de l'objet
179 * @return bool          true s'il a le droit, false sinon
180 */
181function autoriser_encart_dissocier_dist($faire, $type, $id, $qui, $opts) {
182
183        $autoriser = (
184                autoriser('associer', 'encart', $id, $qui, $opts)
185                AND (sql_getfetsel('vu', "spip_encarts_liens", "id_encart=" . intval($id) . " AND objet=" . sql_quote($opts['objet']) . " AND id_objet=" . intval($opts['id_objet'])) == 'non')
186        ) ? true : false;
187
188        return $autoriser;
189}
190
191
192/**
193 * Autorisation de lier/délier l'élément (encarts)
194 *
195 * @param  string $faire Action demandée
196 * @param  string $type Type d'objet sur lequel appliquer l'action
197 * @param  int $id Identifiant de l'objet
198 * @param  array $qui Description de l'auteur demandant l'autorisation
199 * @param  array $opt Options de cette autorisation
200 * @return bool          true s'il a le droit, false sinon
201 **/
202function autoriser_associerencarts_dist($faire, $type, $id, $qui, $opt) {
203        return $qui['statut'] == '0minirezo' AND !$qui['restreint'];
204}
205
Note: See TracBrowser for help on using the repository browser.