Services Api_Ihm Src Auth Routes

Version: 1.2.0 (2023-12-20) Auteur: Kahina et franck - Groupe 2 Commit: bigmoletos@yopmail.com

Routes d’authentification pour l’application de qualité de l’air.

Ce module gère l’ensemble des fonctionnalités d’authentification et d’autorisation de l’application, notamment: - Connexion et déconnexion des utilisateurs - Inscription de nouveaux utilisateurs - Gestion des utilisateurs par l’administrateur

Architecture:

  1. Authentification: - Connexion sécurisée - Gestion des sessions - Protection des routes

  2. Gestion utilisateurs: - Inscription avec validation - Administration des comptes - Suppression sécurisée

  3. Sécurité: - Hachage des mots de passe - Contrôle des accès - Protection CSRF

Routes:

/loginConnexion utilisateur
  • GET: Affiche le formulaire

  • POST: Traite la connexion

/registerInscription
  • GET: Affiche le formulaire

  • POST: Crée le compte

/logoutDéconnexion
  • GET: Termine la session

/adminInterface admin
  • GET: Liste les utilisateurs

  • Accès restreint aux admins

Dépendances:

  • flask : Framework web

  • flask_login : Gestion authentification

  • database.models : Modèles SQLAlchemy

services.api_ihm.src.auth.routes.login()[source]

Gère la connexion des utilisateurs à l’application.

Cette route: 1. Affiche le formulaire de connexion (GET) 2. Authentifie l’utilisateur (POST) 3. Crée la session utilisateur

Methods:

GET:

Affiche le formulaire de connexion

POST:

Traite les informations de connexion

Parameters:

usernamestr

Nom d’utilisateur (via form)

passwordstr

Mot de passe (via form)

Returns:

GET:

Template: login.html

POST:

Redirect: Page d’accueil si succès Template: login.html avec erreur si échec

Version: 1.0.0 (2024-03-19 15:35)

services.api_ihm.src.auth.routes.register()[source]

Gère l’inscription des nouveaux utilisateurs.

Cette route: 1. Affiche le formulaire d’inscription (GET) 2. Valide les données soumises (POST) 3. Crée le compte utilisateur

Methods:

GET:

Affiche le formulaire d’inscription

POST:

Traite la création du compte

Parameters:

usernamestr

Nom d’utilisateur unique (via form)

emailstr

Email unique (via form)

passwordstr

Mot de passe (via form)

Returns:

GET:

Template: register.html

POST:

Redirect: Page de connexion si succès Template: register.html avec erreur si échec

Notes:

  • Vérifie l’unicité du username

  • Vérifie l’unicité de l’email

  • Hash le mot de passe

  • Gère les erreurs de BD

Version: 1.0.0 (2024-03-19 15:35)

services.api_ihm.src.auth.routes.logout()[source]

Déconnecte l’utilisateur actuel.

Cette route: 1. Termine la session utilisateur 2. Nettoie les cookies 3. Redirige vers la page de connexion

Decorators:

login_required:

Assure qu’un utilisateur est connecté

Returns:

Redirect:

Page de connexion

services.api_ihm.src.auth.routes.admin()[source]

Affiche l’interface d’administration des utilisateurs.

Cette route: 1. Vérifie les droits d’administration 2. Liste tous les utilisateurs 3. Permet la gestion des comptes

Decorators:

login_required:

Assure qu’un utilisateur est connecté

Returns:

Template:

admin.html avec liste des utilisateurs

Redirect:

Page d’accueil si non admin

Notes:

  • Accès restreint aux administrateurs

  • Affiche tous les utilisateurs

  • Permet ajout/suppression

services.api_ihm.src.auth.routes.add_user()[source]

Ajoute un nouvel utilisateur via l’interface admin.

services.api_ihm.src.auth.routes.delete_user(user_id)[source]

Supprime un utilisateur via l’interface admin.

Cette route: 1. Vérifie les droits d’administration 2. Valide l’existence de l’utilisateur 3. Supprime le compte et ses données

Decorators:

login_required:

Assure qu’un utilisateur est connecté

Parameters:

user_idint

ID de l’utilisateur à supprimer

Returns:

JSON:

Message de succès (200) Erreur 403 si non admin Erreur 404 si utilisateur non trouvé Erreur 400 si tentative de suppression de soi-même

Notes:

  • Accès restreint aux administrateurs

  • Empêche l’auto-suppression

  • Suppression en cascade des données