source.homepage

  1from dictionary.sql import user_passwords_query, check_user_passwords_quantity_query
  2from dictionary.vars import to_remove_list
  3from functions.check_password_health import PasswordValidator
  4from functions.query_executor import QueryExecutor
  5from functions.login import Login
  6import streamlit as st
  7
  8
  9class Home:
 10    """
 11    Classe com funções para exibição de dados na página inicial.
 12    """
 13
 14    def general_information(self):
 15        """
 16        Realiza a consulta da quantidade de senhas cadastradas pelo usuário.
 17
 18        Returns
 19        -------
 20        user_passwords_quantity
 21            A quantidade de senhas que o usuário já cadastrou.
 22        """
 23        logged_user, logged_user_password = Login().get_user_data(return_option="user_login_password")
 24
 25        query_executor = QueryExecutor()
 26
 27        user_passwords_quantity = query_executor.simple_consult_query(check_user_passwords_quantity_query, params=(logged_user, logged_user_password))
 28        user_passwords_quantity = query_executor.treat_simple_result(user_passwords_quantity, to_remove_list)
 29
 30        return user_passwords_quantity
 31
 32    def password_analysis(self):
 33        """
 34        Realiza a análise das senhas.
 35
 36        Returns
 37        -------
 38        very_low : int
 39            Quantidade de senhas classificadas como "Muito Fraca".
 40        low : int
 41            Quantidade de senhas classificadas como "Fraca".
 42        medium : int
 43            Quantidade de senhas classificadas como "Média".
 44        strong : int
 45            Quantidade de senhas classificadas como "Forte".
 46        very_strong : int
 47            Quantidade de senhas classificadas como "Muito Forte".
 48        """
 49        logged_user, logged_user_password = Login().get_user_data(return_option="user_login_password")
 50
 51        query_executor = QueryExecutor()
 52        password_validator = PasswordValidator()
 53
 54        user_passwords = query_executor.complex_consult_query(user_passwords_query, params=(logged_user, logged_user_password))
 55        user_passwords = query_executor.treat_numerous_simple_result(user_passwords, to_remove_list)
 56
 57        empty_password = ''
 58        password_strength = ''
 59
 60        very_low = 0
 61        low = 0
 62        medium = 0
 63        strong = 0
 64        very_strong = 0
 65
 66        for i in range(0, len(user_passwords)):
 67
 68            empty_password = user_passwords[i]
 69            password_strength = password_validator.check_password_strength(empty_password)
 70
 71            if password_strength == "Muito Fraca":
 72                very_low += 1
 73            elif password_strength == "Fraca":
 74                low += 1
 75            elif password_strength == "Média":
 76                medium += 1
 77            elif password_strength == "Forte":
 78                strong += 1
 79            elif password_strength == "Muito Forte":
 80                very_strong += 1
 81
 82        return very_low, low, medium, strong, very_strong
 83
 84    def main_menu(self):
 85        """
 86        Exibe a página inicial da aplicação.
 87        """
 88        col1, col2, col3 = st.columns(3)
 89
 90        with col1:
 91            st.header(body=":closed_lock_with_key: Streamfort")
 92
 93        st.divider()
 94
 95        col4, col5, col6 = st.columns(3)
 96
 97        with col5:
 98
 99            user_passwords_quantity = int(self.general_information())
