def post():

        # Get refresh token.
        refresh_token = request.json.get('refresh_token')

        # Get if the refresh token is in blacklist.
        ref = Blacklist.query.filter_by(refresh_token=refresh_token).first()

        # Check refresh token is existed.
        if ref is not None:

            # Return invalidated token.
            return {'status': 'invalidated'}

        try:
            # Generate new token.
            data = refresh_jwt.loads(refresh_token)

        except Exception as why:
            # Log the error.
            logging.error(why)

            # If it does not generated return false.
            return False

        # Create user not to add db. For generating token.
        user = User(email=data['email'])

        # New token generate.
        token = user.generate_auth_token(False)

        # Return new access token.
        return {'access_token': token}
    def post():

        # Get refresh token.
        refresh_token = request.json.get('refresh_token')

        # Get if the refresh token is in blacklist.
        ref = Blacklist.query.filter_by(refresh_token=refresh_token).first()

        # Check refresh token is existed.
        if ref is not None:

            # Return invalidated token.
            return {'status': 'invalidated'}

        try:
            # Generate new token.
            data = refresh_jwt.loads(refresh_token)

        except Exception as why:
            # Log the error.
            logging.error(why)

            # If it does not generated return false.
            return False

        # Create user not to add db. For generating token.
        user = User(email=data['email'])

        # New token generate.
        token = user.generate_auth_token(False)

        # Return new access token.
        return {'access_token': token}
Exemple #3
0
 def post(self):
     parser = reqparse.RequestParser()
     parser.add_argument('firstname', type=str, help='You need to enter your fistname', required=True)
     parser.add_argument('lastname', type=str, help='You need to enter your lastname', required=True)
     parser.add_argument('email', type=str, help='You need to enter your e-mail address', required=True)
     parser.add_argument('password', type=str, help='You need to enter your chosen password', required=True)
     parser.add_argument('confirmation_password', type=str, help='You need to enter the confirm password field', required=True)
     
     args = parser.parse_args()
     
     email = args.get('email')
     password = args.get('password')
     confirmation_password = args.get('confirmation_password')
     firstname = args.get('firstname')
     lastname = args.get('lastname')
     
     try:
         User.create(
             email=email,
             password=password,
             confirmation_password=confirmation_password,
             firstname=firstname,
             lastname=lastname
         )
         return {'message': 'Successfully created your account.'}
     except ValidationError as e:
         abort(400, message='There was an error while trying to create your account -> {}'.format(e.message))
def create_user():
    try:
        data = request.get_json()
        user_schema = UserSchema()

        user = User(**(user_schema.load(data)))
        user.create()
        return response_with(resp.SUCCESS_201)

    except Exception as e:
        print(e)
        return response_with(resp.INVALID_INPUT_422)
Exemple #5
0
def create_super_admin():

    # Check if admin is existed in db.
    user = User.query.filter_by(email="test_username").first()

    # If user is none.
    if user is None:

        # Create admin user if it does not existed.
        user = User(
            username="******",
            password="******",
            email="*****@*****.**",
            user_role="sa",
        )

        # Add user to session.
        db.session.add(user)

        # Commit session.
        db.session.commit()

        # Print admin user status.
        logging.info("Super admin was set.")

    else:

        # Print admin user status.
        logging.info("Super admin already set.")
Exemple #6
0
    def post():
       
        try:
            # Get username, password and email.
            username, email, password, first_name, last_name, user_role, user_country, user_language = request.json.get('name').strip(), request.json.get('email').strip(), request.json.get('password').strip(),  request.json.get('firstName').strip(), request.json.get('lastName').strip(), request.json.get('role'), request.json.get('country'), request.json.get('language') 
        except Exception as why:

            # Log input strip or etc. errors.
            logging.info("Username, password or email is wrong. " + str(why))

            # Return invalid input error.
            return error.INVALID_INPUT_422

        # Check if any field is none.
        if username is None or password is None or email is None:
            return error.INVALID_INPUT_422

        # Get user if it is existed.
        user = User.query.filter_by(email=email).first()

        # Check if user is existed.
        if user is not None:
            return error.ALREADY_EXIST

        # Create a new user.
        user = User(username=username, email=email, password=password, first_name=first_name, last_name= last_name, user_role = user_role, user_country = user_country, user_language = user_language)

        # Add user to session.
        db.session.add(user)

        # Commit session.
        db.session.commit()

        # Return success if registration is completed.
        return {'status': 'Registration completed.'}
Exemple #7
0
def create_super_admin():

    # Check if admin is existed in db.
    user = User.query.filter_by(email='test_username').first()

    # If user is none.
    if user is None:

        # Create admin user if it does not existed.
        user = User(username='******',
                    password='******',
                    email='*****@*****.**',
                    user_role='sa')

        # Add user to session.
        db.session.add(user)

        # Commit session.
        db.session.commit()

        # Print admin user status.
        print("Super admin was set.")

    else:

        # Print admin user status.
        print("Super admin already set.")
