source: spip-zone/_plugins_/relecture/relecture_autorisations.php @ 59986

Last change on this file since 59986 was 59986, checked in by eric@…, 8 years ago

Améliorations du code entre les pipelines, les autorisations et le html.

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1<?php
2/**
3 * Fonction pour le pipeline, n'a rien a effectuer
4 *
5 * @return
6 */
7function relecture_autoriser() {}
8
9
10/**
11 * Autorisation d'ouverture d'une relecture
12 *
13 * @param object $faire
14 * @param object $type
15 * @param object $id
16 * @param object $qui
17 * @param object $opt
18 * @return
19 */
20function autoriser_article_ouvrirrelecture_dist($faire, $type, $id, $qui, $opt) {
21
22        // Conditions :
23        // - l'auteur connecte est un des auteurs de l'article
24        // - l'article est dans l'état "en cours de rédaction"
25        // - l'article n'a pas deja une relecture d'ouverte
26
27        $les_auteurs = lister_objets_lies('auteur', 'article', $id, 'auteurs_liens');
28
29        $from = 'spip_articles';
30        $where = array("id_article=$id");
31        $statut = sql_getfetsel('statut', $from, $where);
32
33        $from = 'spip_relectures';
34        $where = array("id_article=$id", "etat=" . sql_quote('ouverte'));
35        $nb_relecture_ouverte = sql_countsel($from, $where);
36
37        return
38                (in_array($qui['id_auteur'], $les_auteurs)
39                AND ($statut=='prepa')
40                AND ($nb_relecture_ouverte==0));
41}
42
43
44/**
45 * Autorisation de consultations des relectures cloturees d'un article
46 *
47 * @param object $faire
48 * @param object $type
49 * @param object $id
50 * @param object $qui
51 * @param object $opt
52 * @return
53 */
54function autoriser_article_voirrelectures_dist($faire, $type, $id, $qui, $opt) {
55
56        // Conditions :
57        // - pour l'instant tout le monde peut afficher les fiches de relecture clôturées
58
59        return true;
60}
61
62
63/**
64 * Autorisation d'affichage d'une relecture en cours
65 *
66 * @param object $faire
67 * @param object $type
68 * @param object $id
69 * @param object $qui
70 * @param object $opt
71 * @return
72 */
73function autoriser_relecture_voir_dist($faire, $type, $id, $qui, $opt) {
74
75        // Conditions :
76        // - l'auteur connecte est un des auteurs ou des relecteurs de l'article
77
78        $from = 'spip_relectures';
79        $where = array("id_relecture=$id");
80        $infos = sql_fetsel('id_article, relecteurs', $from, $where);
81        $les_relecteurs = unserialize($infos['relecteurs']);
82
83        $les_auteurs = lister_objets_lies('auteur', 'article', $infos['id_article'], 'auteurs_liens');
84
85        return
86                (in_array($qui['id_auteur'], $les_auteurs)
87                OR in_array($qui['id_auteur'], $les_relecteurs));
88
89}
90
91?>
Note: See TracBrowser for help on using the repository browser.