source: spip-zone/_plugins_/projets/branches/v0/inc/projet_autorisations.php @ 78524

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

Suite à r78521, il ne faut oublier tout ce qui va de paire…

  • Property svn:eol-style set to native
File size: 3.7 KB
Line 
1<?php
2/**
3 * Fonction pour le pipeline, n'a rien a effectuer
4 *
5 * @return
6 */
7function projets_autoriser(){}
8
9/**
10 * Autorisation de creation d'un projet
11 *
12 * @param object $faire
13 * @param object $type
14 * @param object $id
15 * @param object $qui
16 * @param object $opt
17 * @return
18 */
19function autoriser_projets_creer_dist($faire, $type, $id, $qui, $opt){
20        $autorise = false;
21        $type = lire_config('projets/autorisations/creer_type', 'webmestre');
22        switch($type) {
23                case 'webmestre':
24                        // Webmestres uniquement
25                        $autorise = in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES));
26                        break;
27                case 'par_statut':
28                        // Autorisation par statut
29                        $autorise = in_array($qui['statut'], lire_config('projets/autorisations/creer_statuts',array()));
30                        break;
31                case 'par_auteur':
32                        // Autorisation par id d'auteurs
33                        $autorise = in_array($qui['id_auteur'], lire_config('projets/autorisations/creer_auteurs',array()));
34                        break;
35        }
36        return $autorise;
37}
38
39/**
40 * Autorisation de modification d'un projet
41 *
42 * @param object $faire
43 * @param object $type
44 * @param object $id
45 * @param object $qui
46 * @param object $opt
47 * @return
48 */
49function autoriser_projets_modifier_dist($faire, $type, $id, $qui, $opt){
50        $autorise = false;
51
52        if(autoriser_projets_creer_dist($faire, $type, $id, $qui, $opt)){
53                return autoriser_projets_creer_dist($faire, $type, $id, $qui, $opt);
54        }
55        else{
56                $type = lire_config('projets/autorisations/modifier_type', 'webmestre');
57                switch($type) {
58                        case 'webmestre':
59                                // Webmestres uniquement
60                                $autorise = in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES));
61                                break;
62                        case 'par_statut':
63                                // Autorisation par statut
64                                $autorise = in_array($qui['statut'], lire_config('projets/autorisations/modifier_statuts',array()));
65                                break;
66                        case 'par_auteur':
67                                // Autorisation par id d'auteurs
68                                $autorise = in_array($qui['id_auteur'], lire_config('projets/autorisations/modifier_auteurs',array()));
69                                break;
70                }
71        }
72
73        return $autorise;
74}
75
76/**
77 * Autorisation de notification d'evenements d'un projet
78 *
79 * @param object $faire
80 * @param object $type
81 * @param object $id
82 * @param object $qui
83 * @param object $opt
84 * @return
85 */
86function autoriser_projets_voir_dist($faire, $type, $id, $qui, $opt){
87        $autorise = false;
88
89        // Eviter toute erreur de configuration
90
91        // Si on peut creer, on peut voir
92        if(autoriser_projets_creer_dist($faire, $type, $id, $qui, $opt)){
93                return autoriser_projets_creer_dist($faire, $type, $id, $qui, $opt);
94        }
95        // Si on peut modifier, on peut voir également
96        else if(autoriser_projets_modifier_dist($faire, $type, $id, $qui, $opt)){
97                return autoriser_projets_creer_dist($faire, $type, $id, $qui, $opt);
98        }
99        else{
100                $type = lire_config('projets/autorisations/creer_type', 'webmestre');
101                switch($type) {
102                        case 'webmestre':
103                                // Webmestres uniquement
104                                $autorise = in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES));
105                                break;
106                        case 'par_statut':
107                                // Autorisation par statut
108                                $autorise = in_array($qui['statut'], lire_config('projets/autorisations/voir_statuts',array()));
109                                break;
110                        case 'par_auteur':
111                                // Autorisation par id d'auteurs
112                                $autorise = in_array($qui['id_auteur'], lire_config('projets/autorisations/voir_auteurs',array()));
113                                break;
114                }
115        }
116        return $autorise;
117}
118
119/**
120 * Autorisation de notification d'evenements d'un projet
121 *
122 * @param object $faire
123 * @param object $type
124 * @param object $id
125 * @param object $qui
126 * @param object $opt
127 * @return
128 */
129function autoriser_projets_notifier_dist($faire, $type, $id, $qui, $opt){
130        $autorise = false;
131
132        // On ne pourra de toute manière être notifié que losque l'on pourra voir le projet
133        if(autoriser_projets_voir_dist($faire, $type, $id, $qui, $opt)){
134
135        }
136
137
138        return $autorise;
139}
140?>
Note: See TracBrowser for help on using the repository browser.