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

Fusionné
jocelyn a fusionné 16 commits à partir de Sim/niveaux_acces vers FFDN/master il y a 7 ans
Sim a commenté il y a 7 ans

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 a commenté il y a 7 ans
Propriétaire

\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 a commenté il y a 7 ans
Propriétaire

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 !
Cette Pull Request a été fusionnée avec succès !
Connectez-vous pour rejoindre cette conversation.
Aucun jalon
Pas d'assignataire
2 Participants
Chargement…
Annuler
Enregistrer
Il n'existe pas encore de contenu.