Beispiel #1
0
def files(box_name, user_id=None):
    form = UploadForm()
    user = current_user
    if user_id:
        if not current_user.is_consultant:
            raise Forbidden()
        user = User.by_id(user_id)

    couch_box = get_couch_box_db(user, box_name)
    couch = CouchFileBox(current_app.config.get('COUCH_DB_URL'), couch_box)

    if form.validate_on_submit():
        file = request.files['file']
        overwrite = True if request.form.get('overwrite') == 'true' else False
        if file:
            data = get_file_information(file)
            if data:
                couch.store_file(data, overwrite=overwrite)
                flash(_('upload success'), 'success')
            else:
                flash(_('file type not allowed'), 'error')

    files = couch.all_files()
    for f in files:
        f['download_link'] = couchid_to_authproxy_url(f['id'], couch_box=couch_box)

    return render_template("boxes/%s.html" % box_name, form=form, user=user, files=files, box_name=box_name, user_id=user_id)
Beispiel #2
0
def files(box_name, user_id=None):
    form = UploadForm()
    copy_form = CopyFileForm()
    user = current_user
    if user_id:
        if not current_user.is_consultant:
            raise Forbidden()
        user = User.by_id(user_id)

    couch_box = get_couch_box_db(user, box_name)
    couch = CouchFileBox(current_app.config.get('COUCH_DB_URL'), couch_box)

    if form.validate_on_submit():
        file = request.files['file']
        overwrite = True if request.form.get('overwrite') == 'true' else False
        if file:
            data = get_file_information(file)
            if data:
                couch.store_file(data, overwrite=overwrite)
                flash(_('upload success'), 'success')
            else:
                flash(_('file type not allowed'), 'error')

    files = couch.all_files()
    for f in files:
        f['download_link'] = couchid_to_authproxy_url(f['id'],
                                                      couch_box=couch_box)

    return render_template("boxes/%s.html" % box_name,
                           form=form,
                           copy_form=copy_form,
                           user=user,
                           files=files,
                           box_name=box_name,
                           user_id=user_id)
Beispiel #3
0
def copy_file(box_name, id, rev, user_id):
    user = current_user
    if user_id == str(current_user.id):
        user_id = None
    else:
        if not current_user.is_consultant:
            raise Forbidden()
        user = User.by_id(user_id)

    filename = request.form.get('filename', False)
    if (not filename):
        flash(_("copy not possible"), 'error')
        return redirect(
            url_for("boxes.files", box_name=box_name, user_id=user_id))

    customer_id = request.form.get('boxes', False)
    if customer_id:
        customer = User.by_id(customer_id)
        user = current_user
        couch_box = get_couch_box_db(user, 'file')
        target_box_name = get_couch_box_db(customer, 'download')
    else:
        customer = current_user
        user = User.by_id(user_id)
        couch_box = get_couch_box_db(user, 'upload')
        target_box_name = get_couch_box_db(customer, 'file')

    user_couch = CouchFileBox(current_app.config.get('COUCH_DB_URL'),
                              couch_box)
    user_couch.copy(id, filename, target_box_name=target_box_name)

    flash(_("file copied"), 'success')
    return redirect(url_for("boxes.files", box_name=box_name, user_id=user_id))
Beispiel #4
0
def copy_file(box_name, id, rev, user_id):
    user = current_user
    if user_id == str(current_user.id):
        user_id = None
    else:
        if not current_user.is_consultant:
            raise Forbidden()
        user = User.by_id(user_id)

    filename = request.form.get('filename', False)
    if (not filename):
        flash(_("copy not possible"), 'error')
        return redirect(url_for("boxes.files", box_name=box_name, user_id=user_id))

    customer_id = request.form.get('boxes', False)
    if customer_id:
        customer = User.by_id(customer_id)
        user = current_user
        couch_box = get_couch_box_db(user, 'file')
        target_box_name = get_couch_box_db(customer, 'download')
    else:
        customer = current_user
        user = User.by_id(user_id)
        couch_box = get_couch_box_db(user, 'upload')
        target_box_name = get_couch_box_db(customer, 'file')

    user_couch = CouchFileBox(current_app.config.get('COUCH_DB_URL'), couch_box)
    user_couch.copy(id, filename, target_box_name=target_box_name)

    flash(_("file copied"), 'success')
    return redirect(url_for("boxes.files", box_name=box_name, user_id=user_id))
Beispiel #5
0
def check_file_exists(box_name, user_id):
    user = current_user
    if user_id != str(current_user.id):
        if not current_user.is_consultant:
            raise Forbidden()
        user = User.by_id(user_id)

    couch_box = get_couch_box_db(user, box_name)
    couch = CouchFileBox(current_app.config.get('COUCH_DB_URL'), couch_box)
    existing_doc = couch.get(request.form['filename'])
    if existing_doc:
        return jsonify(existing=True)
    return jsonify(existing=False)
Beispiel #6
0
def check_file_exists(box_name, user_id):
    user = current_user
    if user_id != str(current_user.id):
        if not current_user.is_consultant:
            raise Forbidden()
        user = User.by_id(user_id)

    couch_box = get_couch_box_db(user, box_name)
    couch = CouchFileBox(current_app.config.get('COUCH_DB_URL'), couch_box)
    existing_doc = couch.get(request.form['filename'])
    if existing_doc:
        return jsonify(existing=True)
    return jsonify(existing=False)
Beispiel #7
0
def delete_file(box_name, id, rev, user_id):
    user = current_user
    if user_id == str(current_user.id):
        user_id = None
    else:
        if not current_user.is_consultant:
            raise Forbidden()
        user = User.by_id(user_id)

    couch_box = get_couch_box_db(user, box_name)
    couch = CouchFileBox(current_app.config.get('COUCH_DB_URL'), couch_box)
    couch.delete(id, rev)
    flash(_("file deleted"), 'success')
    return redirect(url_for("boxes.files", box_name=box_name, user_id=user_id))
Beispiel #8
0
def delete_file(box_name, id, rev, user_id):
    user = current_user
    if user_id == str(current_user.id):
        user_id = None
    else:
        if not current_user.is_consultant:
            raise Forbidden()
        user = User.by_id(user_id)

    couch_box = get_couch_box_db(user, box_name)
    couch = CouchFileBox(current_app.config.get('COUCH_DB_URL'), couch_box)
    couch.delete(id, rev)
    flash(_("file deleted"), 'success')
    return redirect(url_for("boxes.files", box_name=box_name, user_id=user_id))