source: spip-zone/_plugins_/legendes/legendes_autoriser.php @ 41568

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

Les sélecteurs de conf de statuts sont simples et non multiples, on gère les autorisations du genre $quistatut? <= conf

Réparation de l'autorisation de suppression de légende

On n'affiche le bouton de suppression de légende que lorsqu'on a le droit de supprimer une légende

+ petites bidouilles

Ce qui donne une version 0.1.3

  • Property svn:executable set to *
File size: 2.5 KB
Line 
1<?php
2
3/* pour que le pipeline ne rale pas ! */
4function legendes_autoriser(){}
5
6/**
7 * Autorisation d'ajout d'une legende a un document
8 *
9 * @param string $faire
10 * @param string $quoi
11 * @param int $id du document
12 * @param int $qui
13 * @param array $options
14 * @return bool
15 */
16function autoriser_legende_creerdans_dist($faire,$quoi,$id,$qui,$options){
17        if (!$id) return false; // interdit de creer une legende sur un document vide !
18        // autorisation personnalisee par config
19        if(lire_config('legendes/statuts_creerdans'))
20                return  ($qui['statut']<=lire_config('legendes/statuts_creerdans','0minirezo'));
21        // ou autorisation du document associe
22        return autoriser('modifier','document',$id,$qui);
23}
24
25/**
26 * Autorisation de modifier une legende
27 *
28 * @param string $faire
29 * @param string $quoi
30 * @param int $id de la legende
31 * @param int $qui
32 * @param array $options
33 * @return bool
34 */
35function autoriser_legende_modifier_dist($faire,$quoi,$id,$qui,$options){
36        if (!isset($options['id_document']) OR !$id_document=$options['id_document'])
37                $legende = sql_fetsel('*','spip_legendes','id_legende='.intval($id));
38        if (!$legende['id_document']) return false;
39        // autorisation personnalisee par config
40        if (lire_config('legendes/statuts_modifier')){
41                if ($qui['statut'] <= lire_config('legendes/statuts_modifier','0minirezo')){
42                        if (($qui['statut'] != '0minirezo') AND ($qui['id_auteur'] != $legende['id_auteur'])) {
43                                return false;
44                        }
45                return true;
46                }
47        }
48        // ou autorisation du document associe
49        return autoriser('modifier','document',$legende['id_document'],$qui);
50}
51
52
53/**
54 * Autorisation de supprimer une legende
55 *
56 * @param string $faire
57 * @param string $quoi
58 * @param int $id de la legende
59 * @param int $qui
60 * @param array $options
61 * @return bool
62 */
63function autoriser_legende_supprimer_dist($faire,$quoi,$id,$qui,$options){
64        if (!isset($options['id_document']) OR !$id_document=$options['id_document'])
65                $id_document = sql_getfetsel('id_document','spip_legendes','id_legende='.intval($id));
66        // autorisation personnalisee par config
67        if (lire_config('legendes/statuts_supprimer')){
68                if ($qui['statut'] <= lire_config('legendes/statuts_supprimer','0minirezo')){
69                        $legende = sql_getfetsel('id_auteur','spip_legendes','id_legende='.intval($id));
70                        if (($qui['statut'] != '0minirezo') AND ($qui['id_auteur'] != $legende['id_auteur'])) {
71                                return false;
72                        }
73                return true;
74                }
75        }
76        // ou autorisation du document associe
77        return autoriser('modifier','document',$id_document,$qui);
78}
79
80?>
Note: See TracBrowser for help on using the repository browser.