source: spip-zone/_squelettes_/ressourcotheque/trunk/ressourcotheque_autoriser.php @ 113612

Last change on this file since 113612 was 113612, checked in by maieul@…, 9 months ago

une page profil par auteur, où l'on peut contacter et modifier ses infos perso

File size: 1.9 KB
Line 
1<?php
2if (!defined('_ECRIRE_INC_VERSION')) {
3        return;
4}
5
6function ressourcotheque_autoriser() {
7}
8//Pouvoir modifier son profil
9/**
10 * Autorisation de modifier un auteur
11 *
12 * Attention tout depend de ce qu'on veut modifier. Il faut être au moins
13 * rédacteur, mais on ne peut pas promouvoir (changer le statut) un auteur
14 * avec des droits supérieurs au sien.
15 *
16 * @param  string $faire Action demandée
17 * @param  string $type Type d'objet sur lequel appliquer l'action
18 * @param  int $id Identifiant de l'objet
19 * @param  array $qui Description de l'auteur demandant l'autorisation
20 * @param  array $opt Options de cette autorisation
21 * @return bool          true s'il a le droit, false sinon
22 **/
23function autoriser_auteur_modifier($faire, $type, $id, $qui, $opt) {
24        // Un redacteur, un admin restreint ou un visiteur peut modifier ses propres donnees mais ni son login/email
25        if ($qui['statut'] == '1comite'
26                or $qui['statut'] == '6forum'
27                or (isset($qui['restreint']) and $qui['restreint'])) {
28                if (!empty($opt['webmestre'])) {
29                        return false;
30                } elseif (
31                        !empty($opt['statut'])
32                        or !empty($opt['restreintes'])
33                        or !empty($opt['email'])
34                ) {
35                        return false;
36                } elseif ($id == $qui['id_auteur']) {
37                        return true;
38                } else {
39                        return false;
40                }
41        }
42
43
44        // Un admin complet fait ce qu'il veut
45        // sauf se degrader
46        if ($id == $qui['id_auteur'] && (isset($opt['statut']) and $opt['statut'])) {
47                return false;
48        } elseif (isset($opt['webmestre'])
49                                and $opt['webmestre']
50                                and (defined('_ID_WEBMESTRES')
51                                or !autoriser('webmestre'))) {
52                // et toucher au statut webmestre si il ne l'est pas lui meme
53                // ou si les webmestres sont fixes par constante (securite)
54                return false;
55        } // et modifier un webmestre si il ne l'est pas lui meme
56        elseif (intval($id) and autoriser('webmestre', '', 0, $id) and !autoriser('webmestre')) {
57                return false;
58        } else {
59                return true;
60        }
61}
Note: See TracBrowser for help on using the repository browser.