[SPIP] v3.2.1-->v3.2.3
[lhc/web/www.git] / www / plugins-dist / revisions / inc / revisions_autoriser.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13
14 /**
15 * Autorisations du plugin révisions
16 *
17 * @package SPIP\Revisions\Autorisations
18 **/
19
20 if (!defined('_ECRIRE_INC_VERSION')) {
21 return;
22 }
23
24 /**
25 * Fonction du pipeline autoriser. N'a rien à faire.
26 *
27 * @pipeline autoriser
28 */
29 function revisions_autoriser() { }
30
31 /**
32 * Autorisation de voir les revisions ?
33 *
34 * Il faut :
35 * - des revisions définies pour cet objet
36 * - que l'objet existe
37 * - que l'on soit autorisé à voir l'objet
38 *
39 * @param string $faire Action demandée
40 * @param string $type Type d'objet sur lequel appliquer l'action
41 * @param int $id Identifiant de l'objet
42 * @param array $qui Description de l'auteur demandant l'autorisation
43 * @param array $opt Options de cette autorisation
44 * @return bool true s'il a le droit, false sinon
45 */
46 function autoriser_voirrevisions_dist($faire, $type, $id, $qui, $opt) {
47 $table = table_objet_sql($type);
48 $id_table_objet = id_table_objet($type);
49
50 include_spip('inc/revisions');
51 if (!liste_champs_versionnes($table)) {
52 return false;
53 }
54
55 if (!$row = sql_fetsel("*", $table, "$id_table_objet=" . intval($id))) {
56 return false;
57 }
58
59 return
60 autoriser('voir', $type, $id, $qui, $opt);
61 }
62
63
64 /**
65 * Autorisation de voir le menu révisions
66 *
67 * Il faut des révisions activées et présentes.
68 *
69 * @param string $faire Action demandée
70 * @param string $type Type d'objet sur lequel appliquer l'action
71 * @param int $id Identifiant de l'objet
72 * @param array $qui Description de l'auteur demandant l'autorisation
73 * @param array $opt Options de cette autorisation
74 * @return bool true s'il a le droit, false sinon
75 */
76 function autoriser_revisions_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
77 // SI pas de revisions sur un objet quelconque.
78 // ET pas de version... pas de bouton, c'est inutile...
79 include_spip('inc/config');
80 if (!lire_config('objets_versions/') and !sql_countsel('spip_versions')) {
81 return false;
82 }
83
84 return true;
85 }