Re: Autorisations : difficultés pour fair e des actions apparemment simples
RealET <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <[email protected]> |
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à :(
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.
--
RealET
_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: http://www.spip.net/
dev: http://trac.rezo.net/trac/spip/
irc://irc.freenode.net/spip