Dans un message précédent, j'évoquais la problématique de l'héritage des droits. D'une part, une sous-rubrique ne doit hériter des droits de la rubrique parente qu'à condition qu'elle ne soit pas restreinte par une autre zone. D'autre part, lorsque l'on calcule les rubriques accessibles pour un auteur, il faut vérifier que l'auteur peut effectivement y accéder (il faut avoir également accès aux rubriques parentes). Ces deux règles reposent sur le principe que pour accéder au deuxième étage d'un immeuble, il faut déjà avoir accès au premier étage. De plus, s'il y a un verrou sur la porte du quatrième étage et pas sur celle du troisième, la clé du second étage donne aussi accès au troisième mais pas au quatrième.
Je m'appetais justement ce soir à coder cela ce soir. Or, il faut systématiquement distinguer espace public et espace privé. Mais cela pose quelques soucis d'affichage dans sur la page de gestion des zones. En effet, actuellement, afin de mieux s'y retrouver, les rubriques accessibles sont affichées sur fond de couleur. Mais, dans le cas d'une zone portant à la fois sur l'espace public et sur l'espace privé, une sous-rubrique pourra être accessible sur l'espace public mais pas sur l'espace privé en raison d'une autre zone ne portant que sur l'espace privé. D'où un souci d'affichage. Par ailleurs il serait souhaitable de griser les zones qui ne sont pas accessibles en raison des autres zones actuellement en cours. Ca permet de mieux s'y retrouver entre ses différentes zones. Encore une fois, entre espace public et espace privé ce ne sont pas les mêmes sous-rubriques qui sont concernées. Je dois avouer qu'il faut parfois faire jongler sa mémoire entre les zones que public, que privées et qui filtrent les deux.
SOLUTION 1
J'avais testé une possibilité, décrite ici http://joseph.larmarange.net/Plugin-Acces-Restreint-Modifie.html, qui consistait à déclarer séparément, pour chaque zone, les rubriques filtrées dans l'espace public et celles filtrées dans l'espace privée (voir la capture d'écran sur la page pré-mentionnée). Pour mon usage personnel, cela me paraissait assez simple, privé et public étant clairement séparé. De plus, lorsque pour un même type d'utilisateurs les droits diffèrent entre espace privé et espace public, cela permet de ne définir qu'une seule zone à associer à chaque utilisateur du groupe alors qu'actuellement, il faut définir deux zones et associer à chaque auteur du groupe les deux zones. L'avantage, au-delà de l'économie d'un clic, est de simplifier la gestionde l'attribution des zones pour des administrateurs restreints. Avec cette solution, le problème d'affichage serait résolu.
J'avais commité cette proposition il y a deux semaines mais Cédric m'avait alors demandé de revenir en arrière (http://zone.spip.org/trac/spip-zone/changeset/11373). En effet, il m'avait précisé que le concept de zone correspondait à un ensemble de rubriques. (cédric, n'hésite pas à me dire si je me trompe). Le fait de définir des restrictions différenciées pour un auteur entre public et privé nécessite donc bien, selon ce principe, deux zones. Il ne faudrait pas confondre la notion de zone et celle de profil d'auteurs (pour un essai de début de définition de ce que pourrait être des profils voir ma contribution sur http://www.spip-contrib.net/Gestion-Auteurs.
SOLUTION 2
On pose le fait qu'une zone est soit publique soit privée. Séparation totale entre ces deux espaces. Le problème d'affichage est résolu (puisque l'édition d'une zone ne porte plus que sur un seul des deux espaces). Le concept de zone en tant qu'ensemble de rubriques est préservé. Cependant, pour faciliter la gestion pour les admins du site et s'y retrouver entre zones publiques et zones privées, il faudrait peut-être, sur la page exec/acces_restreint.php afficher séparément les zones publiques et les zones privées et dans le formulaire d'attribution de zone sur la page auteur faire suivre le nom de chaque zone de (publique) ou (privée) pour s'y retrouver plus facilement.
Inconvénient : si on gère un simple espace membre dont les zones sont identiques sur l'espace privé et l'espace public, il faut créer deux zones et associer deux zones à chaque auteur concerné. Encore une fois, la mise en place de profils d'utilisateurs permettrait d'éviter cela mais il s'agit d'un autre chantier et d'un autre débat.
SOLUTION 3
Comme aujourd'hui : une zone est soit publique, soit privée, soit les deux (avec les mêmes rubriques concernées). Utiliser des codes couleurs avec une légende affichée dans la colonne de droite. Outre les rubriques accessibles à la fois dans le public et le privé sur fond blanc, il faudrait a priori pas mal de couleurs (8 je crois) pour couvrir tous les cas de figures :
* filtrée par cette zone en public
* filtrée par cette zone en privé
* filtrée par cette zone en public et en privé
* filtrée par cette zone en public mais filtrée par une autre zone
en privé
* filtrée par cette zone en privé mais filtrée par une autre zone en
public
* non filtrée par cette zone mais filtrée par une autre en public
* non filtrée par cette zone mais filtrée par une autre en privé
* non filtrée par cette zone mais filtrée par une autre en public et
en privé
Ca risque de faire confus et d'être difficile de tout saisir au premier coup d'oeil.
SOLUTION 4
Pas de codes couleur mais un complément d'informations à coté du nom de chaque zone sous forme de texte.
SOLUTION 5
Un mixte entre codes couleurs et compléments textuels.
Peut-être existe-t-il d'autres solutions non évoquées ici. Quelle serait, selon vous, la solution la plus simple du point de vue utilisateur de SPIP ? Personnellement je pencherai pour la première mais je ne suis peut être pas objectif.
Joseph LARMARANGE