100
101            if user_passwords_quantity >= 1:
102                get_very_low, get_low, get_medium, get_strong, get_very_strong = self.password_analysis()
103
104                with st.expander(label="Análise de Senhas", expanded=True):
105                    st.info(body="Senhas cadastradas: {}".format(user_passwords_quantity))
106                    st.divider()
107                    st.error(body="Senhas muito fracas: {}.".format(get_very_low))
108                    st.warning(body="Senhas fracas: {}.".format(get_low))
109                    st.info(body="Senhas médias: {}.".format(get_medium))
110                    st.info(body="Senhas fortes: {}.".format(get_strong))
111                    st.success(body="Senhas muito fortes: {}.".format(get_very_strong))
112
113            elif user_passwords_quantity == 0:
114                st.warning(body="Você ainda não possui senhas cadastradas.")
class Home:
 10class Home:
 11    """
 12    Classe com funções para exibição de dados na página inicial.
 13    """
 14
 15    def general_information(self):
 16        """
 17        Realiza a consulta da quantidade de senhas cadastradas pelo usuário.
 18
 19        Returns
 20        -------
 21        user_passwords_quantity
 22            A quantidade de senhas que o usuário já cadastrou.
 23        """
 24        logged_user, logged_user_password = Login().get_user_data(return_option="user_login_password")
 25
 26        query_executor = QueryExecutor()
 27
 28        user_passwords_quantity = query_executor.simple_consult_query(check_user_passwords_quantity_query, params=(logged_user, logged_user_password))
 29        user_passwords_quantity = query_executor.treat_simple_result(user_passwords_quantity, to_remove_list)
 30
 31        return user_passwords_quantity
 32
 33    def password_analysis(self):
 34        """
 35        Realiza a análise das senhas.
 36
 37        Returns
 38        -------
 39        very_low : int
 40            Quantidade de senhas classificadas como "Muito Fraca".
 41        low : int
 42            Quantidade de senhas classificadas como "Fraca".
 43        medium : int
 44            Quantidade de senhas classificadas como "Média".
 45        strong : int
 46            Quantidade de senhas classificadas como "Forte".
 47        very_strong : int
 48            Quantidade de senhas classificadas como "Muito Forte".
 49        """
 50        logged_user, logged_user_password = Login().get_user_data(return_option="user_login_password")
 51
 52        query_executor = QueryExecutor()
 53        password_validator = PasswordValidator()
 54
 55        user_passwords = query_executor.complex_consult_query(user_passwords_query, params=(logged_user, logged_user_password))
 56        user_passwords = query_executor.treat_numerous_simple_result(user_passwords, to_remove_list)
 57
 58        empty_password = ''
 59        password_strength = ''
 60
 61        very_low = 0
 62        low = 0
 63        medium = 0
 64        strong = 0
 65        very_strong = 0
 66
 67        for i in range(0, len(user_passwords)):
 68
 69            empty_password = user_passwords[i]
 70            password_strength = password_validator.check_password_strength(empty_password)
 71
 72            if password_strength == "Muito Fraca":
 73                very_low += 1
 74            elif password_strength == "Fraca":
 75                low += 1
 76            elif password_strength == "Média":
 77                medium += 1
 78            elif password_strength == "Forte":
 79                strong += 1
 80            elif password_strength == "Muito Forte":
 81                very_strong += 1
 82
 83        return very_low, low, medium, strong, very_strong
 84
 85    def main_menu(self):
 86        """
 87        Exibe a página inicial da aplicação.
 88        """
 89        col1, col2, col3 = st.columns(3)
 90
 91        with col1:
 92            st.header(body=":closed_lock_with_key: Streamfort")
 93
 94        st.divider()
 95
 96        col4, col5, col6 = st.columns(3)
 97
 98        with col5:
 99
100            user_passwords_quantity = int(self.general_information())
101
102            if user_passwords_quantity >= 1:
103                get_very_low, get_low, get_medium, get_strong, get_very_strong = self.password_analysis()
104
105                with st.expander(label="Análise de Senhas", expanded=True):
106                    st.info(body="Senhas cadastradas: {}".format(user_passwords_quantity))
107                    st.divider()
108                    st.error(body="Senhas muito fracas: {}.".format(get_very_low))
109                    st.warning(body="Senhas fracas: {}.".format(get_low))
110                    st.info(body="Senhas médias: {}.".format(get_medium))
111                    st.info(body="Senhas fortes: {}.".format(get_strong))
112                    st.success(body="Senhas muito fortes: {}.".format(get_very_strong))
113
114            elif user_passwords_quantity == 0:
115                st.warning(body="Você ainda não possui senhas cadastradas.")

Classe com funções para exibição de dados na página inicial.

