Esempio n. 1
0
 def test_admin_features_exception(self, mock_print, mock_menu, mock_sys):
     admin = Admin()
     admin.admin_features()
     mock_sys.exit.assert_called_once()
     self.assertEqual(mock_print.call_count, 2)
Esempio n. 2
0
def main():
    """
    this method is used to call main menu for login
    """
    conn = ConnectDb()
    try:
        os.system('clear')
        # select role for login
        print("login as:\n")
        menu = Menu()
        roles = [x.name for x in Role]
        roles.extend([str(BackButton.EXIT.name)])
        role = menu.draw_menu(roles)
        role_id = Role[role].value
        input()

        # get user name and password for login
        user_name = input("enter user name: ")
        password = getpass()

        # check user authentication
        result = conn.get_user_info(user_name)
        flag = True
        auth_flag = True
        if result is not None:
            os.system('clear')
            actual_pass = decrypt_pass(result[1].encode())
            if actual_pass == password:
                flag = False
                if role_id == int(Role.EMPLOYEE.value):
                    auth_flag = False
                    emp = Employee()
                    emp.employee_id = result[0]
                    emp.employee_features()
                else:
                    user_role = conn.get_user_role(result[0], role_id)
                    if user_role is not None:
                        auth_flag = False
                        if role_id == int(Role.SUPERVISOR.value):
                            pass
                            supervisor = Supervisor()
                            supervisor.supervisor_id = result[0]
                            supervisor.supervisor_features()
                        elif role_id == int(Role.ADMIN.value):
                            pass
                            member = Admin()
                            member.admin_id = result[0]
                            member.admin_features()
        if flag:
            print(Color.F_Red + 'wrong credentials' + Base.END)
            input()
            main()
        if auth_flag:
            print(Color.F_Red + 'you are not authorized' + Base.END)
            input()
            main()

    except Exception as e:
        print(e)
        sys.exit()
    finally:
        conn.close_conn()