source.app

 1import streamlit as st
 2from functions.login import Login
 3from functions.login import Login
 4from functions.query_executor import QueryExecutor
 5from source.archives import Archives
 6from source.bank_accounts import BankAccount
 7from source.credit_cards import CreditCards
 8from source.homepage import Home
 9from source.passwords import Passwords
10from source.configuration.main import Configuration
11from source.utilities.main import Utilities
12from time import sleep
13
14
15def logout():
16    """
17    Realiza o logout da aplicação, deletando os registros de sessão do usuário.
18    """
19    logged_user_name, logged_user_document = Login().get_user_data(return_option="user_doc_name")
20    logged_user, logged_user_password = Login().get_user_data(return_option="user_login_password")
21
22    delete_session_query = """DELETE usuarios_logados FROM usuarios_logados WHERE nome_completo = %s AND documento = %s;"""
23    delete_session = QueryExecutor().insert_query(query=delete_session_query, values=(logged_user_name, logged_user_document), success_message="Logout efetuado.", error_message="Erro ao efetuar logout:")
24
25    log_query = '''INSERT INTO seguranca.logs_atividades (usuario_log, tipo_log, conteudo_log) VALUES ( %s, %s, %s);'''
26    log_values = (logged_user, "Logoff", "O usuário realizou logoff.")
27    QueryExecutor().insert_query(log_query, log_values, "Log gravado.", "Erro ao gravar log:")
28
29    with st.spinner("Aguarde um momento..."):
30        sleep(1.25)
31        st.toast("Saindo do sistema...")
32        sleep(1.25)
33
34    st.session_state.is_logged_in = False
35    st.rerun()
36
37
38def HomePage():
39    """
40    Exibe a barra lateral e seu menu de opções.
41    """
42    sidebar = st.sidebar
43
44    with sidebar:
45        logged_user, logged_user_password = Login().get_user_data(return_option="user_doc_name")
46        name, sex = Login().check_user(logged_user, logged_user_password)
47        Login().show_user(name, sex)
48
49    sidebar_menu_dictionary = {
50        "Selecione uma opção": Home(),
51        "Senhas": Passwords(),
52        "Arquivos": Archives(),
53        "Cartões": CreditCards(),
54        "Contas Bancárias": BankAccount(),
55        "Configurações": Configuration(),
56        "Utilitários": Utilities()
57    }
58
59    sidebar_choice = st.sidebar.selectbox(label="Menu", options=sidebar_menu_dictionary.keys())
60
61    sidebar.divider()
62
63    sidebar_reload_button = sidebar.button(label=":cd: Recarregar")
64    sidebar_logoff_button = sidebar.button(label=":lock: Sair")
65
66    if sidebar_reload_button:
67        with sidebar:
68            with st.spinner(text="Recarregando..."):
69                sleep(2.5)
70                st.rerun()
71
72    if sidebar_logoff_button:
73
74        with sidebar:
75            logout()
76
77    if sidebar_choice:
78        call_interface = sidebar_menu_dictionary[sidebar_choice]
79        call_interface.main_menu()
def logout():
16def logout():
17    """
18    Realiza o logout da aplicação, deletando os registros de sessão do usuário.
19    """
20    logged_user_name, logged_user_document = Login().get_user_data(return_option="user_doc_name")
21    logged_user, logged_user_password = Login().get_user_data(return_option="user_login_password")
22
23    delete_session_query = """DELETE usuarios_logados FROM usuarios_logados WHERE nome_completo = %s AND documento = %s;"""
24    delete_session = QueryExecutor().insert_query(query=delete_session_query, values=(logged_user_name, logged_user_document), success_message="Logout efetuado.", error_message="Erro ao efetuar logout:")
25
26    log_query = '''INSERT INTO seguranca.logs_atividades (usuario_log, tipo_log, conteudo_log) VALUES ( %s, %s, %s);'''
27    log_values = (logged_user, "Logoff", "O usuário realizou logoff.")
28    QueryExecutor().insert_query(log_query, log_values, "Log gravado.", "Erro ao gravar log:")
29
30    with st.spinner("Aguarde um momento..."):
31        sleep(1.25)
32        st.toast("Saindo do sistema...")
33        sleep(1.25)
34
35    st.session_state.is_logged_in = False
36    st.rerun()

Realiza o logout da aplicação, deletando os registros de sessão do usuário.

def HomePage():
39def HomePage():
40    """
41    Exibe a barra lateral e seu menu de opções.
42    """
43    sidebar = st.sidebar
44
45    with sidebar:
46        logged_user, logged_user_password = Login().get_user_data(return_option="user_doc_name")
47        name, sex = Login().check_user(logged_user, logged_user_password)
48        Login().show_user(name, sex)
49
50    sidebar_menu_dictionary = {
51        "Selecione uma opção": Home(),
52        "Senhas": Passwords(),
53        "Arquivos": Archives(),
54        "Cartões": CreditCards(),
55        "Contas Bancárias": BankAccount(),
56        "Configurações": Configuration(),
57        "Utilitários": Utilities()
58    }
59
60    sidebar_choice = st.sidebar.selectbox(label="Menu", options=sidebar_menu_dictionary.keys())
61
62    sidebar.divider()
63
64    sidebar_reload_button = sidebar.button(label=":cd: Recarregar")
65    sidebar_logoff_button = sidebar.button(label=":lock: Sair")
66
67    if sidebar_reload_button:
68        with sidebar:
69            with st.spinner(text="Recarregando..."):
70                sleep(2.5)
71                st.rerun()
72
73    if sidebar_logoff_button:
74
75        with sidebar:
76            logout()
77
78    if sidebar_choice:
79        call_interface = sidebar_menu_dictionary[sidebar_choice]
80        call_interface.main_menu()

Exibe a barra lateral e seu menu de opções.