[spip-dev] Autorisations : difficultés pour faire des actions apparemment simples

Bonjour,

J'ai eu besoin sur un site de limiter les actions des rédacteurs :
• bloquer toute possibilité de créer de nouveaux articles
• bloquer toute possibilité de voir et d'agir sur les rubriques du site dans lesquelles on n'a pas d'article à son nom
• pouvoir voir et modifier uniquement les articles dont on est l'auteur (y compris après publication)
• ne lui permettre de voir en back-office que les articles dont il est l'auteur

Et là, j'ai dû jongler entre :
- des autoriser (voir, modifier)
- le pipeline preboucle pour interdire l'accès à certains contenus

Sachant que je n'ai eu bien sûr besoin de cela qu'uniquement dans le privé (ecrire/).

Si j'avais pu faire cela uniquement avec des autorisations, ça aurait été plus simple.

Un exemple ?
Les rubriques :
- sur l'accueil de ecrire/ les rubriques listées ou non le sont via un appel à autoriser voir rubrique
- mais pour le fil d'ariane, j'ai dû passer par pre_boucle

Les articles :
- autoriser voir article n'a aucun effet sur les listes d'articles d'une rubrique
- il a donc fallut aussi passer par un pre_boucle

PS : Si le plugin intéresse, je devrais pouvoir le diffuser.

Bonjour,

Bonjour

[cut...]

PS : Si le plugin intéresse, je devrais pouvoir le diffuser.

Très intéressé pour regarder le code.
Bonne soirée

RealET a écrit le 03/06/2019 à 14:55 :

Bonjour,

J'ai eu besoin sur un site de limiter les actions des rédacteurs :
• bloquer toute possibilité de créer de nouveaux articles
• bloquer toute possibilité de voir et d'agir sur les rubriques du site dans lesquelles on n'a pas d'article à son nom
• pouvoir voir et modifier uniquement les articles dont on est l'auteur (y compris après publication)
• ne lui permettre de voir en back-office que les articles dont il est l'auteur

Et là, j'ai dû jongler entre :
- des autoriser (voir, modifier)
- le pipeline preboucle pour interdire l'accès à certains contenus

Sachant que je n'ai eu bien sûr besoin de cela qu'uniquement dans le privé (ecrire/).

Si j'avais pu faire cela uniquement avec des autorisations, ça aurait été plus simple.

Un exemple ?
Les rubriques :
- sur l'accueil de ecrire/ les rubriques listées ou non le sont via un appel à autoriser voir rubrique
- mais pour le fil d'ariane, j'ai dû passer par pre_boucle

Les articles :
- autoriser voir article n'a aucun effet sur les listes d'articles d'une rubrique
- il a donc fallut aussi passer par un pre_boucle

PS : Si le plugin intéresse, je devrais pouvoir le diffuser.

Autre exemple : formulaires/editer_article.php fait une vérification que j'ai le droit de créer un article dans une rubrique.
Même si l'article existe déjà :frowning:
J'ai donc (de manière crade) eu à surcharger formulaires_editer_article_verifier_dist
en y supprimant
  if (!isset($erreurs['id_parent'])
    and !autoriser('creerarticledans', 'rubrique', _request('id_parent'))
  ) {
    $erreurs['id_parent'] = _T('info_creerdansrubrique_non_autorise');
  }

Et en me disant qu'à cet endroit, on ne devrait vérifier le droit que si l'article n'existe pas encore.
Sachant que le plongeur de rubrique lui, utilise l'autorisation rubrique voir.