Esempio n. 1
0
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
Esempio n. 2
0
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 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))
Esempio n. 4
0
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
Esempio n. 6
0
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
Esempio n. 7
0
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
Esempio n. 8
0
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