Version 3 — Juin 2009 — Maïeul
On le sait, la gestion des droits dans SPIP est à parfaire loin s’en faut. Ce plug-in n’a pas pu atteindre ses objectifs de ce fait.
En attendant une refonte complète, voici un plug-in pour sécuriser votre site.
Permettre aux administrateurs non restreint à une rubrique de pouvoir faire tout sauf ce qui pourrait être dangereux tel que :
- gestion plug-in
- retirer droit administrateur aux webmestres
- effacer la base
- gérer les paramètres techniques
- ...
Le fonctionnement est assez simple, ne pouvant créer un nouveau niveau supérieur au niveau administrateur et ne pouvant créer un niveau entre l’administrateur total et l’administrateur restreint à une rubrique du aux adhérence dans le code SPIP.
Pour vous en convaincre cherchez « 0minirezo » dans le code SPIP et vous verrez qu’il n’est pas qu’a un seul endroit.
Passé ce constat frustrant, l’idée est de s’appuyer sur l’existant à savoir l’identification des webmestres via le code :
Le plug-in fonctionne en redéfinissant la fonction autoriser c’est donc sont seul point d’adhérence avec d’autres plug-in.
Si vous étés webmestre, tout vous est ouvert, sinon si vous accédez aux fonctionnalités interdites cela vous est refusé. Pour les autres cas le processus normal est utilisé.
switch($faire) {
case "modifier";
switch($type) {
case "auteur";
$v = var_export($opt["statut"],true);
spip_log($v);
if ( isset($opt["statut"]) ) {
if ($opt["statut"] == Auteur_Statut_Root) {
$a = false;
}
}
break;
}
break;
case "detruire"; // Effacer la base de donnée
$a = false;
break;
case "configurer";
switch($type) {
case "admin_tech";
$a = false;
break;
case "lang";
$a = false;
break;
case "plugins";
$a = false;
break;
case "admin_plugin";
$a = false;
break;
case "fonctions";
$a = false;
break;
}
}