Anomalie #3069
autorisations
100%
Description
relaté dans le carnet ici http://contrib.spip.net/Autorisations-Dans-Spip
-> On veut permettre aux administrateurs restreints de modifier le login et mot de passe des visiteurs -> voir la fonction autoriser_auteur_modifier_dist - http://core.spip.org/projects/spip/repository/entry/branches/spip-3-stable/ecrire/inc/autoriser.php#L739 et principalement à cette partie du code ligne 763 :
elseif ($opt['statut'] == '0minirezo' OR $opt['restreintes']) return false;
surchargée par :
elseif ($opt['statut'] == '0minirezo') return false;
Pourquoi le fait de retirer
OR $opt['restreintes']
permet-il de modifier le login et mot de passe ?
Révisions associées
Ferme #3069 : l'autorisation utilisee pour tester le droit de modifier login/pass n'utilisait pas la bonne option. $opt['restreintes'] permet de tester le droit a modifier les rubriques restreintes alors que $opt['email'] permet de tester le droit a modifier le login/email.
Historique
#1
Mis à jour par b b il y a plus de 5 ans
Je ne comprends pas trop, c'est un rapport de bug ou juste une question ?
#2
Mis à jour par chan kalan il y a plus de 5 ans
C'est une question soulevée par un comportement qui me parait obscure. Je ne sais pas si c'est un bug.
#3
Mis à jour par b b il y a plus de 5 ans
Ce comportement vient de ce test dans formulaire_editer_auteur.php :
http://core.spip.org/projects/spip/repository/entry/spip/prive/formulaires/editer_auteur.php#L91
Le test sur autoriser se voit passer un argument array('restreintes'=>true) qui à mon avis est la source de ce comportement. De fait, un admin restreint ne peut modifier le login ou le passe d'un visiteur. en retirant l'option en question de l'appel à autoriser, le "bug" est corrigé.
Cette modification a été introduite il y a 4 ans par r14595 et le log de commit ne permet pas de comprendre si c'est une erreur ou si c'est voulu...
#4
Mis à jour par guytarr ° il y a plus de 5 ans
On retrouve des traces plus anciennes...
amusant : r8656 introduit autoriser_auteur_modifier_dist mais ne l'utilise pas ?
Pour les admins restreints, r8659 introduit ce test dans autoriser ($opt['restreintes']
) mais je n'ai pas compris comment c'est utilisé
http://core.spip.org/projects/spip/repository/revisions/8659/entry/spip/ecrire/action/editer_auteur.php#L212
$opt = array('restreint'=>$restreintes) c'est pas pareil que $opt = array('restreintes'=>true) ?
A partir de r9856 on a bien array('restreintes'=>true) qui est utilisée
http://core.spip.org/projects/spip/repository/revisions/9856/entry/spip/ecrire/action/editer_auteur.php#L80
Sans cette condition, le script dit que l'admin restreint peut faire tout ce qu'il veut pour cette autorisation tant qu'il ne touche pas à un statut 0minirezo ou qu'il ne tente pas de promouvoir un auteur admin (via le test $opt['statut'] == '0minirezo'
)
Par conséquent, il peut modifier login et pass pour les visiteurs et redacteurs (et autres s'il en existe).
On peut fermer le ticket ?
#5
Mis à jour par b b il y a environ 5 ans
Non on ne peut pas le fermer car justement un admin restreint ne peut pas modifier le login et pass d'un visiteur :p
#6
Mis à jour par b b il y a environ 5 ans
Et hop, j'ai ajouté Cedric en observateur pour qu'il nous donne son avis sur cette question :
Cette modification a été introduite il y a 4 ans par r14595 et le log de commit ne permet pas de comprendre si c'est une erreur ou si c'est voulu...
:)
#7
Mis à jour par cedric - il y a plus de 4 ans
- Statut changé de Nouveau à Fermé
- % réalisé changé de 0 à 100
Appliqué par commit r21472.