Пример #1
0
 def get(self):
     user_info = UserSchema(only=("username", "id", "email", "role",
                                  "avatarURL"))
     _id = get_jwt_identity()
     user = UserModule(id=_id)
     current_user = UserModule(**user.find_by_id())
     reponse_user = user_info.dump(current_user)
     return make_response(reponse_user)
Пример #2
0
def add_claims_to_jwt(identity):
    user = UserModule(id=identity)
    current_user = user.find_by_id()
    if current_user["role"] == 'admin':
        return {'role': 'admin'}
    elif current_user["role"] == 'artist' or current_user[
            "role"] == 'collector':
        return {'role': 'vendor'}
    else:
        return {'role': 'user'}
Пример #3
0
    def post(self):
        data = user_schema.load(request.get_json())

        user = UserModule(**data)
        if user.find_by_username():
            return {"msg": "TÊN ĐĂNG NHẬP ĐÃ TỒN TẠI"}, 400
        if user.find_by_email():
            return {"msg": "EMAIL ĐÃ TỒN TẠI"}, 400

        token = generate_confirmation_token(user.email)
        confirm_url = url_for('userregister', token=token, _external=True)

        email_confirmation = q.enqueue(Mail.send_mail_confirmation_to_user,
                                       args=(
                                           user.email,
                                           confirm_url,
                                       ),
                                       result_ttl=0)

        user.id = user.find_maxium_user()
        user.password = user.hash_password

        user.save_to_database(user_schema.dump(user))

        return {"msg": "XÁC THỰC EMAIL ĐỂ KÍCH HOẠT TÀI KHOẢN"}, 201
Пример #4
0
    def post(self):
        data = user_schema.load(request.get_json())

        user = UserModule(**data)
        user_exist = user.find_by_email()

        if user_exist and user.verify_password():
            if user_exist["status"] != "pending email":
                accessToken = access_token(user_exist["id"], True)
                refreshToken = refresh_token(user_exist["id"])
                return {
                    "access_token": accessToken,
                    "refresh_token": refreshToken
                }, 200
            return {'msg': 'Opps, BẠN KHÔNG THỂ ĐĂNG NHẬP'}, 401
        return {'msg': 'TÀI KHOẢN/MẬT KHẨU KHÔNG ĐÚNG'}, 401
Пример #5
0
 def post(self, token):
     form = UserRegistryForm()
     # if form.validate_on_submit():
     raw_password = request.form['password']
     email = ConfirmationModule.confirm_email(token)
     password = UserModule.hash_password(raw_password)
     data = {"email": email, "password": password}
     Database.update_user_in_db(data)
Пример #6
0
def verify_pw(username, password):
    if not UserModule.find_by_username(username):
        return False
    else:
        hased_pw = collection_admins.find({"username":
                                           username})[0]["password"]

    return True if bcrypt.checkpw(password.encode("utf-8"),
                                  hased_pw) else False
Пример #7
0
    def post(cls):
        postedData = request.get_json()
        username = postedData["username"]
        password = postedData["password"]

        user = UserModule.find_by_username(username)

        if not UserModule.find_by_username(username):
            return {"msg": "Can not found this username"}, 400
        check_password = verify_pw(username, password)

        if check_password:
            access_token = create_access_token(identity=user.id, fresh=True)
            refesh_token = create_refresh_token(identity=username)
            return {
                'access_token': access_token,
                'refesh_token': refesh_token
            }, 200
        return {"msg": "Invalid Credentials"}, 401
    def post(self):
        cmt_data = request.get_json()

        _id = CommentModule.create_comment_id()

        pic = PictureModule(id=cmt_data["pic_id"])
        pic_data = pic.find_by_id()
        pic_title = pic_data["title"]
        pic_category = pic_data["category"]
        creator_name = cmt_data["creator_name"]
        creator = UserModule(username=creator_name)
        creator_id = creator.find_by_username()["id"]

        comment = {
            "id": _id,
            "username": cmt_data["username"],
            "pic_id": cmt_data["pic_id"],
            "content": cmt_data["content"],
            "user_id": cmt_data["user_id"],
            "star": cmt_data["star"],
            "avatarURL": cmt_data["avatarURL"]
        }

        notification = {
            "pic_id": cmt_data["pic_id"],
            "pic_title": pic_title,
            "created_at": cmt_data["created_at"],
            "commenter_username": cmt_data["username"],
            "creator_id": creator_id,
            "pic_category": pic_category
        }

        comment_channel = "comment-channel_%s" % (creator_id)
        status = CommentModule.create_comment(comment)
        NotificationModule.save_notification_to_db(notification)
        pusher.trigger(comment_channel, 'comment',
                       json_util.dumps(notification))
        return make_response(
            json_util.dumps(comment, ensure_ascii=False).encode('utf8'),
            200) if status else None
Пример #9
0
    def post(self):
        postedData = request.get_json()
        _id = postedData["id"]
        username = postedData["username"]
        password = postedData["password"]
        alias = postedData["alias"]

        if UserModule.find_by_username(username):
            return {"msg": "Existed user "}, 400

        hashed_pw = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt())
        collection_admins.insert_one({
            "username": username,
            "password": hashed_pw,
            "alias": alias,
            "id": _id,
        })

        return {"msg": "Creating new admin successfully"}, 201
Пример #10
0
 def delete(self, id):
     user = UserModule(id=id)
     user.delete_user()
Пример #11
0
 def post(self):
     _id = get_jwt_identity()
     avatarURL = request.get_json()["avatarURL"]
     result = UserModule.upload_avatar(_id, avatarURL)