colibri.assistant.ai / pages /reset_password.py
Gouzi Mohaled
Ajoute des fichiers et sous-dossiers supplémentaires
fe4792e
raw
history blame
2.31 kB
import streamlit as st
import sys
import os
import time
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from utils.password_reset import verify_reset_token, reset_password
# Configuration de la page pour cacher complètement la sidebar
st.set_page_config(
page_title="Réinitialisation du mot de passe",
page_icon="🔒",
layout="centered",
initial_sidebar_state="collapsed"
)
# Cacher tous les éléments de la sidebar et le menu hamburger
hide_streamlit_style = """
<style>
#MainMenu {visibility: hidden;}
header {visibility: hidden;}
.css-1544g2n {display: none;}
.css-14xtw13 e8zbici0 {display: none;}
section[data-testid="stSidebar"] {display: none;}
</style>
"""
st.markdown(hide_streamlit_style, unsafe_allow_html=True)
# Titre de la page
st.title("Réinitialisation du mot de passe")
# Récupérer le token depuis l'URL
token = st.query_params.get("token", None)
if not token:
st.error("Token de réinitialisation manquant.")
st.stop()
# Vérifier la validité du token
valid, user_id = verify_reset_token(token)
if not valid:
st.error("Le lien de réinitialisation est invalide ou a expiré.")
time.sleep(3) # Attendre 3 secondes
st.switch_page("app.py") # Rediriger vers la page de connexion
st.stop()
# Formulaire de nouveau mot de passe
with st.form("reset_password_form"):
new_password = st.text_input("Nouveau mot de passe", type="password")
confirm_password = st.text_input("Confirmez le mot de passe", type="password")
submitted = st.form_submit_button("Réinitialiser le mot de passe")
if submitted:
if new_password != confirm_password:
st.error("Les mots de passe ne correspondent pas.")
elif len(new_password) < 8:
st.error("Le mot de passe doit contenir au moins 8 caractères.")
else:
success, message = reset_password(token, new_password)
if success:
st.success("Votre mot de passe a été mis à jour avec succès.")
st.info("Redirection vers la page de connexion...")
time.sleep(3) # Attendre 3 secondes
st.switch_page("app.py") # Rediriger vers la page de connexion
else:
st.error(message)