Files

39 lines
1.8 KiB
Python

import streamlit as st
from api_client import APIClient
def render_profile_view(api_client: APIClient):
st.title("👤 Meu Perfil & Segurança")
user_info = st.session_state.get('user', {})
c1, c2 = st.columns([1, 1])
with c1:
with st.container(border=True):
st.subheader("📋 Dados da Conta")
st.write(f"**Nome:** {user_info.get('nome', 'N/A')}")
st.write(f"**E-mail:** {user_info.get('email', 'N/A')}")
st.write(f"**Perfil:** `{user_info.get('role', 'user').upper()}`")
st.write(f"**Status da Conta:** {'🟢 Ativo' if user_info.get('ativo') else '🔴 Inativo'}")
with c2:
with st.container(border=True):
st.subheader("🔒 Alterar Minha Senha")
old_pass = st.text_input("Senha Atual", type="password", key="pwd_old")
new_pass = st.text_input("Nova Senha (min 6 caracteres)", type="password", key="pwd_new")
confirm_pass = st.text_input("Confirmar Nova Senha", type="password", key="pwd_conf")
if st.button("🔑 Atualizar Senha", type="primary", use_container_width=True):
if not old_pass or not new_pass or not confirm_pass:
st.error("Preencha todos os campos de senha.")
elif new_pass != confirm_pass:
st.error("A nova senha e a confirmação não coincidem.")
elif len(new_pass) < 6:
st.error("A nova senha deve ter no mínimo 6 caracteres.")
else:
success, msg = api_client.change_password(old_pass, new_pass)
if success:
st.success("Senha alterada com sucesso! Faça login com sua nova senha.")
else:
st.error(msg)