You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
178 lines
6.4 KiB
178 lines
6.4 KiB
<?php |
|
|
|
/***************************************************************************\ |
|
* SPIP, Système de publication pour l'internet * |
|
* * |
|
* Copyright © avec tendresse depuis 2001 * |
|
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James * |
|
* * |
|
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. * |
|
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. * |
|
\***************************************************************************/ |
|
|
|
/** |
|
* Définit les autorisations du plugin Pétitions |
|
* |
|
* @package SPIP\Petitions\Autorisations |
|
**/ |
|
if (!defined('_ECRIRE_INC_VERSION')) { |
|
return; |
|
} |
|
|
|
/** |
|
* Fonction d'appel pour le pipeline |
|
* |
|
* @pipeline autoriser |
|
*/ |
|
function petitions_autoriser() { } |
|
|
|
|
|
/** |
|
* Autorisation de modérer une pétition |
|
* |
|
* Il faut que les pétitions soient activées globalement ou qu'il y en ait au moins une |
|
* et avoir droit de modifier l'objet qui reçoit la pétition |
|
* |
|
* @param string $faire Action demandée |
|
* @param string $type Type d'objet sur lequel appliquer l'action |
|
* @param int $id Identifiant de l'objet |
|
* @param array $qui Description de l'auteur demandant l'autorisation |
|
* @param array $opt Options de cette autorisation |
|
* @return bool true s'il a le droit, false sinon |
|
**/ |
|
function autoriser_modererpetition_dist($faire, $type, $id, $qui, $opt) { |
|
include_spip('inc/config'); |
|
$activer_petitions = (lire_config('petitions/activer_petitions') === 'oui'); |
|
$nb_petitions = sql_countsel('spip_petitions', 'id_article=' . intval($id)); |
|
$autoriser = |
|
($activer_petitions or $nb_petitions > 0) |
|
and autoriser('modifier', $type, $id, $qui, $opt); |
|
return $autoriser; |
|
} |
|
|
|
/** |
|
* Autorisation de publier une signature |
|
* |
|
* Il faut avoir le droit de modérer la petition de l'article en question |
|
* |
|
* @param string $faire Action demandée |
|
* @param string $type Type d'objet sur lequel appliquer l'action |
|
* @param int $id Identifiant de l'objet |
|
* @param array $qui Description de l'auteur demandant l'autorisation |
|
* @param array $opt Options de cette autorisation |
|
* @return bool true s'il a le droit, false sinon |
|
*/ |
|
function autoriser_signature_publier($faire, $type, $id, $qui, $opt) { |
|
$id_article = sql_getfetsel('P.id_article', |
|
'spip_signatures AS S JOIN spip_petitions AS P ON P.id_petition=S.id_petition', 'S.id_signature=' . intval($id)); |
|
|
|
return |
|
autoriser('modererpetition', 'article', $id_article, $qui, $opt); |
|
} |
|
|
|
/** |
|
* Autorisation de supprimer une signature |
|
* |
|
* Il faut avoir le droit de modérer la petition de l'article en question |
|
* |
|
* @param string $faire Action demandée |
|
* @param string $type Type d'objet sur lequel appliquer l'action |
|
* @param int $id Identifiant de l'objet |
|
* @param array $qui Description de l'auteur demandant l'autorisation |
|
* @param array $opt Options de cette autorisation |
|
* @return bool true s'il a le droit, false sinon |
|
*/ |
|
function autoriser_signature_supprimer($faire, $type, $id, $qui, $opt) { |
|
$id_article = sql_getfetsel('P.id_article', |
|
'spip_signatures AS S JOIN spip_petitions AS P ON P.id_petition=S.id_petition', 'S.id_signature=' . intval($id)); |
|
|
|
return |
|
autoriser('modererpetition', 'article', $id_article, $qui, $opt); |
|
} |
|
|
|
/** |
|
* Autorisation de relancer une signature |
|
* |
|
* Toute personne idenfiée peut relancer une signature non publiée |
|
* |
|
* @param string $faire Action demandée |
|
* @param string $type Type d'objet sur lequel appliquer l'action |
|
* @param int $id Identifiant de l'objet |
|
* @param array $qui Description de l'auteur demandant l'autorisation |
|
* @param array $opt Options de cette autorisation |
|
* @return bool true s'il a le droit, false sinon |
|
*/ |
|
function autoriser_signature_relancer($faire, $type, $id, $qui, $opt) { |
|
$statut = sql_getfetsel('statut', 'spip_signatures', 'id_signature=' . intval($id)); |
|
|
|
return ($qui['id_auteur'] && !in_array($statut, array('poubelle', 'publie'))); |
|
} |
|
|
|
/** |
|
* Autorisation de modifier une signature |
|
* |
|
* Jamais |
|
* |
|
* @param string $faire Action demandée |
|
* @param string $type Type d'objet sur lequel appliquer l'action |
|
* @param int $id Identifiant de l'objet |
|
* @param array $qui Description de l'auteur demandant l'autorisation |
|
* @param array $opt Options de cette autorisation |
|
* @return bool true s'il a le droit, false sinon |
|
*/ |
|
function autoriser_signature_modifier_dist($faire, $type, $id, $qui, $opt) { |
|
return |
|
false; |
|
} |
|
|
|
/** |
|
* Autorisation de voir la page controler_petition |
|
* |
|
* Il faut que les pétitions soient activées globalement |
|
* et qu'il y ait au moins une signature |
|
* |
|
* @param string $faire Action demandée |
|
* @param string $type Type d'objet sur lequel appliquer l'action |
|
* @param int $id Identifiant de l'objet |
|
* @param array $qui Description de l'auteur demandant l'autorisation |
|
* @param array $opt Options de cette autorisation |
|
* @return bool true s'il a le droit, false sinon |
|
**/ |
|
function autoriser_controlerpetition_voir_dist($faire, $type, $id, $qui, $opt) { |
|
include_spip('inc/config'); |
|
$autoriser = |
|
(lire_config('petitions/activer_petitions') === 'oui') |
|
and sql_countsel('spip_signatures') > 0; |
|
return $autoriser; |
|
} |
|
|
|
/** |
|
* Autorisation de voir le menu de gestion des signatures |
|
* |
|
* @uses autoriser_controlerpetition_voir_dist() |
|
* @param string $faire Action demandée |
|
* @param string $type Type d'objet sur lequel appliquer l'action |
|
* @param int $id Identifiant de l'objet |
|
* @param array $qui Description de l'auteur demandant l'autorisation |
|
* @param array $opt Options de cette autorisation |
|
* @return bool true s'il a le droit, false sinon |
|
*/ |
|
function autoriser_controlerpetition_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { |
|
return autoriser('voir', '_controlerpetition', $id, $qui, $opt); |
|
} |
|
|
|
/** |
|
* Autorisation d'auto-association de documents sur des signatures |
|
* |
|
* Jamais |
|
* |
|
* @param string $faire Action demandée |
|
* @param string $type Type d'objet sur lequel appliquer l'action |
|
* @param int $id Identifiant de l'objet |
|
* @param array $qui Description de l'auteur demandant l'autorisation |
|
* @param array $opt Options de cette autorisation |
|
* @return bool true s'il a le droit, false sinon |
|
*/ |
|
function autoriser_signature_autoassocierdocument_dist($faire, $type, $id, $qui, $opt) { |
|
return false; |
|
}
|
|
|