def cut(json): file = File.get(json['params']['id']) if not file or not File.if_action_allowed( 'upload', get_company_from_folder(json['params']['id']).id): return False return file.move_to(json['params']['folder_id'])
def send(parent_id): parent = File.get(parent_id) root = parent.root_folder_id if parent.mime == 'root': root = parent.id company = db(Company, journalist_folder_file_id=root).one() if File.if_action_allowed('upload', company.id) == False: return jsonify({'error': True }) data = request.form uploaded_file = request.files['file'] name = File.get_unique_name(urllib.parse.unquote(uploaded_file.filename).replace( '"', '_').replace('*', '_').replace('/', '_').replace('\\', '_'), data.get('ftype'), parent.id) data.get('ftype') if re.match('^video/.*', data.get('ftype')): body = {'title': uploaded_file.filename, 'description': '', 'status': 'public'} youtube = YoutubeApi(body_dict=body, video_file=uploaded_file.stream.read(-1), chunk_info=dict(chunk_size=int(data.get('chunkSize')), chunk_number=int(data.get('chunkNumber')), total_size=int(data.get('totalSize'))), company_id=company.id, root_folder_id=company.journalist_folder_file_id, parent_folder_id=parent_id) file = youtube.upload() else: file = File.upload(name, data, parent.id, root, company, content=uploaded_file.stream.read(-1)) return jsonify({'result': {'size': 0}, 'error': True if file=='error' else False, 'file_id':file})
def createdir(json): if not File.if_action_allowed( 'upload', get_company_from_folder(json['params']['root_id']).id): return False return File.createdir(name=json['params']['name'], root_folder_id=json['params']['root_id'], parent_id=json['params']['folder_id'])
def list(json): ancestors = File.ancestors(json['params']['folder_id']) company = db(Company, journalist_folder_file_id=ancestors[0]).first() if json['params'].get('search_text'): list = File.list(json['params']['folder_id'], json['params']['file_manager_called_for'], json['params']['search_text'], company_id=company.id) else: list = File.list(json['params']['folder_id'], json['params']['file_manager_called_for'],company_id=company.id) return {'list': list, 'ancestors': ancestors, 'can_upload': File.if_action_allowed('upload', company.id)}
def set_properties(json): file = File.get(json['params']['id']) if not file or not File.if_action_allowed( 'upload', get_company_from_folder(json['params']['id']).id): return False return File.set_properties( file, json['params']['add_all'], name=json['params']['name'], copyright_author_name=json['params']['author_name'], description=json['params']['description'])
def send(parent_id): parent = File.get(parent_id) root = parent.root_folder_id if parent.mime == 'root': root = parent.id company = db(Company, journalist_folder_file_id=root).one() if File.if_action_allowed('upload', company.id) == False: return jsonify({'error': True}) data = request.form uploaded_file = request.files['file'] name = File.get_unique_name( urllib.parse.unquote(uploaded_file.filename).replace('"', '_').replace( '*', '_').replace('/', '_').replace('\\', '_'), data.get('ftype'), parent.id) data.get('ftype') if re.match('^video/.*', data.get('ftype')): body = { 'title': uploaded_file.filename, 'description': '', 'status': 'public' } youtube = YoutubeApi(body_dict=body, video_file=uploaded_file.stream.read(-1), chunk_info=dict( chunk_size=int(data.get('chunkSize')), chunk_number=int(data.get('chunkNumber')), total_size=int(data.get('totalSize'))), company_id=company.id, root_folder_id=company.journalist_folder_file_id, parent_folder_id=parent_id) file = youtube.upload() else: file = File.upload(name, data, parent.id, root, company, content=uploaded_file.stream.read(-1)) return jsonify({ 'result': { 'size': 0 }, 'error': True if file == 'error' else False, 'file_id': file })
def filemanager(): last_visit_root_name = '' if 'last_root' in request.cookies: last_root_id = request.cookies['last_root'] else: last_root_id = '' library = [] members, main_companies = Company.get_members_for_company() uniq = set() for n, user_company in enumerate(g.user.employer_assoc): if user_company.has_rights(UserCompany.RIGHT_AT_COMPANY.FILES_BROWSE): library.insert( n, File.folder_dict( user_company.employer, { 'can_upload': File.if_action_allowed(File.ACTIONS['upload'], user_company.company_id) })) uniq.update({user_company.employer.name}) if user_company.employer.journalist_folder_file_id == last_root_id: last_visit_root_name = user_company.employer.name + " files" if user_company.employer.name in members: for member in members[user_company.employer.name]: if member.company.name not in uniq and member.company.name not in main_companies: library.append( File.folder_dict( member.company, { 'can_upload': File.if_action_allowed( File.ACTIONS['upload'], member.company.id) })) uniq.update({member.company.name}) if member.company.journalist_folder_file_id == last_root_id: last_visit_root_name = member.company.name + " files" # library.sort(key=lambda k: k['name']) file_manager_called_for = request.args[ 'file_manager_called_for'] if 'file_manager_called_for' in request.args else '' file_manager_on_action = jsonmodule.loads( request.args['file_manager_on_action'] ) if 'file_manager_on_action' in request.args else {} file_manager_default_action = request.args[ 'file_manager_default_action'] if 'file_manager_default_action' in request.args else 'download' get_root = request.args['get_root'] if 'get_root' in request.args else None if get_root: root = Company.get(get_root) last_visit_root_name = (root.name + " files") if root else '' last_root_id = root.journalist_folder_file_id if root else '' err = True if len(library) == 0 else False return render_template( 'filemanager.html', library=json.dumps(library), err=err, last_visit_root=last_visit_root_name.replace('"', '_').replace( '*', '_').replace('/', '_').replace('\\', '_').replace('\'', '_'), last_root_id=last_root_id, file_manager_called_for=file_manager_called_for, file_manager_on_action=file_manager_on_action, file_manager_default_action=file_manager_default_action)