def create_new_user(self, request): validator = Validator(request) email = validator.email() password = validator.new_password() check_validator(validator) user = None action = None with self.create_storage() as storage: by_email = storage.get_user_by_email(email) if by_email and by_email.email == email: raise servicesexceptions.parameter_error( 'email', 'Email is already registered') user = User(email, util.hash(password), not self.activate_by_email) if self.activate_by_email: action = user.enable_action(ActionType.ACTIVATE) storage.add(user) if self.activate_by_email: self.mail.send_activate(self.main_domain, user.email, action.token) return user
def user_set_password(self, request): validator = Validator(request) token = validator.token() password = validator.new_password() check_validator(validator) with self.create_storage() as storage: user = storage.get_user_by_token(ActionType.PASSWORD, token) if not user: raise servicesexceptions.bad_request('Invalid password token') user.password_hash = util.hash(password) self.mail.send_set_password(user.email) action = storage.get_action(token) storage.delete(action)
def user_set_password(self, request): validator = Validator(request) token = validator.token() password = validator.new_password() errors = validator.errors if errors: message = ", ".join(errors) raise servicesexceptions.bad_request(message) with self.create_storage() as storage: user = storage.get_user_by_token(ActionType.PASSWORD, token) if not user: raise servicesexceptions.forbidden('Invalid password token') user.password_hash = util.hash(password) self.mail.send_set_password(user.email) action = storage.get_action(token) storage.delete(action)
def create_new_user(self, request): validator = Validator(request) email = validator.email() password = validator.new_password() check_validator(validator) user = None action = None with self.create_storage() as storage: by_email = storage.get_user_by_email(email) if by_email and by_email.email == email: raise servicesexceptions.parameter_error('email', 'Email is already registered') user = User(email, util.hash(password), not self.activate_by_email) if self.activate_by_email: action = user.enable_action(ActionType.ACTIVATE) storage.add(user) if self.activate_by_email: self.mail.send_activate(self.main_domain, user.email, action.token) return user