You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bouquinerie/bouq_autorisations.php

256 lines
8.8 KiB
PHP

<?php
/**
* Définit les autorisations du plugin Bouquinerie
*
* @plugin Bouquinerie
* @copyright 2017
* @author Peetdu
* @licence GNU/GPL
* @package SPIP\Bouquinerie\Autorisations
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Fonction d'appel pour le pipeline
* @pipeline autoriser */
function bouq_autoriser() {
}
// -----------------
// Objet livres
/**
* Autorisation de voir un élément de menu (livres)
*
* @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_livres_menu_dist($faire, $type, $id, $qui, $opt) {
return true;
}
/**
* Autorisation de voir le bouton d'accès rapide de création (livre)
*
* @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_livrecreer_menu_dist($faire, $type, $id, $qui, $opt) {
return autoriser('creer', 'livre', '', $qui, $opt);
}
/**
* Autorisation de créer (livre)
*
* @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_livre_creer_dist($faire, $type, $id, $qui, $opt) {
return ($qui['statut'] == '0minirezo' and !$qui['restreint'] and sql_countsel('spip_rubriques')>0);
}
/**
* Autorisation de voir (livre)
*
* @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_livre_voir_dist($faire, $type, $id, $qui, $opt) {
return true;
}
/**
* Autorisation de modifier (livre)
*
* @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_livre_modifier_dist($faire, $type, $id, $qui, $opt) {
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
}
/**
* Autorisation de supprimer (livre)
*
* @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_livre_supprimer_dist($faire, $type, $id, $qui, $opt) {
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
}
/**
* Autorisation de créer l'élément (livre) 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_creerlivredans_dist($faire, $type, $id, $qui, $opt) {
return ($id and autoriser('voir', 'rubrique', $id) and autoriser('creer', 'livre', $id));
}
/**
* Autorisation de lier/délier l'élément (livres)
*
* @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_associerlivres_dist($faire, $type, $id, $qui, $opt) {
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
}// -----------------
// Objet livres_auteurs
/**
* Autorisation de voir un élément de menu (livresauteurs)
*
* @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_livresauteurs_menu_dist($faire, $type, $id, $qui, $opt) {
return true;
}
/**
* Autorisation de voir le bouton d'accès rapide de création (livresauteur)
*
* @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_livresauteurcreer_menu_dist($faire, $type, $id, $qui, $opt) {
return autoriser('creer', 'livres_auteur', '', $qui, $opt);
}
/**
* Autorisation de créer (livresauteur)
*
* @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_livresauteur_creer_dist($faire, $type, $id, $qui, $opt) {
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
}
/**
* Autorisation de voir (livresauteur)
*
* @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_livresauteur_voir_dist($faire, $type, $id, $qui, $opt) {
return true;
}
/**
* Autorisation de modifier (livresauteur)
*
* @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_livresauteur_modifier_dist($faire, $type, $id, $qui, $opt) {
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
}
/**
* Autorisation de supprimer (livresauteur)
*
* @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_livresauteur_supprimer_dist($faire, $type, $id, $qui, $opt) {
return autoriser('webmestre', '', '', $qui);
}
/**
* Autorisation de lier/délier l'élément (livresauteurs)
*
* @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_associerlivresauteurs_dist($faire, $type, $id, $qui, $opt) {
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
}
/* compatibilité plugin LIM */
if (!function_exists('autoriser_rubrique_creerlivredans') AND test_plugin_actif('lim')) {
function autoriser_rubrique_creerlivredans($faire, $type, $id, $qui, $opt) {
$quelles_rubriques = lire_config('lim_rubriques/livre');
is_null($quelles_rubriques) ? $lim_rub = true : $lim_rub = !in_array($id,$quelles_rubriques);
return
$lim_rub
AND autoriser_rubrique_creerlivredans_dist($faire, $type, $id, $qui, $opt);
}
}