libreavous/libreavous_autorisations.php
2021-10-05 11:29:09 +02:00

143 lines
4.3 KiB
PHP

<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Fonction d'appel pour le pipeline
*
* @pipeline autoriser
*/
function libreavous_autoriser() {
}
/* Exemple
function autoriser_chapitre_configurer_dist($faire, $type, $id, $qui, $opt) {
// type est un objet (la plupart du temps) ou une chose.
// autoriser('configurer', '_chapitre') => $type = 'chapitre'
// 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)
// ...
}
*/
// restreindre les champs 'array(...)' sur les articles qui portent la composition 'emission'
restreindre_extras('article', array(
'podcast_sommaire',
'podcast_code',
'podcast_duree',
'podcast_mp3',
'podcast_ogg',
'podcast_transcription',
'podcast_personnes',
'podcast_references',
'podcast_galeriephotos',
'podcast_musique',
'drupal_guid',
'drupal_pubdate'
'description_rss'
), 'emission', 'composition');
restreindre_extras('article', array(
'chronique'
), 'chronique', 'composition');
// -----------------
// Objet chapitres
/**
* Autorisation de voir (chapitres)
*
* @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_chapitres_voir_dist($faire, $type, $id, $qui, $opt) {
return true;
}
/**
* Autorisation de voir (chapitre)
*
* @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_chapitre_voir_dist($faire, $type, $id, $qui, $opt) {
return true;
}
/**
* Autorisation de créer (chapitre)
*
* @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_chapitre_creer_dist($faire, $type, $id, $qui, $opt) {
return in_array($qui['statut'], array('0minirezo', '1comite'));
}
/**
* Autorisation de modifier (chapitre)
*
* @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_chapitre_modifier_dist($faire, $type, $id, $qui, $opt) {
return in_array($qui['statut'], array('0minirezo', '1comite'));
}
/**
* Autorisation de supprimer (chapitre)
*
* @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_chapitre_supprimer_dist($faire, $type, $id, $qui, $opt) {
return in_array($qui['statut'], array('0minirezo', '1comite'));
}
/**
* Autorisation de créer l'élément (chapitre) dans un articles
*
* @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_article_creerchapitredans_dist($faire, $type, $id, $qui, $opt) {
return ($id and autoriser('voir', 'articles', $id) and autoriser('creer', 'chapitre'));
}