def login(): """Login processes handler. Log user in or shows error messages. :rtype: JSON :request args: `{'email': '*****@*****.**', 'password': '******'}` :return: - if credentials are ok and log in successful: ``{"email": "*****@*****.**", "iat": "???", "id": 6, "name": "oleg", "role": "admin", "surname": "lyashko", "token": "hashed_auth_token"}`` - if user with entered email isn't exists or password was invalid: ``{'error':'message'}`` :statuscode 401: user doesn't exist or password is invalid :statuscode 400: login data has invalid format: :statuscode 200: credentials are ok """ response = jsonify(), 401 if request.method == 'POST' and request.get_json(): data = request.get_json() valid = validator.user_login(data) if valid['status']: user = ecomap_user.get_user_by_email(data['email']) if user and user.verify_password(data['password']): login_user(user, remember=True) response = jsonify(id=user.uid, name=user.first_name, surname=user.last_name, role=user.role, iat="???", token=user.get_auth_token(), email=user.email) response.set_cookie('id', bytes(user.uid), max_age=COOKIE_MAX_AGE) response.set_cookie('role', bytes(user.role), max_age=COOKIE_MAX_AGE) if not user: logger.warning('if not user') response = jsonify(error='There is no user with given email.', logined=0, ), 401 elif not user.verify_password(data['password']): logger.warning('if not user verify') response = jsonify(error='Invalid password, try again.', logined=0), 401 else: response = Response(json.dumps(valid), mimetype='application/json'), 400 return response
def email_exist(): """Function for AJAX call from frontend. Validates unique email identifier before registering a new user :return: json with status 200 or 400 """ if request.method == 'POST' and request.get_json(): data = request.get_json() user = ecomap_user.get_user_by_email(data['email']) return jsonify(isValid=bool(user))
def login(): """Login processes handler. Log user in or shows error messages. :return: - if log in succeed: json with user data from db. Status 200 - OK - if user with entered email isn't exists or password was invalid: json with error message {'error':'message'} Status 401 - Unauthorized - if login data has invalid format: Status 400 - Bad Request """ response = jsonify(), 401 if request.method == 'POST' and request.get_json(): data = request.get_json() valid = validator.user_login(data) if valid['status']: user = ecomap_user.get_user_by_email(data['email']) if user and user.verify_password(data['password']): login_user(user, remember=True) response = jsonify(id=user.uid, name=user.first_name, surname=user.last_name, role=user.role, iat="???", token=user.get_auth_token(), email=user.email) if not user: logger.warning('if not user') response = jsonify( error='There is no user with given email.', logined=0, ), 401 elif not user.verify_password(data['password']): logger.warning('if not user verify') response = jsonify(error='Invalid password, try again.', logined=0), 401 else: response = Response(json.dumps(valid), mimetype='application/json'), 400 return response
def login(): """Login processes handler. Log user in or shows error messages. :return: - if log in succeed: json with user data from db. Status 200 - OK - if user with entered email isn't exists or password was invalid: json with error message {'error':'message'} Status 401 - Unauthorized - if login data has invalid format: Status 400 - Bad Request """ response = jsonify(), 401 if request.method == 'POST' and request.get_json(): data = request.get_json() valid = validator.user_login(data) if valid['status']: user = ecomap_user.get_user_by_email(data['email']) if user and user.verify_password(data['password']): login_user(user, remember=True) response = jsonify(id=user.uid, name=user.first_name, surname=user.last_name, role=user.role, iat="???", token=user.get_auth_token(), email=user.email) if not user: logger.warning('if not user') response = jsonify(error='There is no user with given email.', logined=0, ), 401 elif not user.verify_password(data['password']): logger.warning('if not user verify') response = jsonify(error='Invalid password, try again.', logined=0), 401 else: response = Response(json.dumps(valid), mimetype='application/json'), 400 return response
def restore_password_request(): """Function to restore forgotten password. :rtype: JSON :request args: `{'email': '*****@*****.**'}` :return: - if credentials are ok and checking successful: ``{message='Email was sended.'}`` - if user's email isn't exists: ``{'error':'There is not such email.'}`` :statuscode 401: no email :statuscode 200: email sended """ json = request.get_json() email = json['email'] user = ecomap_user.get_user_by_email(email) if user: ecomap_user.restore_password(user) response = jsonify(message='Email was sended.'), 200 else: response = jsonify(error='There is not such email.'), 401 return response
def login(): """Login processes handler. Log user in or shows error messages. :rtype: JSON :request args: `{'email': '*****@*****.**', 'password': '******'}` :return: - if credentials are ok and log in successful: ``{"email": "*****@*****.**", "iat": "???", "id": 6, "name": "oleg", "role": "admin", "surname": "lyashko", "token": "hashed_auth_token"}`` - if user with entered email isn't exists or password was invalid: ``{'error':'message'}`` :statuscode 401: user doesn't exist or password is invalid :statuscode 400: login data has invalid format: :statuscode 200: credentials are ok """ response = jsonify(), 401 if request.method == 'POST' and request.get_json(): data = request.get_json() valid = validator.user_login(data) if valid['status']: user = ecomap_user.get_user_by_email(data['email']) if user and user.verify_password(data['password']): login_user(user, remember=True) response = jsonify(id=user.uid, name=user.first_name, surname=user.last_name, role=user.role, iat="???", token=user.get_auth_token(), email=user.email) response.set_cookie('id', bytes(user.uid), max_age=COOKIE_MAX_AGE) response.set_cookie('role', bytes(user.role), max_age=COOKIE_MAX_AGE) if not user: logger.warning('if not user') response = jsonify( error='There is no user with given email.', logined=0, ), 401 elif not user.verify_password(data['password']): logger.warning('if not user verify') response = jsonify(error='Invalid password, try again.', logined=0), 401 else: response = Response(json.dumps(valid), mimetype='application/json'), 400 return response