def general_information(self):
15    def general_information(self):
16        """
17        Realiza a consulta da quantidade de senhas cadastradas pelo usuário.
18
19        Returns
20        -------
21        user_passwords_quantity
22            A quantidade de senhas que o usuário já cadastrou.
23        """
24        logged_user, logged_user_password = Login().get_user_data(return_option="user_login_password")
25
26        query_executor = QueryExecutor()
27
28        user_passwords_quantity = query_executor.simple_consult_query(check_user_passwords_quantity_query, params=(logged_user, logged_user_password))
29        user_passwords_quantity = query_executor.treat_simple_result(user_passwords_quantity, to_remove_list)
30
31        return user_passwords_quantity

Realiza a consulta da quantidade de senhas cadastradas pelo usuário.

Returns
  • user_passwords_quantity: A quantidade de senhas que o usuário já cadastrou.
def password_analysis(self):
33    def password_analysis(self):
34        """
35        Realiza a análise das senhas.
36
37        Returns
38        -------
39        very_low : int
40            Quantidade de senhas classificadas como "Muito Fraca".
41        low : int
42            Quantidade de senhas classificadas como "Fraca".
43        medium : int
44            Quantidade de senhas classificadas como "Média".
45        strong : int
46            Quantidade de senhas classificadas como "Forte".
47        very_strong : int
48            Quantidade de senhas classificadas como "Muito Forte".
49        """
50        logged_user, logged_user_password = Login().get_user_data(return_option="user_login_password")
51
52        query_executor = QueryExecutor()
53        password_validator = PasswordValidator()
54
55        user_passwords = query_executor.complex_consult_query(user_passwords_query, params=(logged_user, logged_user_password))
56        user_passwords = query_executor.treat_numerous_simple_result(user_passwords, to_remove_list)
57
58        empty_password = ''
59        password_strength = ''
60
61        very_low = 0
62        low = 0
63        medium = 0
64        strong = 0
65        very_strong = 0
66
67        for i in range(0, len(user_passwords)):
68
69            empty_password = user_passwords[i]
70            password_strength = password_validator.check_password_strength(empty_password)
71
72            if password_strength == "Muito Fraca":
73                very_low += 1
74            elif password_strength == "Fraca":
75                low += 1
76            elif password_strength == "Média":
77                medium += 1
78            elif password_strength == "Forte":
79                strong += 1
80            elif password_strength == "Muito Forte":
81                very_strong += 1
82
83        return very_low, low, medium, strong, very_strong

Realiza a análise das senhas.

Returns
  • very_low (int): Quantidade de senhas classificadas como "Muito Fraca".
  • low (int): Quantidade de senhas classificadas como "Fraca".
  • medium (int): Quantidade de senhas classificadas como "Média".
  • strong (int): Quantidade de senhas classificadas como "Forte".
  • very_strong (int): Quantidade de senhas classificadas como "Muito Forte".
def main_menu(self):
 85    def main_menu(self):
 86        """
 87        Exibe a página inicial da aplicação.
 88        """
 89        col1, col2, col3 = st.columns(3)
 90
 91        with col1:
 92            st.header(body=":closed_lock_with_key: Streamfort")
 93
 94        st.divider()
 95
 96        col4, col5, col6 = st.columns(3)
 97
 98        with col5:
 99
100            user_passwords_quantity = int(self.general_information())
101
102            if user_passwords_quantity >= 1:
103                get_very_low, get_low, get_medium, get_strong, get_very_strong = self.password_analysis()
104
105                with st.expander(label="Análise de Senhas", expanded=True):
106                    st.info(body="Senhas cadastradas: {}".format(user_passwords_quantity))
107                    st.divider()
108                    st.error(body="Senhas muito fracas: {}.".format(get_very_low))
109                    st.warning(body="Senhas fracas: {}.".format(get_low))
110                    st.info(body="Senhas médias: {}.".format(get_medium))
111                    st.info(body="Senhas fortes: {}.".format(get_strong))
112                    st.success(body="Senhas muito fortes: {}.".format(get_very_strong))
113
114            elif user_passwords_quantity == 0:
115                st.warning(body="Você ainda não possui senhas cadastradas.")

Exibe a página inicial da aplicação.