Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

2.b. Gestion des utilisateurs

tizot edited this page Jan 18, 2016 · 1 revision

Gestion des utilisateurs

Modèle User

Le modèle User est défini dans le fichier bars_core/models/user.py. Il ne présente pas de particularités : il hérite du modèle abstrait de Django, de façon à avoir des noms d'utilisateur de plus de 30 caractères.

On a cependant rajouté quelques champs :

  • pseudo : il ne sert pas à se connecter mais juste à afficher un autre nom que les classiques nom et prénom ;
  • current_login : date et heure de la connexion actuelle ;
  • previous_login : date et heure de la précédente connexion.

Pour plus de détails concernant ces deux derniers champs, voir la page relative à l'authentification.

D'autre part, on utilise un gestionnaire de modèles personnalisé : UserManager.
Cela nous permet de surcharger les méthodes de création d'utilisateur (et de super-utilisateur). De plus, on peut ainsi charger les rôles des utilisateurs à chaque requête SQL, ce qui optimise les requêtes faites au serveur ; ceci est spécifié dans la méthode UserManager.get_queryset().

Le sérializer ne présente lui aussi aucune spécificité. À la création d'un utilisateur, son mot de passe est actuellement fixé à la valeur 0000 (ceci devrait être amélioré dans une verison ultérieure).

Vues liées aux utilisateurs

La classe UserViewSet gère les différentes vues liées aux utilisateurs telles que la création, la récupération et la modification. Ces opérations élémentaires sont totalement gérées par le Django REST Framework.

TODO: certaines actions devraient nécessiter d'avoir les droits dans le bar root, notamment la modification d'utilisateurs (nom, prénom et email).

La réinitialisation de mot de passe est accessible à tout le monde. On passe un email et l'utilisateur correspondant reçoit un nouveau mot de passe (aléatoire) sur cette adresse. La route de réinitialisation n'est pas montée sur /user/, mais directement sur la racine de l'API.

Utilisateur fictif

Il existe un utilisateur fictif qui sert essentiellement à gérer la comptabilité des bars. Il possède un compte dans chaque bar (ce compte est créé la première fois qu'il est nécessaire).
On y accède avec la fonction get_default_user().

Dès qu'un bar fait une appro ou un inventaire, le solde du compte bar est mis à jour. Pour plus de détails, voir la page relative aux transactions.