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)
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)
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))
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))
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)
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))