#PHP
[(#INCLURE{fond=fabrique/entetes/php,env,
description=Définit les autorisations du plugin #ENV{paquet/nom},
package=Autorisations})]
/*
* Un fichier d'autorisations permet de regrouper
* les fonctions d'autorisations de votre plugin
*/
/**
* Fonction d'appel pour le pipeline
* @pipeline autoriser */
function [(#PREFIXE)]_autoriser(){}
/* Exemple
function autoriser_[(#PREFIXE)]_configurer_dist($faire, $type, $id, $qui, $opt) {
// type est un objet (la plupart du temps) ou une chose.
// autoriser('configurer', '_[(#PREFIXE)]') => $type = '[(#PREFIXE)]'
// au choix
return autoriser('webmestre', $type, $id, $qui, $opt); // seulement les webmestres
return autoriser('configurer', '', $id, $qui, $opt); // seulement les administrateurs complets
return $qui['statut'] == '0minirezo'; // seulement les administrateurs (même les restreints)
// ...
}
*/
[
(#SET{type,#TYPE|fabrique_type_autorisation})][
(#SET{objet,#OBJET|fabrique_type_autorisation})
]// -----------------
// Objet [(#OBJET)]
[
/**
* Autorisation de voir un élément de menu \(#GET{objet}\)
*
* @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_#GET{objet}_menu_dist($faire, $type, $id, $qui, $opt){
return true;
}(#VAL{menu_edition}|in_any{#VALEUR{boutons}})]
[
/**
* Autorisation de voir le bouton d'accès rapide de création \(#GET{type}\)
*
* @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_#GET{type}creer_menu_dist($faire, $type, $id, $qui, $opt){
return autoriser('creer', ['(#TYPE)'], '', $qui, $opt);
}(#VAL{outils_rapides}|in_any{#VALEUR{boutons}})]
/**
* Autorisation de créer \(#GET{type}\)
*[(#SET{creer,[(#AUTORISATIONS|fabrique_code_autorisation_defaut{objet_creer})]})]
* @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_#GET{type}_creer_dist($faire, $type, $id, $qui, $opt) {[
return \([(#GET{creer})] AND sql_countsel('spip_rubriques')>0\);(#VALEUR|champ_present{id_rubrique}|oui)][
return #GET{creer};(#VALEUR|champ_present{id_rubrique}|non)]
}
/**
* Autorisation de voir \(#GET{type}\)
*
* @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_#GET{type}_voir_dist($faire, $type, $id, $qui, $opt) {
return [(#AUTORISATIONS|fabrique_code_autorisation_defaut{objet_voir})];
}
/**
* Autorisation de modifier \(#GET{type}\)
*
* @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_#GET{type}_modifier_dist($faire, $type, $id, $qui, $opt) {
return [(#AUTORISATIONS|fabrique_code_autorisation_defaut{objet_modifier})];
}
/**
* Autorisation de supprimer \(#GET{type}\)
*
* @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_#GET{type}_supprimer_dist($faire, $type, $id, $qui, $opt) {
return [(#AUTORISATIONS|fabrique_code_autorisation_defaut{objet_supprimer})];
}
/**
* Autorisation de créer l'élément \(#GET{type}\) dans une rubrique
*
* @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_rubrique_creer#GET{type}dans_dist($faire, $type, $id, $qui, $opt) {
return ($id AND autoriser('voir','rubrique', $id) AND autoriser('creer','[(#TYPE)]', $id));
}
/**
* Autorisation de lier/délier l'élément \(#GET{objet}\)
*
* @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_associer#GET{objet}_dist($faire, $type, $id, $qui, $opt) {
return [(#AUTORISATIONS|fabrique_code_autorisation_defaut{associerobjet})];
}
?>