source: spip-zone/_core_/plugins/breves/breves_autoriser.php

Last change on this file was 113294, checked in by spip.franck@…, 11 months ago

Il parait que le futur c'est maintenant :-D

File size: 4.7 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2019                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13/**
14 * Déclarations d'autorisations
15 *
16 * @package SPIP\Breves\Autorisations
17 **/
18if (!defined('_ECRIRE_INC_VERSION')) {
19        return;
20}
21
22/**
23 * Fonction du pipeline autoriser. N'a rien à faire
24 *
25 * @pipeline autoriser
26 */
27function breves_autoriser() {
28}
29
30/**
31 * Autorisation de voir la page breves
32 *
33 * Toujours OK, si les brèves sont activées
34 *
35 * @param  string $faire Action demandée
36 * @param  string $type Type d'objet sur lequel appliquer l'action
37 * @param  int $id Identifiant de l'objet
38 * @param  array $qui Description de l'auteur demandant l'autorisation
39 * @param  array $opt Options de cette autorisation
40 * @return bool          true s'il a le droit, false sinon
41 **/
42function autoriser_breves_voir_dist($faire, $type, $id, $qui, $opt) {
43        return ($GLOBALS['meta']['activer_breves'] != 'non');
44}
45
46/**
47 * Autoriser les brèves dans le menu de navigation
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_breves_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
57        return autoriser('voir', '_breves');
58}
59
60/**
61 * Autoriser la création de brèves dans le menu de navigation
62 *
63 * @param  string $faire Action demandée
64 * @param  string $type Type d'objet sur lequel appliquer l'action
65 * @param  int $id Identifiant de l'objet
66 * @param  array $qui Description de l'auteur demandant l'autorisation
67 * @param  array $opt Options de cette autorisation
68 * @return bool          true s'il a le droit, false sinon
69 */
70function autoriser_brevecreer_menu_dist($faire, $type, $id, $qui, $opt) {
71        return ($GLOBALS['meta']['activer_breves'] != 'non')
72        and verifier_table_non_vide();
73}
74
75/**
76 * Autorisation de créer une brève
77 *
78 * Il faut que les brèves soient activées qu'une rubrique existe
79 *
80 * @param  string $faire Action demandée
81 * @param  string $type Type d'objet sur lequel appliquer l'action
82 * @param  int $id Identifiant de l'objet
83 * @param  array $qui Description de l'auteur demandant l'autorisation
84 * @param  array $opt Options de cette autorisation
85 * @return bool          true s'il a le droit, false sinon
86 **/
87function autoriser_breve_creer_dist($faire, $type, $id, $qui, $opt) {
88        return
89                ($GLOBALS['meta']['activer_breves'] != 'non')
90                and (sql_countsel('spip_rubriques') > 0);
91}
92
93/**
94 * Autoriser à créer une brève dans la rubrique $id
95 *
96 * @param  string $faire Action demandée
97 * @param  string $type Type d'objet sur lequel appliquer l'action
98 * @param  int $id Identifiant de l'objet
99 * @param  array $qui Description de l'auteur demandant l'autorisation
100 * @param  array $opt Options de cette autorisation
101 * @return bool          true s'il a le droit, false sinon
102 */
103function autoriser_rubrique_creerbrevedans_dist($faire, $type, $id, $qui, $opt) {
104        $r = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id));
105
106        return
107                $id
108                and ($r['id_parent'] == 0)
109                and ($GLOBALS['meta']['activer_breves'] != 'non')
110                and autoriser('voir', 'rubrique', $id);
111}
112
113
114/**
115 * Autoriser à modifier la brève $id
116 *
117 * - admins & redac si la brève n'est pas publiée
118 * - admins de rubrique parente si publiée
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_breve_modifier_dist($faire, $type, $id, $qui, $opt) {
128        $r = sql_fetsel('id_rubrique,statut', 'spip_breves', 'id_breve=' . intval($id));
129
130        return
131                $r and (
132                ($r['statut'] == 'publie' or (isset($opt['statut']) and $opt['statut'] == 'publie'))
133                        ? autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
134                        : in_array($qui['statut'], array('0minirezo', '1comite'))
135                );
136}
Note: See TracBrowser for help on using the repository browser.