Pour les besoins de l’Auberge des blogueurs, il a fallu que je développe, entre autres, un plugin, pour permettre certaines choses pas spécialement prévues pour un jeu collectif de cette nature, en particulier pour la gestion des dates autorisées de publication, ou pour récupérer certaines informations pas disponibles localement.
Pas de soucis particulier jusque là, Dotclear permettant d’emblée pas mal de choses.
Par contre, il y a un point qui est clairement, disons pas bloquant, mais gênant, c’est la granularité des droits et par ailleurs sa gestion générale qui reste un gros point noir, à mon humble avis.
Alors certes on sort un peu du cas habituel d’usage d’un blog collectif, mais pas tellement et c’est là qu’on s’est rendu compte qu’une gestion, même basique, de groupes ou de profils, seraient intéressante, d’une part, et que par ailleurs les possibilités d’autorisation ou de blocage de telle ou telle fonctionnalité sont très réduites.
Par ailleurs, les plugins tiers peuvent eux aussi apporter des cas d’usage particuliers, contextes ou fonctionnalités, qu’il serait intéressant d’intégrer.
Bref, c’est un peu le dawa la dedans, même si ça fonctionne correctement pour la majorité des installations, qui sont, à mon avis, gérées par un utilisateur ayant le rôle super-administrateur, ce qui simplifie bien les choses.
Je verrais bien un système axé sur le contexte — l’édition d’un billet en est un, la gestion des commentaires d’un billet en est un autre[1] —, et une série de droits possibles sur ce contexte (consultation, ajout, modification, suppression, …).
Ensuite une définition de groupes ou de rôles, éventuellement en ayant un système d’héritage de groupe parent, listant les droits pour les contextes disponibles.
Enfin un utilisateur appartenant à un groupe (ou plusieurs ?), ou pour lequel un rôle (ou plusieurs) est défini.
Rien que du très basique en somme, par contre ça veut dire reprendre en profondeur toute la partie administration de Dotclear pour définir les contextes/droits possibles et mettre en place leurs contrôles.
Ça veut dire aussi de prévoir qu’un plugin puisse ajouter un contexte (ou plusieurs) et des droits (standards ou nouveaux).
La question étant : « Est-ce que ça vaut le coup/coût ? »
Note
[1] Actuellement il n’y a aucune différence d’accès pour ces deux contextes, si on a accès au premier, on a accès au second.
1 De Stéphane -
J’ai dans mes souvenirs flous des systèmes de gestion de contenus coûtant très cher et faisant autant le variable de technico-commerciaux que la richesse de leur entreprise où tout ça était pris en compte.
Dans les usages, après une phase de waouh-on-peut-faire-tout-ça, tout le monde trouvait ça relou à entretenir/suivre assez rapidement, ne fût-ce que se rappeler comment ça marchait même.
Au final plein d’équipes sont revenues vers des outils perçus comme plus simples.
Donc je dirais : mouais. ;)
2 De biou -
Sous linux, tu as une gestion de droits de base sur les fichiers avec un système de groupes et d’utilisateurs et les flags sur les fichiers et dossiers. Si tu as besoin de plus de flexibilité, il est possible de gérer les droits via des ACL, système aussi utilisé sous windows.
J’ai jamais trop utilisé les ACL sous linux, car j’en ai jamais eu le besoin.
Dans les modèles de gestions de droits connus, il y a aussi RBAC et ABAC, https://en.wikipedia.org/wiki/Role-…accesscontrol et il existe des implémentations en PHP de RBAC http://phprbac.net/ (ça n’a pas l’air maintenu).
Ça risque d’ajouter pas mal de complexité, assez d’accord avec Stéphane.
Est-ce que ce serait jouable de le faire en plugin? Un peu comme sous linux, par défaut t’as une gestion simple, et si jamais t’as le besoin d’une gestion de droits complexe, tu charges le plugin?
3 De Franck -
Oui en effet ça complexifie la gestion, peut-être inutilement.
L’idée du plugin est bonne, mais il faudrait pour qu’il fonctionne que j’implémente dans le cœur de Dotclear des points de contrôle suffisants en fonction du contexte et des fonctions.
Faut que je laisse murir…