Login as #90

Manually merged
Lephenixnoir merged 3 commits from login_as into dev 2021-03-10 16:15:04 +01:00
Owner

Adds login as feature.

Adds *login as* feature.
Darks requested review from Lephenixnoir 2021-03-05 23:49:39 +01:00
Darks added the
enhancement
label 2021-03-05 23:49:52 +01:00
Darks removed review request for Lephenixnoir 2021-03-05 23:50:15 +01:00
Lephenixnoir was assigned by Darks 2021-03-05 23:50:20 +01:00
Owner

Superbe ! En première lecture :

  • app/data/groups.yaml : retirer le community login de la TODO list, et je propose de donner misc.community-login aux rédacteurs (sinon la distinction est inutile)

Pour tester les comptes communautaires :

g = Group.query.filter_by(name="Compte communautaire").one()
is_community = g in user.groups

Ce test-là est foireux, tu testes sur la cible au lieu de la source, ce qui autorise les personnes ayant misc.community-login à se connecter comme administrateur (grosse élévation de privilèges xD) :

if ... and not user.priv("misc.arbitrary-login"):
#   current_user ^

Pour Member.query.filter_by(name=form.username.data) on peut peut-être normaliser et comparer au norm non ? Histoire de pas se faire rejeter si on se trompe d'un accent ou une majuscule, vu qu'on n'a pas la liste sous les yeux quand on tape.


Pour les menus fretins et les détails perfectionnistes :

  • style="width:40%;" est (probablement) très limitant sur mobile
  • « agit de manière stupide »
  • « True if the current user looks like a vandal ».

Je testerai rapidement (dans la journée j'espère).

Superbe ! En première lecture : * `app/data/groups.yaml` : retirer le community login de la TODO list, et je propose de donner `misc.community-login` aux rédacteurs (sinon la distinction est inutile) Pour tester les comptes communautaires : ``` g = Group.query.filter_by(name="Compte communautaire").one() is_community = g in user.groups ``` Ce test-là est foireux, tu testes sur la cible au lieu de la source, ce qui autorise les personnes ayant `misc.community-login` à se connecter comme administrateur (grosse élévation de privilèges xD) : ``` if ... and not user.priv("misc.arbitrary-login"): # current_user ^ ``` Pour `Member.query.filter_by(name=form.username.data)` on peut peut-être normaliser et comparer au `norm` non ? Histoire de pas se faire rejeter si on se trompe d'un accent ou une majuscule, vu qu'on n'a pas la liste sous les yeux quand on tape. --- Pour les menus fretins et les détails perfectionnistes : * `style="width:40%;"` est (probablement) très limitant sur mobile * « agi~~t~~ de manière stupide » * « True i**f** the current user looks like a vandal ». --- Je testerai rapidement (dans la journée j'espère).
Darks force-pushed login_as from 066eb23161 to 8bdf3909ea 2021-03-06 11:36:51 +01:00 Compare
Owner

C'est bon pour moi. Quelques remarques :

  • Il faudra étendre le panel admin aux propriétaires de misc.community-login (on en a besoin aussi pour les outils RDP/etc, ce n'est donc qu'une question de temps). Parce que là les rédacts ont accès à /admin/vandalisme mais pas /admin
  • Les erreurs sont pas super claires, une redirection avec un Flash serait mieux qu'une 403
  • On peut aussi lister les comptes communautaires pour aller plus vite

Pour l'instant je merge ça, merci.

C'est bon pour moi. Quelques remarques : * Il faudra étendre le panel admin aux propriétaires de `misc.community-login` (on en a besoin aussi pour les outils RDP/etc, ce n'est donc qu'une question de temps). Parce que là les rédacts ont accès à `/admin/vandalisme` mais pas `/admin` * Les erreurs sont pas super claires, une redirection avec un Flash serait mieux qu'une 403 * On peut aussi lister les comptes communautaires pour aller plus vite Pour l'instant je merge ça, merci.
Lephenixnoir manually merged commit 40aeb1674e into dev 2021-03-10 16:15:04 +01:00
Darks deleted branch login_as 2021-03-10 16:19:43 +01:00
Sign in to join this conversation.
No description provided.