Carnet Code SPIP

Site Sure

SPIP-Contrib :: Carnet SPIP :: Carnet Code SPIP :: Recherche :

Site Sure

Introduction

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.

Objectifs

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
-  ...

Fonctionnement

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é.

  1. switch($faire) {
  2.                 case "modifier";  
  3.                         switch($type) {
  4.                                 case "auteur";
  5.                                   $v = var_export($opt["statut"],true);
  6.                                   spip_log($v);
  7.                                   if ( isset($opt["statut"]) ) {
  8.                                         if ($opt["statut"] == Auteur_Statut_Root) {
  9.                                                         $a = false;
  10.                                         }
  11.                                   }
  12.                                         break;
  13.                         }
  14.                         break;
  15.                 case "detruire";  // Effacer la base de donnée
  16.                         $a = false;
  17.                         break;
  18.                 case "configurer";
  19.                         switch($type) {
  20.                                 case "admin_tech";
  21.                                         $a = false;
  22.                                         break;
  23.                                 case "lang";
  24.                                         $a = false;
  25.                                                 break;
  26.                                 case "plugins";
  27.                                         $a = false;
  28.                                         break;
  29.                                 case "admin_plugin";
  30.                                         $a = false;
  31.                                         break;
  32.                                 case "fonctions";
  33.                                         $a = false;
  34.                                         break;
  35.                         }
  36.         }

Le plug-in

Zip - 24.5 ko
Ver 0.1