예제 #1
0
    def post(self):

        # create user model
        user_json = request.get_json().get("user")
        user = user_schema.load(user_json)

        # check email and userame
        if UserModel.find_by_username(user.username):
            raise BadRequest("A user with that username already exists")

        if UserModel.find_by_email(user.email):
            raise BadRequest("A user with that email already exists")

        # Hash the password
        hashed_pass = custom_pbkdf2.hash(user.password)
        user.password = hashed_pass

        # save user
        user.save_to_db()

        # create confirmation
        # confirmation = ConfirmationModel(user.id)
        # confirmation.save_to_db()
        # user.send_confirmation_email()

        # create token
        access_token = create_access_token(identity=user.id,
                                           expires_delta=False,
                                           fresh=True)

        # create refresh token
        refresh_token = create_refresh_token(user.id)

        return {
            "user": {
                "id": user.id,
                "username": user.username,
                "email": user.email,
                "access_token": access_token,
                "refresh_token": refresh_token,
            },
            "message": "User created!",
        }, 201
예제 #2
0
    def put(cls):

        # get user id
        user_id = get_jwt_identity()

        # new username
        newusername = request.get_json()["username"]

        # check if username already exists
        if UserModel.find_by_username(newusername):
            raise BadRequest("Username already exists")

        else:
            # save new user name
            user = UserModel.find_by_id(user_id)
            user.username = newusername
            user.save_to_db()

        return {"message": "Username updated", "username": newusername}, 200
예제 #3
0
    def post(cls):
        user_json = request.get_json()["user"]

        user = user_schema.load(user_json)
        
        if UserModel.find_by_username(user.username):
            return {"message":"Username already exists"}, 400    

        if UserModel.find_by_email(user.email):
            return {"message":"Username already exists"}, 400

        hashed_password = custom_pbkdf2.hash(user.password)
        user.password = hashed_password

        user.save_to_db()

        user_setting = user_setting_schema.load({"user_id":user.id})
        user_setting.save_to_db()

        access_token = create_access_token(identity=user.id, fresh=True, expires_delta=False,user_claims={"company_id":user.company_id, "role":user.role_id})
        refresh_token = create_refresh_token(user.id)

        return {
            "message":"User Logged In",
            "user":{ 
                "user": {
                    user_schema.dump(user),
                    *{"profile_config":user_setting_schema.dump(user_setting)}

                } ,
                "userToken":{
                    "access_token":access_token,
                    "refresh_token":refresh_token,
                }
            },
        }