Carnet Wiki

Nouveaux Roles d’Auteurs et Autorisations

Version 3 — Décembre 2019 YannX

L’API proposant l’adjonction de Roles aux liens, avec son pendant sur les Documents et en particulier son exemple de premier plugin Roles d’auteurs, invite immédiatement l webmestre à devoir compléter les autorisations correspondantes.. et à plonger dans ces

L’origine de cette réflexion : développer dans un site collaboratif privé, une solution de ’contributeur’ permettant de garder trace des modifications proposées/apportées dans quelques rubriques spécifiques (au sein de zones d’accès restreint : cela règle le problème de l’authentification en Wiki pur).

Rappel de quelques références

Les statuts des Auteurs

Le statut SPIP des auteurs n’est pas modifié par l’API Rôles, qui ne fait que rajouter un champ complémentaire ; comme il n’est pas question d’aller modifier les sources de SPIP, il faudra compléter ce statut, et donc « récupérer » aussi les valeurs de Zone et de Role de l’auteur connecté

La syntaxe des fonctions d’autorisation

Les autorisation suivent une syntaxe basique détaillée dans SPN-705, correspondant à divers cas, également détaillés dans SPN-438 ; rappelons donc les paramètres de la balise #AUTORISER et de la la fonction (à commencer par le $faire ce qui nous intéresse) :
function autoriser_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL)

Les autorisations nécessaires aux Articles

Pour gérer un article, première cible de notre réflexion, il convient d’aborder plusieurs autorisations spécifiques [1]
-  la création d’un article : on gardera sans doute la forme d’origine : réservée aux rédacteurs inscrits, tout en l’étendant à l’espace public (squelettes Rubrique et Article),
-  sa visualisation avant publication (dans le privé et/ou dans le public) : il serait « pénible » de devoir rajouter tous les comptes d’auteurs autorisés, éventuellement intéressés, comme auteurs de cet article ; certes il est nécessaire qu’ils puissent l’apercevoir, mais ils ne prendront un rôle sur cet article qu’en y participant effectivement (par co-redaction, commentaire ou ajout de documents liés, et optionnellement commentés..),
-  le commentaire ajouté à l’article (en public ou en privé) : on voudra sans doute garder ces commentaires d’avant publication dans ceux de l’espace privé ...
-  la modification de son contenu (mais tous ne sont pas forcement autorisés à modifier, ou du moins a voir leur modification directement intégrée), et on voudra en garder le versionning...
-  l’ajout de documents sans modifications,
-  l’ajout de commentaires ciblés sur l’article (meme chose : en public ou en privé ?) ; de plus, on pourrait apprécier de pouvoir « localiser » le commentaire en regard du paragraphe ciblé
-  l’opportunité de ’figer’ un article pour limiter aux commentaires publics..

On voit que certaines de ces opérations viennent apporter des précisions ou contradictions aux autorisations habituelles :

    • autoriser_voir (dépend du $type )
  • pour le traitement des rubriques
    • autoriser_rubrique_publierdans = autoriser_rubrique_modifier
    • autoriser_rubrique_creerRubriquedans
    • autoriser_rubrique_editermots
  • pour le traitement des articles
    • autoriser_article_modifier :=autoriser_rubrique_publierdans
    • autoriser_article_editermots = autoriser_rubrique_editermots
  • ensuite la plupart des autorisations vont dépendre aussi du $type
    • autoriser_voir (dépend du $type )
      -  

La définition des Rôles donnés aux Auteurs

En-cours d’analyse...