From bfadf6e1a6d37f198c10183929f19d72e7238722 Mon Sep 17 00:00:00 2001 From: tofulm Date: Mon, 10 Feb 2020 13:17:43 +0100 Subject: [PATCH] ajoute la doc --- README.md | 88 ++++++++++++++++++++++++++ doc/formulaire_autorisations.png | Bin 0 -> 39750 bytes formulaires/editer_autorisations.html | 2 +- 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 doc/formulaire_autorisations.png diff --git a/README.md b/README.md index 5aae5bc..25f5d01 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,90 @@ # Autorisations étendues +Plugins pour développeur qui permet d'étendre les autorisations de SPIP. +Il est compatible avec le plugin chosen + + +## Configuration +1. il a besoin d'une constante listant les autorisations à ajouter (dans xxx_options.php) +```php +define('_AUTH_MODELE', [ + 'produit' => [ + 'label' => 'Produit / Stage', + 'type' => 'produit', + 'faire' => ['voir','creer', 'modifier', 'supprimer'] + ], + 'guide' => [ + 'label' => 'Guide', + 'type' => 'guide', + 'faire' => ['voir', 'modifier'] + ], + 'client' => [ + 'label' => 'Client', + 'type' => 'client', + 'faire' => ['voir', 'modifier'] + ] +]); +``` + +2. Appeler le formulaire d'édition des autorisations. ex : +```html +[(#AUTORISER{modifier,autmod}|sinon_interdire_acces)] +
+
+

Gestion des autorisations

+
+
+ [(#FORMULAIRE_EDITER_AUTORISATIONS{#ENV{id_auteur}})] +
+
+``` +![formulaire_autorisation](./doc/formulaire_autorisations.png "Formulaire_d'autorisations") + +3. Si un auteur un dans son champ **pgp = boss** => il aura tous les droits (un logo s'affiche devant son nom) + +4. On peut ajouter des criteres de sélection des auteurs qui s'afficheront dans ce formulaire via le pipeline formulaire_charger. ex : +```php +function prefix_formulaire_charger($flux){ + if ($flux['args']['form'] === 'editer_autorisations'){ + $flux['data']['pgp'] = ["guide","client"]; + $flux['data']['webmestre'] = "non"; + } + return $flux; +} +``` +5. Ces autorisations sont stockées dans un json dans un champ autorisations de la table spip_auteurs + +## Utilisation des autorisations +1. Dans le fichier prefix_autorisations.php ajouter en haut du fichier : +```php +include_spip('inc/tester_autorisation'); +``` +2. Puis ajouter les fonctions d'autorisation, par exemple, pour le type guide, nous avons : voir et modifier +```php +function autoriser_guide_voir_dist($faire, $type, $id, $qui, $opt) { + return tester_autorisation($faire, $type, $qui); +} +function autoriser_guide_modifier_dist($faire, $type, $id, $qui, $opt) { + return tester_autorisation($faire, $type, $qui); +} +// comme nos guides sont des auteurs, pour utiliser les crayons, nous surchargeons la fonction de SPIP +function autoriser_auteur_modifier($faire, $type, $id, $qui, $opt) { + return tester_autorisation($faire, "guide", $qui); +} +``` + +3. Cette fonction : tester_autorisation(), renvoie toujours true pour les webmestres +Elle ajoute un pipeline : `super_autorisation` qui permet de modifier le retour. +Exemple, renvoyer toujours true pour les boss (pgp=boss, de l'auteur qui demande l'autorisation) +```php +function prefex_super_autorisation($qui){ + if ($qui['pgp'] === 'boss') { + return true; + } + return false; +} +``` +On peut exeptionnellement interdire le passage dans ce pipeline en appelant notre fonction `tester_autorisation()` avec false en 4e arg +```php +tester_autorisation($faire, $type, $qui, false); +``` diff --git a/doc/formulaire_autorisations.png b/doc/formulaire_autorisations.png new file mode 100644 index 0000000000000000000000000000000000000000..b45088f0340254c502c5e36adf11f7f8c8245525 GIT binary patch literal 39750 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 ] - #NOM #PRENOM + #NOM