Beispiel #1
0
def deletefile(billid, fileid):
    bill_id = billid
    username = request.authorization.username
    passwordinfo = request.authorization.password
    bill_sc = Billschema(many=False)
    data1 = request.get_json()

    flag = checkauthentication(username, passwordinfo)

    if flag == True:  #check if user exits
        result = Credential.select_user_by_email(username)
        user_sc = Credentialschema()

        data = user_sc.dump(result)
        owner_id = data.get('id')

        result2 = Bills.select_user_by_billid(bill_id)
        bill_sc = Billschema(many=False)

        data2 = bill_sc.dump((result2))

        owner_id2 = data2.get('owner_id')

        if owner_id == owner_id2:  #authorized against bill and user
            file_sc = File_schema_output(many=False)
            result = File.select_file_by_file_id(fileid)
            print(result)
            if not result:
                return custom_http_code("file does not exist", 404)

            basedir = app.config['UPLOAD_FOLDER']

            filedir = root_dir + "/" + "attachments" + "/" + fileid + "/"
            shutil.rmtree(filedir)
            File.delete_file(fileid)

            return custom_http_code(data, 204)
        else:
            return custom_http_code('Unauthorised', 401)

    else:
        return custom_http_code('invalid login', 401)
Beispiel #2
0
def deletefile(billid, fileid):
    start = time.time()
    bill_id = billid
    username = request.authorization.username
    passwordinfo = request.authorization.password
    bill_sc = Billschema(many=False)
    data1 = request.get_json()
    dbtime = time.time()
    flag = checkauthentication(username, passwordinfo)
    dur = (time.time() - dbtime) * 1000
    c.timing("dbconnect", dur)

    if flag == True:  #check if user exits
        result = Credential.select_user_by_email(username)
        user_sc = Credentialschema()

        data = user_sc.dump(result)
        owner_id = data.get('id')

        result2 = Bills.select_user_by_billid(bill_id)
        bill_sc = Billschema(many=False)

        data2 = bill_sc.dump((result2))

        owner_id2 = data2.get('owner_id')

        if owner_id == owner_id2:  #authorized against bill and user
            file_sc = File_schema_output(many=False)

            dbtime = time.time()
            result = File.select_file_by_file_id(fileid)

            dur = (time.time() - dbtime) * 1000
            c.timing("dbconnect", dur)
            print(result)
            if not result:
                return custom_http_code("file does not exist", 404)

            filedir = root_dir + "/" + "attachments" + "/" + fileid + "/"

            bucketkey = 'fileid' + '/'
            s3 = boto3.resource("s3")
            bucketobj = s3.Bucket(bucket)
            file_key = fileid + '/'
            bucketobj.objects.filter(Prefix=file_key).delete()

            if os.path.exists(filedir):
                shutil.rmtree(filedir)
            else:
                print("file id folder noyt found")

            File.delete_file(fileid)

            c.incr("deletefilecount")
            dur = (time.time() - start) * 1000
            c.timing("deletefilecount", dur)
            return custom_http_code(data, 204)

        else:
            c.incr("deletefilecount")
            dur = (time.time() - start) * 1000
            c.timing("deletefilecount", dur)
            return custom_http_code('Unauthorised', 401)

    else:
        return custom_http_code('invalid login', 401)