ajoute la doc
This commit is contained in:
parent
69e605e96e
commit
bfadf6e1a6
3 changed files with 89 additions and 1 deletions
88
README.md
88
README.md
|
@ -1,2 +1,90 @@
|
||||||
# Autorisations étendues
|
# 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)]
|
||||||
|
<div class="inner">
|
||||||
|
<header>
|
||||||
|
<h1 class="txtcenter">Gestion des autorisations</h1>
|
||||||
|
</header>
|
||||||
|
<div class="">
|
||||||
|
[(#FORMULAIRE_EDITER_AUTORISATIONS{#ENV{id_auteur}})]
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|

|
||||||
|
|
||||||
|
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);
|
||||||
|
```
|
||||||
|
|
BIN
doc/formulaire_autorisations.png
Normal file
BIN
doc/formulaire_autorisations.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 39 KiB |
|
@ -27,7 +27,7 @@
|
||||||
[(#PGP|=={boss}|oui)
|
[(#PGP|=={boss}|oui)
|
||||||
<img class="boss" src="[(#CHEMIN{img/boss.png})]" alt="boss"/>
|
<img class="boss" src="[(#CHEMIN{img/boss.png})]" alt="boss"/>
|
||||||
]
|
]
|
||||||
#NOM #PRENOM
|
#NOM
|
||||||
<input type="hidden" name="Tid_auteur[]" value="#ID_AUTEUR">
|
<input type="hidden" name="Tid_auteur[]" value="#ID_AUTEUR">
|
||||||
</td>
|
</td>
|
||||||
<BOUCLE_valeurAuth(DATA){source tableau, #ENV{auth_modele}}>
|
<BOUCLE_valeurAuth(DATA){source tableau, #ENV{auth_modele}}>
|
||||||
|
|
Loading…
Add table
Reference in a new issue