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()
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)
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()