Exemplo n.º 1
0
    def handle_sign_in(self):
        """
        Handle logging to existing user
        """
        RootView.display_sign_menu(False)

        logged_in = False
        while not logged_in:

            login, password = RootView.get_user_login_password()
            password = PasswordService.encrypt_password(password)
            user = self.user_container.get_user(login, password)

            if user:

                logged_in = True
                if isinstance(user, Student):
                    StudentController(user).start()
                elif isinstance(user, Mentor):
                    MentorController().start()
                elif isinstance(user, Manager):
                    ManagerController(user).start()
                elif isinstance(user, Employee):
                    EmployeeController(user).start()
                elif isinstance(user, User):
                    RootView.display_error_user_singin()

            else:
                RootView.display_user_not_exist()
Exemplo n.º 2
0
    def handle_sign_up(self):
        """
        Handle creating new User
        """
        RootView.display_sign_menu(True)

        user_created = False
        while not user_created:

            login = RootView.create_user_login()
            password = RootView.create_user_password()
            hashed_password = PasswordService.encrypt_password(password)

            if self.user_container.get_user_by_login_or_email(login):
                RootView.display_user_already_exists()

            else:
                phone_number = RootView.create_user_phone_number()
                email = RootView.create_user_email()
                name = RootView.add_user_name()

                self.user_container.add_user(
                    User(login, hashed_password, phone_number, email, name))
                RootView.display_user_created(login, phone_number, email, name)
                user_created = True
                self.send_user_has_registered_succesfully_email(name, email)
Exemplo n.º 3
0
 def change_password(self, password: str, token: str):
     """
     Method changes password.
     :param password: str -> user's new password
     :param token: str -> token needed to auth
     :return: None
     """
     self.raise_exception_if_user_token_is_not_correct(token)
     self.user.password = PasswordService.encrypt_password(password)
     delattr(self.user, 'token')
     UserContainer.get_instance().save_users_to_file()