Hello,
je vois que vous êtes en train de griller pas mal de neurones sur ce
problème d'auth, alors que j'avais prévu d'en griller moi-même
plusieurs demain, donc je réagis en vitesse ...
Il me semble que tant qu'à gérer des accès côté public, autant le
faire à fond, c'est à dire avec la possibilité de mettre des
restrictions en lecture par rubrique, en cascade comme pour les
administrateurs locaux côté privé.
C'est certe plus compliqué, mais cela devrait couvrir tous les
besoins.
Nous sommes en train de travailler sur ce mécanisme, et je vous
explique comment nous faisons ci-après. Nous sommes conscients qu'une
gestion intégrée à SPIP serait bien meilleure, mais nous faisons ça
pour conserver la compatibilité avec les futures versions.
Voilà :
- une catégorie de mots clefs nommée 'auth' contient des noms de
groupes, par exemple : 'visiteur', 'commercial', 'admin', ...
- toute rubrique peut se voir affecter 0 à n groupes indiquant alors
une restriction de visibilité aux membres de ces groupes de la
rubrique et de ses sous-rubriques
- tout utilisateur peut faire partie de 0 à n groupes, ces
répartitions de groupes étant gérées pour l'instant hors de SPIP
- des fonctions dans 'mes_fonctions.php3' permettent de gérer les
autorisation d'affichage. Dans une liste d'articles du sommaire, on
va faire, par exemple :
<BOUCLE_derniers_articles(ARTICLES){...}>
<?php
if ([(#ID_ARTICLE|auth_link_article)]) {
?>
<p>
<a href="#URL_ARTICLE">#TITRE</a><br />
#DESCRIPTIF
</p>
<?php
}
?>
</BOUCLE_derniers_articles>
auth_link_article() renvoi true ou false suivant que l'utilisateur
courant (cf session) a le droit ou non de voir l'article en
question. Cette fonction accède (malheureusement) à la base de
données pour récupérer la hiérarchie à vérifier, donc une mise en
cache des hierarchies, avec infos de groupes, serait top
Il faut de même une fonction auth_show_article() à mettre dans les
squelettes d'article, et idem pour les autres éléments, rubriques,
brèves, sites ...
L'inconvénient principal que je vois à ce système est qu'on est obligé
de vérifier les contenus à afficher à chaque fois, et que donc on perd
l'intérêt du cache dont les délais doivent être systématiquement à 0.
L'avantage par contre est que l'on peut ainsi pas mal personnaliser
les contenus en fonction des groupes de visiteurs.
Nous sommes en cours de conception et réalisation, donc toute bonne
idée sera la bienvenue ...
-Nicolas