#136 Add permissions to access only a part of the administration interface

Merged
jocelyn merged 16 commits from Sim/niveaux_acces into FFDN/master 7 years ago
Sim commented 7 years ago

Cette PR propose d'ajouter des permissions pour que des utilisateurs puissent avoir accès à seulement une partie de l'interface d'administration. Son fonctionnement (côté utilisateur) est documenté dans le fichier doc/user/permissions.md.

La PR est fonctionnelle en l'état, si l'on veut poursuivre le travail on pourrait :

  • faire des notifications au admins à chaque fois qu'une modification est effectuée par un non-admin
  • pouvoir mettre plusieurs offres dans une RowLevelPermission (vraiment pas indispensable)
  • bouger 'Groupes' depuis 'Authentification et autorisation' vers 'Members' sur la page d'accueil de l'interface d'administration
Cette PR propose d'ajouter des permissions pour que des utilisateurs puissent avoir accès à seulement une partie de l'interface d'administration. Son fonctionnement (côté utilisateur) est documenté dans le fichier doc/user/permissions.md. La PR est fonctionnelle en l'état, si l'on veut poursuivre le travail on pourrait : - faire des notifications au admins à chaque fois qu'une modification est effectuée par un non-admin - pouvoir mettre plusieurs offres dans une RowLevelPermission (vraiment pas indispensable) - bouger 'Groupes' depuis 'Authentification et autorisation' vers 'Members' sur la page d'accueil de l'interface d'administration
jocelyn commented 7 years ago
Owner

\o/

Pourrais-tu rebase ta PR sur master (comme ça c'est toi qui gère les conflits héhé ^^).

Je me lance dans une ultime relecture/test.

\o/ Pourrais-tu rebase ta PR sur master (comme ça c'est toi qui gère les conflits héhé ^^). Je me lance dans une ultime relecture/test.
jocelyn commented 7 years ago
Owner

OK, relu et testé, voici mes retours :

Pour l'auto-génération d'identifiants pour les permissions fines

  1. Je pense que tu veux utiliser slugify.
  2. Il y a une raison particulière pour utiliser un signal plutôt que de simplement surcharger le save() du model ? (oui je sais, c'est comme ça que c'est fait pour le LdapUser mais je ne comprends pas pourquoi).

(si vraiment tu veux garder le signal-receiver, je pense qu'il vaut mieux qu'il soit juste à côté de la classe concernée dans le code).

Pour le has_add_permission

J'ai commité sur ta branche une version que je pense moins fragile de cette vérif ; dis-moi ce que tu en penses.

TODO

  • récupérer et relire mon commit
  • Factoriser le return du formfield_for_foreignkey()
  • utiliser slugify pour l'identifiant des permissions fines
  • utiliser save() plutôt qu'un signal ou au moins déplacer le signal receiver près de la classe concernée dans le fichier
  • git rebase sur master

Autres notes

Pas dramatique, mais attention à ne pas trop inclure de modifs parasites d'espaces, ça fait du bruit dans le patch, et en pratique là le résultat final c'est des trucs avec des espacements pas très orthodoxe (cf la section dédiée de PEP8).

Si tu veux t'exercer au rebase interactif, c'est l'occase, pour réduire un peu le nombre de commits et clarifier cette PR. Enfin, c'est si ça t'amuse ça :).

Bon courage !

OK, relu et testé, voici mes retours : ## Pour l'auto-génération d'identifiants pour les permissions fines 1. Je pense que tu veux utiliser [slugify](https://docs.djangoproject.com/fr/1.8/ref/utils/#django.utils.text.slugify). 2. Il y a une raison particulière pour utiliser un signal plutôt que de simplement surcharger le `save()` du model ? (oui je sais, c'est comme ça que c'est fait pour le `LdapUser` mais je ne comprends pas pourquoi). (si vraiment tu veux garder le signal-receiver, je pense qu'il vaut mieux qu'il soit juste à côté de la classe concernée dans le code). ## Pour le `has_add_permission` J'ai commité sur ta branche une version que je pense moins fragile de cette vérif ; dis-moi ce que tu en penses. ## TODO - [x] récupérer et relire mon commit - [x] Factoriser le return du [formfield_for_foreignkey()](https://code.ffdn.org/FFDN/coin/pulls/136/files#diff-e8e1586167f5520da52fc65704d298881b57cb2R61) - [x] utiliser `slugify` pour l'identifiant des permissions fines - [x] utiliser `save()` plutôt qu'un signal ou au moins déplacer le signal receiver près de la classe concernée dans le fichier - [x] git rebase sur master ## Autres notes Pas dramatique, mais attention à ne pas trop inclure de modifs parasites d'espaces, ça fait du bruit dans le patch, et en pratique là le résultat final c'est des trucs avec des espacements pas très orthodoxe (cf [la section dédiée de PEP8](https://www.python.org/dev/peps/pep-0008/#blank-lines)). Si tu veux t'exercer au rebase interactif, c'est l'occase, pour réduire un peu le nombre de commits et clarifier cette PR. Enfin, c'est si ça t'amuse ça :). Bon courage !
This pull request has been merged successfully!
Sign in to join this conversation.
No Milestone
No assignee
2 Participants
Loading...
Cancel
Save
There is no content yet.