示例#1
0
def request_token():
    """
    request_token takes in email and password, returns the authentication token 

    Returns:
        [type]: [description]
    """
    if request.json is None:
        return Responses.OPERATION_FAILED()
    email = request.json.get('email', None)
    password = request.json.get('password', None)
    user = User.authenticate(email, password)
    # ensure email is confirmed
    if not user.email_confirmed:
        user.send_confirmation_email(user.email)
        return Responses.UNCONFIRMED_USER()

    if user:
        token = create_access_token(identity=user.token_identity())
        # refresh_token = create_refresh_token(identity=user.token_identity())
        response, status = res()
        set_access_cookies(response, token)
        # set_refresh_cookies(response, refresh_token)
        # identiti = get_jwt_identity()
        # print(identiti)
        # set token to httponly cookies
        return response, status
    return Responses.AUTHENTICATION_FAILED()
示例#2
0
def password_update():
    json_dict = request.json
    user = User.get_user_by_email(json_dict['email'])

    error = user.update(json_dict['password'])

    if len(error) > 0:
        return Responses.OPERATION_FAILED()
    else:
        return Responses.SUCCESS()
示例#3
0
def password_reset():
    json_dict = request.json
    email = json_dict['email']
    user = User.get_user_by_email(email)
    if not user:
        return Responses.NOT_EXIST()

    user.send_password_reset_email(email)
示例#4
0
def quiz_form():
    json_dict = request.json
    quiz = QuizForm()
    error = quiz.update(json_dict)
    print(request.json)
    # print(error)
    if len(error) > 0:
        return Responses.OPERATION_FAILED()
    return res(quiz.as_dict())
示例#5
0
def contact_us():
    json_dict = request.json
    email = json_dict['email']
    subject = json_dict['subject']
    name = json_dict['name']
    message = json_dict['message']

    User.contact_us_email(email, subject, name, message)

    return Responses.SUCCESS()
示例#6
0
def register_user():
    """
    registers a new user

    """
    json_dict = request.json
    print(json_dict)
    user = User()
    user.update_from_dict(json_dict, ['id', 'role_id', 'role'])
    existing_user = User.get_user_by_email(json_dict['email'])
    if existing_user:
        return Responses.OBJECT_EXIST()
    error = user.update()
    if len(error) > 0:
        return Responses.OPERATION_FAILED()
    user.send_confirmation_email(json_dict['email'])
    flash(
        'Thanks for registering!  Please check your email to confirm your email address.',
        'success')
    return res(user.as_dict())
示例#7
0
def update_user_information(email):
    """
    updates user by using email

    Args:
        email (string): 

    Returns:
        (string,int): user info if update succesful, otherwise response no need to update
    """
    user = User.get_user_by_email(email)
    if not user:
        return Responses.NOT_EXIST()
    if not user.email_confirmed:
        return Responses.UNCONFIRMED_USER()

    json_dict = request.json
    if len(user.update(json_dict)) > 0:  #['password']
        return Responses.OPERATION_FAILED()
    return Responses.SUCCESS()
示例#8
0
def get_current_user():
    """
    get_user retruns user info for my account page

    Returns:
        (json string, status)
    """
    identity = get_jwt_identity()
    email = User.get_email_from_identity(identity)
    if not email:
        return Responses.AUTHENTICATION_FAILED()
    user = User.get_user_by_email(email)
    return res(user.as_dict())
示例#9
0
 def wrapper(*args, **kwargs):
     # Verify if user token is valid (logginged)
     if has_request_context():
         try:
             # token = get_jwt_identity()
             # print(token)
             verify_jwt_in_request()
         except Exception as e:
             print(e)
             return Responses.AUTHENTICATION_FAILED()
         identity = get_jwt_identity()
         email = User.get_email_from_identity(identity)
         if not email:
             return Responses.AUTHENTICATION_FAILED()
         #TODO add check if email is activated
         # Verify if user is in the right role
         if not User.authorisation(email, roles):
             return Responses.AUTHORISATION_FAILED()
     response, status = function(*args, **kwargs)
     set_access_cookies(
         response,
         create_access_token(
             identity=User.generate_token_identity(email)))
     return response, status