File size: 1,589 Bytes
5b2d4e7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import streamlit as st
from werkzeug.security import generate_password_hash
import os
from dotenv import load_dotenv

import sys


def sign_up(navigate_to):
    db_manager = st.session_state.get("db_manager")
    st.title("Inscription")

    # Champs obligatoires
    login = st.text_input("Pseudo")
    email = st.text_input("Email")
    password = st.text_input("Mot de passe", type="password")
    confirm_password = st.text_input("Confirmer le mot de passe", type="password")

    # Lien pour rediriger vers la page de connexion
    if st.button("Déjà un compte ? connectez-vous."):
        navigate_to("connexion")

    # Vérification des champs obligatoires
    if st.button("Créer un compte"):
        if not login or not email or not password or not confirm_password:
            st.error("Tous les champs sont obligatoires.")
        elif password != confirm_password:
            st.error("Les mots de passe ne correspondent pas.")
        else:
            hashed_password = generate_password_hash(password)
            try:
                # Insérer l'utilisateur dans la base de données
                db_manager.insert_data_from_dict(
                    "utilisateurs",
                    [{"login": login, "email": email, "mot_de_passe": hashed_password}],
                )

                st.success("Compte créé avec succès. Vous pouvez vous connecter.")
                st.session_state["current_page"] = "connexion"
            except Exception as e:
                st.error(f"Erreur lors de l'inscription : {e}")