La gestion des droits, les habilitations des utilisateurs enregistrés, c’est l’une des fonctionnalités de base de tout système informatisé ; et c’est l’une des taches les plus rébarbatives et pénibles a mettre en place par les informaticiens ou responsables sécurité ; en plus des fonctionnalités standard déjà évoqués, et automatiquement mise en œuvre dans le work-flow d’édition, SPIP offre de très nombreuses facilités complémentaires, souvent sans grandes difficultés de mise en place : l’installation et le paramétrages s’opèrent en général juste dans l’interface privée, sans développement ni programmation.
Plugins complémentaires
On va d’abord parler du plugin Autorité qui rajoute l’automatisation de diverses possibilités, des autorisations plus fines pour les messages, les réponses aux forums ou les droits d’édition/rétractation des articles publiés.
Pour gérer la confidentialité de certains contenus, la solution la plus courante consiste à définir des zones à Accès Restreint, recouvrant une ou plusieurs branches de l’arborescence des rubriques.
Autorisations en squelettes
Utiliser l’identification SPIP permet assez facilement de montrer (ou cacher) des liens fournis dans les squelettes, en tenant compte de la #SESSION
connectée, ou mieux des droits explicites par la balise #AUTORISER
par Spip : cela permet de réaliser des parties privées, ou des affichages différentiés en fonction de l’authentification éventuelle du visiteur, et de son statut....
En particulier, il devient très facile de protéger un squelette en utilisant le filtre |sinon_interdire_acces
après un contrôle d’autorisation...
Noter qu’il est possible simplement de tracer les autorisations utilisées, avec
define ('_DEBUG_AUTORISER', true);
dans mes_fonctions.
Changer des autorisations
Modifier des droits d’usage serait également relativement facile par une programmation php simple, si vous ne trouvez pas déjà un plugin adapté ; mais nous ne ferons qu’en indiquer le principe ici.
En gros, cela signifie Surcharger des fonctions d’autorisations, le plus souvent en redéfinissant une définition adaptée dans mes_options :
identifier le nom d’autorisation voulu, le plus souvent un verbe (voir Autorisations Dans Spip),
en déduire le nom de fonction d’autorisation (normalement suffixé par _dist()
,
insérer le code correspondant ( du genre.. : function autoriser_
type.objet_action.a.faire
_dist($faire,$quoi,$id,$qui,$opts) {
..}
reproduire les règles voulues(selon les statuts à autoriser)
A noter qu’une lame proposée par Le Couteau Suisse propose une interface permettant sans programmation de créer ses propres autorisations : voir Autorisations Dans Spip.
Article publié le 23 décembre 2011, et actualisé en février 2021 .
Répondre à cet article