No description
Find a file
2020-02-11 17:14:29 +01:00
action sortie de la fabrique + ajout champ autorisations 2020-02-10 11:37:27 +01:00
base on n'utilise plus le champ pgp = boss mais on ajoute un champ boss => oui 2020-02-11 17:13:48 +01:00
content ajout d'une page d'edition des modeles 2020-02-11 10:34:40 +01:00
css ajout : dissociation d'un modele 2020-02-11 15:58:28 +01:00
doc ajoute la doc 2020-02-10 13:17:43 +01:00
formulaires ajout l'association avec un modele 2020-02-11 16:32:20 +01:00
img ajout : dissociation d'un modele 2020-02-11 15:58:28 +01:00
inc ajout du fichier 2020-02-10 13:19:46 +01:00
inclure divers corrections, notamment, on ne peut pas modifier les droits si on a un modele associé 2020-02-11 15:25:44 +01:00
lang sortie de la fabrique + ajout champ autorisations 2020-02-10 11:37:27 +01:00
prive les png de la fabriques sont faux, on ajoute le champ autorisations dans spip_auteurs 2020-02-10 11:51:14 +01:00
auted_administrations.php on n'utilise plus le champ pgp = boss mais on ajoute un champ boss => oui 2020-02-11 17:13:48 +01:00
auted_autorisations.php Ménage dans les autorisations, on utilise en plus le champ boss et on ajoute l'autorisation boss 2020-02-11 17:14:29 +01:00
auted_fonctions.php sortie de la fabrique + ajout champ autorisations 2020-02-10 11:37:27 +01:00
auted_options.php sortie de la fabrique + ajout champ autorisations 2020-02-10 11:37:27 +01:00
auted_pipelines.php on remplace fa => png 2020-02-10 12:43:31 +01:00
charger_aut_modele.html ajout l'association avec un modele 2020-02-11 16:32:20 +01:00
paquet.xml on n'utilise plus le champ pgp = boss mais on ajoute un champ boss => oui 2020-02-11 17:13:48 +01:00
README.md ajoute la doc 2020-02-10 13:17:43 +01:00
save_aut_modele.html commit inutile, il faut tout refaire, en plus KISS 2020-02-10 23:43:21 +01:00

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)
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']
	]
]);
  1. Appeler le formulaire d'édition des autorisations. ex :
[(#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>

formulaire_autorisation

  1. Si un auteur un dans son champ pgp = boss => il aura tous les droits (un logo s'affiche devant son nom)

  2. On peut ajouter des criteres de sélection des auteurs qui s'afficheront dans ce formulaire via le pipeline formulaire_charger. ex :

function prefix_formulaire_charger($flux){
	if ($flux['args']['form'] === 'editer_autorisations'){
		$flux['data']['pgp'] = ["guide","client"];
		$flux['data']['webmestre'] = "non";
	}
	return $flux;
}
  1. 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 :
include_spip('inc/tester_autorisation');
  1. Puis ajouter les fonctions d'autorisation, par exemple, pour le type guide, nous avons : voir et modifier
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);
}
  1. 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)
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

tester_autorisation($faire, $type, $qui, false);