Mise en place des droits utilisateurs
userStory : #2 (closed)
Régis a écrit :
Authentification:
Il y a des travaux en cours au niveau du plugin vue-cas-authentication de la part du DIP. De ce que j'ai compris, ils remanient la partie login, ainsi que la partie logout. J'ai eu moi-même plusieurs problèmes pour tester et ne suis pas sûr du statut actuel de cette brique logicielle. J'ai cependant préféré laisser les choses laisser suivre le cours, ne pas interrompre leur travail et me concentrer sur l'implémentation des utilisateurs, des groupes et de permissions dans l'API.
Aussi, vu que ça conditionne notre déploiement, je vous conseille de suivre dès la semaine prochaine leurs développements auprès de Virgile et/ou Jonathan (ils bossent tous les deux, dessus sur des parties différentes). Quand ils auront une version satisfaisante/stable, il faudra updater le tag de ladite version dans notre package.json, tester réellement et, s'il subsiste des dysfonctionnements, leur en faire part afin que soit ils les règlent, soit qu'ils puissent nous aider à corriger notre intégration.
Utilisateurs, Sets, Groupes:
Actuellement, coté back :
- Quand le serveur reçoit une requête d'un utilisateur authentifié mais non répertorié dans la base, un User est créé. Ça se passe dans util/middleware/auth.py . Je n'ai pas encore implémenté le comportement cible, qui est de faire un redirect vers une page qui permettra de créer l'utilisateur.
- Quand un Set est créé, un Group administrateur du set est automatiquement créé, avec le set.owner comme unique membre. On peut lister les groupes auxquels un utilisateur appartient, et ajouter des groupes à un set existant.
- On peut créer des permissions, et les ajouter aux différentes vues. Pour voir comment c'est fait, checkez apps/permissions/sets.py et apps/views/sets.py. ReadPermission reste à terminer (il dépend de la fin du boulot sur les groupes) ; puis, il faudra créer un WritePersmission sur le même modèle, et décider quels services REST sont protégés par quoi.
Coté front : Ayant eu du mal à tester, je me suis concentré sur les tests unitaires de pount-api. Tout cela reste donc à faire :
- mettre à jour la page de profil utilisateur pour lister, pour chaque sets, un tableau groupes VS permissions read+write.
- ôter l'id d'utilisateur "1" actuellement hardcodé dans src/views/sets/create.vue, et laisser l'API le setter elle-même en fonction du token jwt.
- créer la page de redirection avec le laius légal préalable à la création de compte.
- il me faudrait aussi le niveau de priorité de mettre à jour la page de profil utilisateur avec un formulaire permettant de changer nom/prénom/avatar/etc. Y en a pour environ 2 jours de boulot, je pense.