Exemple #8
0
def create_test_user(username=None, password=None, email=None, user_role=None):

    # Check if admin is existed in db.
    user = User.query.filter_by(email='test_username').first()

    # If user is none.
    if user is None:

        # Create admin user if it does not existed.
        # user = User(username=username, password=password, email=email, user_role=user_role)
        user = User(username='******',
                    password='******',
                    email='*****@*****.**',
                    user_role='user')

        # Add user to session.
        db.session.add(user)

        # Commit session.
        db.session.commit()

        # Print admin user status.
        print("Test user was set.")

    else:

        # Print admin user status.
        print("User already set.")
Exemple #9
0
 def post(self):
     parser = reqparse.RequestParser()
     parser.add_argument('email', type=str, help='You need to enter your e-mail address', required=True)
     parser.add_argument('password', type=str, help='You need to enter your password', required=True)
     
     args = parser.parse_args()
     
     email = args.get('email')
     password = args.get('password')
     
     try:
         token = User.validate(email, password)
         return {'token': token}
     except ValidationError as e:
         abort(400, message='There was an error while trying to log you in -> {}'.format(e.message))
Exemple #10
0
 def func(*args, **kwargs):
     try:
         if 'authorization' not in request.headers:
             abort(
                 404,
                 message="You need to be logged in to access this resource")
         token = request.headers.get('authorization')
         payload = jwt.decode(token,
                              current_app.config['SECRET_KEY'],
                              algorithms=['HS256'])
         user_id = payload['id']
         g.user = User.find(user_id)
         if g.user is None:
             abort(404, message="The user id is invalid")
         return f(*args, **kwargs)
     except JWTError as e:
         abort(400,
               message=
               "There was a problem while trying to parse your token -> {}".
               format(e.message))
Exemple #11
0
def signup():
    """{"name":"","password":"","role":""}"""
    #if not request.json or not 'name' in request.json or not 'password' in request.json or not 'role' in request.json:
    #   error (400)

    if not isinstance(request.json.get('name'), str):
        return jsonify({"msg": "Name must be a string. Example: johndoe"}), 400

    name = request.get_json()['name'].strip()
    if not name:
        return jsonify({"msg": "Name field is empty"}), 400
    password = str(request.get_json()['password']).strip()

    role = request.get_json()['role']
    if not role:
        return jsonify({"msg": "Role field is empty"}), 400
    if role.lower() != "admin":
        if role.lower() != "user":
            return jsonify({"Error": "Only 'admin' or 'user' roles exist"})

    if name and password and role:
        if len(name) > 15:
            return jsonify({"msg": "Name is too long, max 15"}), 400

        if not re.match(r'^[a-z0-9_]+$', name):
            return jsonify(
                {"msg": "Name can only contain lowercase a-z, 0-9 and _"}), 400

        if len(password) < 8:
            return jsonify({"msg": "Password too short, min 8 chars"}), 400

        if len(password) > 20:
            return jsonify({"msg": "Password too long, max 20"}), 400

        new_user = User(name, password, role)
        DbController().add_user(new_user)
        return jsonify({"msg": DbController().get_users()})

    return jsonify({"msg": "empty field"}), 400
Exemple #12
0
    def post():

        try:
            # Get username, password and email.
            username, password, email = (
                request.json.get("username").strip(),
                request.json.get("password").strip(),
                request.json.get("email").strip(),
            )
        except Exception as why:

            # Log input strip or etc. errors.
            logging.info("Username, password or email is wrong. " + str(why))

            # Return invalid input error.
            return error.INVALID_INPUT_422

        # Check if any field is none.
        if username is None or password is None or email is None:
            return error.INVALID_INPUT_422

        # Get user if it is existed.
        user = User.query.filter_by(email=email).first()

        # Check if user is existed.
        if user is not None:
            return error.ALREADY_EXIST

        # Create a new user.
        user = User(username=username, password=password, email=email)

        # Add user to session.
        db.session.add(user)

        # Commit session.
        db.session.commit()

        # Return success if registration is completed.
        return {"status": "registration completed."}
Exemple #13
0
def create_test_user(
    username="******",
    password="******",
    email="*****@*****.**",
    user_role="user",
):

    # Check if admin is existed in db.
    user = User.query.filter_by(email="test_username").first()

    # If user is none.
    if user is None:

        # Create admin user if it does not existed.
        # user = User(username=username, password=password, email=email, user_role=user_role)
        user = User(
            username=username,
            password=password,
            email=email,
            user_role=user_role,
        )

        # Add user to session.
        db.session.add(user)

        # Commit session.
        db.session.commit()

        # Print admin user status.
        logging.info("Test user was set.")

        # Return user.
        return user

    else:

        # Print admin user status.
        logging.info("User already set.")