def post(self): """Register a new user.""" req_body = request.get_json() not_found = [] required_fields = ("email", "password") for field in required_fields: if field not in req_body.keys(): not_found.append(field) if not_found: return ( f"Required field(s) not found:" f" {', '.join(field for field in not_found)}", 400, ) # Check if email is valid user_email = req_body["email"] try: validate_email(user_email) except ValidationError: return "Incorrect format for field: email", 400 # Check if password is secure enough user_password = req_body["password"] try: validate_password(user_password) except ValidationError: return ( "Password is not secure enough: include at least one uppercase," " one lowercase, one number and one symbol, and keep it between" " 12 and 255 characters long. Whitespace is not allowed.", 400, ) salt = generate_random_salt() hashed_password = hash_password(user_password, salt) # noinspection PyArgumentList new_user = User( email=user_email, password=hashed_password, salt=str(salt, encoding=ENCODING), ) db.session.add(new_user) try: db.session.commit() except IntegrityError: return {}, 409 apikey = get_or_create_api_key(new_user) return apikey, 201
def validate_email(self, value): """ Validate a user's email address. :param value: Value of the user's email address. :return: `value` on success. :raises: ValueError if value is incorrect. """ validate_email(value) return value
def patch(self, user): """Edit individual fields on a user. Non-admins can only edit some fields on their own account. """ req_data = request.get_json() invalid_fields = [] modified = 0 for key in req_data: if not hasattr(user, key) or key in ("id", "salt"): invalid_fields.append(key) continue if not invalid_fields: if key == "email": new_email = req_data[key] try: validate_email(new_email) except ValidationError: return "Invalid format for email address.", 400 user.email = new_email modified += 1 elif key == "password": new_password = req_data[key] try: validate_password(new_password) except ValidationError: return "New password is not secure enough or too long.", 400 new_salt = generate_random_salt() user.password = hash_password(new_password, new_salt) user.salt = new_salt modified += 1 elif key == "lemmas": lemma_refs = req_data[key] if isinstance(lemma_refs[0], int): lemma_filter = Lemma.id.in_(lemma_refs) else: lemma_filter = Lemma.content.in_(lemma_refs) lemmas = Lemma.query.filter(lemma_filter) user.lemmas.extend(lemmas) modified += 1 if invalid_fields: return f"Invalid fields: {', '.join(invalid_fields)}", 400 if not modified: return "No valid field specified.", 400 db.session.commit() return {}, 204
def sign_up_user(): """ [서비스] 유저 회원가입 Author: Mark Hasung Kim Returns: { "custom_message": "SERVICE_USER_CREATED, "result": "POST } """ connection = None try: data = request.json if 'username' not in data: raise ApiException(400, INVALID_INPUT) if 'email' not in data: raise ApiException(400, INVALID_INPUT) if 'password' not in data: raise ApiException(400, INVALID_INPUT) if 'userTypeId' not in data: raise ApiException(400, INVALID_INPUT) if not validate_password(data['password']): raise ApiException(400, INVALID_PASSWORD) if not validate_email(data['email']): raise ApiException(400, INVALID_EMAIL) user_info = { 'username': data['username'], 'email': data['email'], 'password': data['password'], 'user_type_id': int(data['userTypeId']), 'phone_number': '', } connection = connect_db() user_service = UserService() user_service.create_user(user_info, connection) connection.commit() return {"custom_message": "SERVICE_USER_CREATED", "result": "POST"} except ApiException as e: if connection: connection.rollback() raise e finally: if connection: connection.close()
def test_ascii_free_email(self): email = self.factory.ascii_free_email() validate_email(email) assert email.split('@')[0] == 'joaosimoes'
def test_ascii_safe_email(self): email = self.factory.ascii_safe_email() validate_email(email) assert email.split('@')[0] == 'vitoriamagalhaes'
def test_ascii_free_email(self, faker): email = faker.ascii_free_email() validate_email(email) assert email.split('@')[0] == 'aleksandrsmirnov'
def test_ascii_company_email(self, faker): email = faker.ascii_company_email() validate_email(email) assert email.split('@')[0] == 'andrecaua'
def test_ascii_safe_email(self, faker): email = faker.ascii_safe_email() validate_email(email) assert email.split('@')[0] == 'vitoriamagalhaes'
value = control.cmb.get_active() if field.required and value == -1: raise ValidationError(_("Este campo es requerido")) else: if control.cmb.get_active() == -1: return None elif not control.choices: return None return control.choices[value] elif isinstance(field, EmailField): if not field.required and value == "": return value else: if not validate_email(value): raise ValidationError(_("Debe introducir un correo valido")) else: return value elif isinstance(field, BooleanField): return control.check.get_active() elif isinstance(field, CharField): return control.entry.get_text() elif isinstance(field, MultipleChoiceField): selected = control.cmb_multiple.get_selected() if field.required and not selected: raise ValidationError(_("Este campo es requerido")) else:
def test_email(self): email = self.fake.email() validate_email(email)
def test_ascii_free_email(self, faker): email = faker.ascii_free_email() validate_email(email) assert email.split("@")[0] == "agamushviqelovsetov"
def test_ascii_company_email(self, faker): email = faker.ascii_company_email() validate_email(email) assert email.split("@")[0] == "asyl"
def test_ascii_free_email(self, faker): email = faker.ascii_free_email() validate_email(email) assert email.split("@")[0] == "fabienne"
def test_ascii_company_email(self): email = self.factory.ascii_company_email() validate_email(email) assert email.split('@')[0] == 'andrecaua'
def validate_value(self, value): super(EmailFormField, self).validate_value(value) if self.required: validators.validate_email(value)
def test_ascii_free_email(self): email = self.fake.ascii_free_email() validate_email(email) assert email.split('@')[0] == 'fabienne'
def test_email(self, faker): email = faker.email() validate_email(email)
def test_ascii_company_email(self): email = self.fake.ascii_company_email() validate_email(email) assert email.split('@')[0] == 'asyl'
def test_ascii_free_email(self, faker): email = faker.ascii_free_email() validate_email(email) assert email.split('@')[0] == 'joaosimoes'
# import time from time import time # import datetime from datetime import date # pip module from camelcase import CamelCase # import custom module # go to validator to check out how to import custom modules. import validators from validators import validate_email email = 'test#test.com' if validate_email(email): print('Email is valid') else: print('email is bad') # today = datetime.date.today() today = date.today() # print(today) # timestamp = time.time() timestamp = time() # print(timestamp) c = CamelCase() # print(c.hump('hello there world')) # outputs Hello There World
def test_ascii_safe_email(self, faker): email = faker.ascii_safe_email() validate_email(email) assert email.split('@')[0] == 'ivanivanov'
def test_email(self): email = self.factory.email() validate_email(email)
def test_ascii_company_email(self, faker): email = faker.ascii_company_email() validate_email(email) assert email.split('@')[0] == 'sergekuznetsov'
def test_ascii_safe_email(self): email = self.factory.ascii_safe_email() validate_email(email) assert email.split('@')[0] == 'asyl'