source: spip-zone/_plugins_/_dev_/mots_techniques/mots_techniques_autorisations.php @ 23399

Last change on this file since 23399 was 23399, checked in by marcimat@…, 11 years ago

Renommons correctement les choses

File size: 3.1 KB
Line 
1<?php
2
3// -> dans inc/autoriser.php
4// -----------------------------
5//
6// Recapitulons nos autorisations
7//
8// - pour les mots d'un groupe
9// * mot-voir => voirmots
10// * mot-creer => creermots
11// * mot-modifier => modifiermots
12// * mot-lier => liermots
13//
14// - pour un groupe
15// * voir
16// * creer
17// * modifier
18//
19function autoriser_groupemots($faire, $type, $id, $qui, $opt) {
20
21        static $auth = array();
22        // deja calcule ? retour.
23        if (isset($auth[$faire][$id][$auteur = $qui['id_auteur']][$sopt = serialize($opt)])) {
24                return $auth[$faire][$id][$auteur][$sopt];
25        }
26
27        if (!isset($auth[$faire]))                                      $auth[$faire] = array();
28        if (!isset($auth[$faire][$auteur]))             $auth[$faire][$auteur] = array();
29        if (!isset($auth[$faire][$auteur][$sopt]))      $auth[$faire][$auteur][$sopt] = array();
30
31        // si pas de groupe, admin uniquement :
32        if (!$r = sql_fetsel("*", "spip_groupes_mots", "id_groupe=".sql_quote($id))){
33                $autoriser = ($qui['statut'] == '0minirezo' AND !$qui['restreint']);
34        }
35       
36        if ($faire == 'voir' 
37                OR $faire == 'voirmots') {
38                        $autoriser = true;
39        }       
40        if ($faire == 'creer' 
41                OR $faire == 'modifier') {
42                        $autoriser = ($qui['statut'] == '0minirezo' AND !$qui['restreint']);
43        }
44        if ($faire == 'liermots'               
45                OR $faire == 'creermots' 
46                OR $faire == 'modifiermots'){
47                // chercher le champ 'minirezo', 'comite' ou 'forum'
48                if ($r)
49                        $autoriser = ($r[substr($qui['statut'],1)]=='oui');
50        }
51               
52        $pipe = pipeline('autoriser_groupemots',
53                        array('args' => array(
54                                'faire'=>$faire,
55                                'type'=>$type,
56                                'id'=>$id,
57                                'qui'=>$qui,
58                                'opt'=>$opt,
59                                'technique' => $r['technique'],
60                                'row' => $r
61                                ),
62                        'autoriser' => $autoriser
63                        )
64                );     
65        return $auth[$faire][$id][$auteur][$sopt] = $pipe['autoriser'];
66}
67
68
69// Autoriser a modifier un mot $id ; note : si on passe l'id_groupe
70// dans les options, on gagne du CPU (c'est ce que fait l'espace prive)
71//
72// CHGMT : 'modifier' > 'modifiermots'
73function autoriser_mot_modifier($faire, $type, $id, $qui, $opt) {
74        // id groupe mot present
75        if (isset($opt['id_groupe']) AND $opt['id_groupe']){
76                return autoriser('modifiermots', 'groupemots', $opt['id_groupe'], $qui, $opt);
77        }
78        // id mot present, on retrouve le groupe
79        if ($id && ($t = sql_getfetsel("id_groupe", "spip_mots", "id_mot=".sql_quote($id)))){
80                return autoriser('modifiermots', 'groupemots', $t, $qui, $opt);
81        }
82        // sinon defaut
83        return autoriser('modifiermots', 'groupemots');
84}
85
86// Autoriser a voir un mot $id ; note : si on passe l'id_groupe
87// dans les options, on gagne du CPU (c'est ce que fait l'espace prive)
88function autoriser_mot_voir($faire, $type, $id, $qui, $opt) {
89        // id groupe mot present
90        if (isset($opt['id_groupe']) AND $opt['id_groupe']){
91                return autoriser('voirmots', 'groupemots', $opt['id_groupe'], $qui, $opt);
92        }
93        // id mot present, on retrouve le groupe
94        if ($id && ($t = sql_getfetsel("id_groupe", "spip_mots", "id_mot=".sql_quote($id)))){
95                return autoriser('voirmots', 'groupemots', $t, $qui, $opt);
96        }
97        // sinon defaut
98        return autoriser('voirmots', 'groupemots');
99}
100
101?>
Note: See TracBrowser for help on using the repository browser.