예제 #1
0
def send(parent_id):
    file = request.files['file']
    parent = File.get(parent_id)
    root = parent.root_folder_id
    if parent.mime == 'root':
        root = parent.id
    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)
    company = db(Company, journalist_folder_file_id=root).one()
    if re.match('^video/.*', data.get('ftype')):
        body = {'title': file.filename, 'description': '', 'status': 'public'}
        youtube = YoutubeApi(body_dict=body,
                             video_file=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)
        youtube.upload()
    else:
        File.upload(name,
                    data,
                    parent.id,
                    root,
                    content=uploaded_file.stream.read(-1))
    return jsonify({'result': {'size': 0}})
예제 #2
0
def send(parent_id):
    parent = File.get(parent_id)
    root = parent.root_folder_id
    if parent.mime == 'root':
        root = parent.id
    company = utils.db.query_filter(Company, journalist_folder_file_id=root).one()
    if EmployeeHasRightAtCompany(RIGHT_AT_COMPANY.FILES_UPLOAD).check(company_id=company.id) is not True:
        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})
예제 #3
0
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'])
예제 #4
0
def send(parent_id):
    file = request.files['file']
    parent = File.get(parent_id)
    root = parent.root_folder_id
    if parent.mime == 'root':
        root = parent.id
    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)
    company = db(Company, journalist_folder_file_id=root).one()
    if re.match('^video/.*', data.get('ftype')):
        body = {'title': file.filename,
                'description': '',
                'status': 'public'}
        youtube = YoutubeApi(body_dict=body,
                             video_file=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)
        youtube.upload()
    else:
        File.upload(name, data, parent.id, root, content=uploaded_file.stream.read(-1))
    return jsonify({'result': {'size': 0}})
예제 #5
0
def remove(json, file_id):
    file = File.get(file_id)
    if not file:
        return False
    ancestors = File.ancestors(file.parent_id)
    return file.remove(
        db(Company, journalist_folder_file_id=ancestors[0]).first().id)
예제 #6
0
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 FilemanagerRights(company=company).action_is_allowed(FilemanagerRights.ACTIONS['UPLOAD']) != True:
        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})
예제 #7
0
def send(parent_id):
    """ YOU SHOULD SEND PROPERTY NAME, DESCRIPTION, ROOT_FOLDER AND FOLDER.
    NOW THIS VALUES GET FROM DB. HARDCODE!!! """
    file = request.files['file']
    parent = File.get(parent_id)
    root = parent.root_folder_id
    if parent.mime == 'root':
        root = parent.id
    data = request.form
    uploaded_file = request.files['file']
    name = File.get_unique_name(uploaded_file.filename, data.get('ftype'), parent.id)
    company = db(Company, journalist_folder_file_id=root).one()
    if re.match('^video/.*', data.get('ftype')):
        body = {'title': file.filename,
                'description': '',
                'status': 'public'}
        youtube = YoutubeApi(body_dict=body,
                             video_file=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)
        youtube.upload()
    else:
        File.upload(name, data, parent.id, root, content=uploaded_file.stream.read(-1))
    return jsonify({'result': {'size': 0}})
예제 #8
0
def remove(json, file_id):
    file = File.get(file_id)
    ancestors = File.ancestors(file.parent_id)
    if not file or EmployeeHasRightAtCompany(RIGHT_AT_COMPANY.FILES_UPLOAD).check(
            company_id=utils.db.query_filter(Company, journalist_folder_file_id=ancestors[0]).first().id) is not True:
        return False
    return file.remove()
def image_editor(img_id):

    ratio = Config.IMAGE_EDITOR_RATIO
    height = Config.HEIGHT_IMAGE
    thumbnail = File()
    thumbnail_content = FileContent()
    size = (int(ratio*height), height)
    image_id = img_id
    data = request.form

    if request.method != 'GET':
        image_query = file_query(image_id, File)
        image_content = file_query(image_id, FileContent)
        image = Image.open(BytesIO(image_content.content))

# area = [int(y) for x, y in sorted(zip(request.form.keys(),
# request.form.values()))
#   if int(y) in range(0, max(image.size)) and x != "5rotate"
# and x != "6name"]
        area = [int(a) for a in (data['1x'], data['2y'], data['3width'],
                                 data['4height'])
                if int(a) in range(0, max(image.size))]
        if not data['6name']:
                raise EmptyFieldName
        elif area:

            angle = int(data["5rotate"])*-1
            area[2] = (area[0]+area[2])
            area[3] = (area[1]+area[3])
            rotated = image.rotate(angle)
            cropped = rotated.crop(area).resize(size)
            bytes_file = BytesIO()
            cropped.save(bytes_file,
                         image_query.mime.split('/')[-1].upper())
            thumbnail.md_tm = strftime("%Y-%m-%d %H:%M:%S", gmtime())
            thumbnail.size = sys.getsizeof(bytes_file.getvalue())
            thumbnail.name = data['6name']+'.' + \
                             image_query.name.split('.')[-1]
            thumbnail.mime = image_query.mime
            g.db.add(thumbnail)
            g.db.commit()
            thumbnail_content.content = bytes_file.getvalue()
            thumbnail_content.id = thumbnail.id
            g.db.add(thumbnail_content)
            g.db.commit()
            image_id = thumbnail.id
            return redirect(url_for('image_editor.cropped',
                                    id=image_id))

        else:
            g.db.rollback()
            raise BadCoordinates
    file = db(File, id=image_id).one()

    return render_template('image_editor.html',
                           ratio=ratio,
                           img_id=img_id,
                           image=file.url()
                           )
예제 #10
0
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'])
예제 #11
0
def set_properties(json):
    file = File.get(json['params']['id'])
    if not file or EmployeeHasRightAtCompany(RIGHT_AT_COMPANY.FILES_UPLOAD).check(
            company_id=get_company_from_folder(json['params']['root_id']).id) is not True:
        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'])
예제 #12
0
def set_properties(json):
    file = File.get(request.json['params']['id'], )
    return File.set_properties(
        file,
        request.json['params']['add_all'],
        name=request.json['params']['name'],
        copyright_author_name=request.json['params']['author_name'],
        description=request.json['params']['description'])
예제 #13
0
def remove(json, file_id):
    file = File.get(file_id)
    ancestors = File.ancestors(file.parent_id)
    if not file or FilemanagerRights(
            company=db(Company, journalist_folder_file_id=ancestors[0]).first()).action_is_allowed(
        FilemanagerRights.ACTIONS['REMOVE'], file) != True:
        return False
    return file.remove()
예제 #14
0
def set_properties(json):
    file = File.get(json['params']['id'])
    if not file or FilemanagerRights(company=get_company_from_folder(json['params']['id'])).action_is_allowed(
            FilemanagerRights.ACTIONS['UPLOAD']) != True:
        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'])
예제 #15
0
def search_list(json):
    if json['params']['search_text'] != '':
        list = File.list(json['params']['folder'], json['params']['file_manager_called_for'],json['params']['search_text'])
        ancestors = File.ancestors(json['params']['folder'])
    else:
        list = []
        ancestors = File.ancestors(json['params']['folder'])
    return {'list': list, 'ancestors': ancestors}
예제 #16
0
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)}
예제 #17
0
def filemanager():
    from collections import OrderedDict

    last_visit_root_name = ''
    if 'last_root' in request.cookies:
        last_root_id = request.cookies['last_root']
    else:
        last_root_id = ''

    filemanager_company_list = OrderedDict()

    for user_company in g.user.employments:
        if user_company.has_rights(UserCompany.RIGHT_AT_COMPANY.FILES_BROWSE) == True:
            filemanager_company_list[user_company.company_id] = File.folder_dict(user_company.company,
                                                                                 {'can_upload': FilemanagerRights(
                                                                                     company=user_company.company_id).action_is_allowed(
                                                                                     FilemanagerRights.ACTIONS[
                                                                                         'UPLOAD'])})
    for user_company in g.user.employments:
        if user_company.company.own_portal:
            company_membership_in_portal = db(MemberCompanyPortal, portal_id=user_company.company.own_portal.id). \
                filter(
                MemberCompanyPortal.company_id != user_company.company.id and MemberCompanyPortal.status == 'ACTIVE') \
                .join(Company).filter(Company.status == 'ACTIVE').all()

            for company_membership in company_membership_in_portal:
                if company_membership.company_id not in filemanager_company_list:
                    filemanager_company_list[company_membership.company_id] = File.folder_dict(
                        company_membership.company,
                        {
                            'can_upload': FilemanagerRights(
                                company=company_membership.company_id).action_is_allowed(
                                FilemanagerRights.ACTIONS[
                                    'UPLOAD'])})
    # filemanager_company_list.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) if root else ''
        last_root_id = root.journalist_folder_file_id if root else ''
    err = True if len(filemanager_company_list) == 0 else False
    return render_template('filemanager.html',
                           filemanager_company_list=json.dumps([v for k, v in filemanager_company_list.items()]),
                           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)
예제 #18
0
def list(json):
    ancestors = File.ancestors(json['params']['folder_id'])
    company = db(Company, journalist_folder_file_id=ancestors[0]).first()
    if len(json['params'].get('search_text')) > 0:
        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}
예제 #19
0
def search_list(json):
    if json['params']['search_text'] != '':
        list = File.list(json['params']['folder'],
                         json['params']['file_manager_called_for'],
                         json['params']['search_text'])
        ancestors = File.ancestors(json['params']['folder'])
    else:
        list = []
        ancestors = File.ancestors(json['params']['folder'])
    return {'list': list, 'ancestors': ancestors}
예제 #20
0
def remove(json, file_id):
    file = File.get(file_id)
    ancestors = File.ancestors(file.parent_id)
    if not file or EmployeeHasRightAtCompany(
            RIGHT_AT_COMPANY.FILES_UPLOAD).check(
                company_id=utils.db.query_filter(
                    Company, journalist_folder_file_id=ancestors[0]).first(
                    ).id) is not True:
        return False
    return file.remove()
예제 #21
0
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'])
예제 #22
0
def set_properties(json):
    file = File.get(json['params']['id'])
    if not file or EmployeeHasRightAtCompany(
            RIGHT_AT_COMPANY.FILES_UPLOAD).check(
                company_id=get_company_from_folder(
                    json['params']['root_id']).id) is not True:
        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'])
예제 #23
0
def list(json):
    ancestors = File.ancestors(json['params']['folder_id'])
    company = db(Company, journalist_folder_file_id=ancestors[0]).first()
    if len(json['params'].get('search_text')) > 0:
        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}
예제 #24
0
def createdir(json):
    if EmployeeHasRightAtCompany(RIGHT_AT_COMPANY.FILES_UPLOAD). \
            check(company_id=get_company_from_folder(json['params']['root_id']).id) is not True:
        return False
    return File.createdir(name=json['params']['name'],
                          root_folder_id=json['params']['root_id'],
                          parent_id=json['params']['folder_id'])
예제 #25
0
def createdir(json):
    if EmployeeHasRightAtCompany(RIGHT_AT_COMPANY.FILES_UPLOAD). \
            check(company_id=get_company_from_folder(json['params']['root_id']).id) is not True:
        return False
    return File.createdir(name=json['params']['name'],
                          root_folder_id=json['params']['root_id'],
                          parent_id=json['params']['folder_id'])
예제 #26
0
def createdir(json):
    if FilemanagerRights(company=get_company_from_folder(json['params']['root_id'])).action_is_allowed(
            FilemanagerRights.ACTIONS['CREATE_FOLDER']) != True:
        return False
    return File.createdir(name=json['params']['name'],
                          root_folder_id=json['params']['root_id'],
                          parent_id=json['params']['folder_id'])
예제 #27
0
def send(parent_id):
    parent = File.get(parent_id)
    root = parent.root_folder_id
    if parent.mime == 'root':
        root = parent.id
    company = utils.db.query_filter(Company,
                                    journalist_folder_file_id=root).one()
    if EmployeeHasRightAtCompany(RIGHT_AT_COMPANY.FILES_UPLOAD).check(
            company_id=company.id) is not True:
        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
    })
예제 #28
0
def cut(json):
    file = File.get(json['params']['id'])
    if not file or EmployeeHasRightAtCompany(
            RIGHT_AT_COMPANY.FILES_UPLOAD).check(
                company_id=get_company_from_folder(
                    json['params']['folder_id']).id) is not True:
        return False
    return file.move_to(json['params']['folder_id'])
예제 #29
0
def filemanager():
    from collections import OrderedDict
    from profapp.models.company import UserCompany

    last_visit_root_name = ''
    if 'last_root' in request.cookies:
        last_root_id = request.cookies['last_root']
    else:
        last_root_id = ''

    filemanager_company_list = OrderedDict()
    file_manager_called_for = request.args.get('file_manager_called_for', '')

    for company in g.user.companies_employer_active:

        if UserCompany.get_by_user_and_company_ids(
                company_id=company.id).has_rights(
                    RIGHT_AT_COMPANY.FILES_BROWSE):
            filemanager_company_list[company.id] = File.folder_dict(
                company, {
                    'can_upload':
                    EmployeeHasRightAtCompany(
                        RIGHT_AT_COMPANY.FILES_UPLOAD).check(
                            company_id=company.id)
                })

    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) if root else ''
        last_root_id = root.journalist_folder_file_id if root else ''
    err = True if len(filemanager_company_list) == 0 else False
    return render_template(
        'filemanager.html',
        filemanager_company_list=json.dumps(
            [v for k, v in filemanager_company_list.items()]),
        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)
예제 #30
0
def filemanager():
    from collections import OrderedDict
    from profapp.models.company import UserCompany

    last_visit_root_name = ''
    if 'last_root' in request.cookies:
        last_root_id = request.cookies['last_root']
    else:
        last_root_id = ''

    filemanager_company_list = OrderedDict()
    file_manager_called_for = request.args.get('file_manager_called_for', '')

    for company in g.user.companies_employer_active:

        if UserCompany.get_by_user_and_company_ids(company_id=company.id).has_rights(RIGHT_AT_COMPANY.FILES_BROWSE):
            filemanager_company_list[company.id] = File.folder_dict(
                company, {'can_upload': EmployeeHasRightAtCompany(RIGHT_AT_COMPANY.FILES_UPLOAD).check(
                    company_id=company.id)})

    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) if root else ''
        last_root_id = root.journalist_folder_file_id if root else ''
    err = True if len(filemanager_company_list) == 0 else False
    return render_template('filemanager.html',
                           filemanager_company_list=json.dumps([v for k, v in filemanager_company_list.items()]),
                           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)
예제 #31
0
def cut(json):
    file = File.get(request.json['params']['id'])
    return File.move_to(file, request.json['params']['folder_id'])
예제 #32
0
def get_company_from_folder(file_id):
    ancestors = File.ancestors(file_id)
    return db(Company, journalist_folder_file_id=ancestors[0]).first()
예제 #33
0
def auto_remove(json):
    return File.auto_remove(json.get('list'))
예제 #34
0
def cut(json):
    file = File.get(json['params']['id'])
    if not file or FilemanagerRights(company=get_company_from_folder(json['params']['id'])).action_is_allowed(
            FilemanagerRights.ACTIONS['UPLOAD']) != True:
        return False
    return file.move_to(json['params']['folder_id'])
예제 #35
0
def remove(file_id):
    return File.remove(file_id)
예제 #36
0
def rename(json):
    file = File.get(request.json['params']['id'], )
    return File.rename(file, request.json['params']['name'])
예제 #37
0
def copy(json):
    file = File.get(request.json['params']['id'])
    file.copy_file(request.json['params']['folder_id'])
    return file.id
예제 #38
0
def get_company_from_folder(file_id):
    ancestors = File.ancestors(file_id)
    return db(Company, journalist_folder_file_id=ancestors[0]).first()
예제 #39
0
def list(json):
    list = File.list(json['params']['folder_id'],
                     json['params']['file_manager_called_for'])
    ancestors = File.ancestors(json['params']['folder_id'])
    return {'list': list, 'ancestors': ancestors}
예제 #40
0
def auto_remove(json):
    return File.auto_remove(json.get('name'), json.get('folder_id'))
예제 #41
0
def copy(json):
    file = File.get(request.json['params']['id'])
    file.copy_file(request.json['params']['folder_id'])
    return file.id
예제 #42
0
def createdir(json, parent_id=None):
    return File.createdir(name=request.json['params']['name'],
                          root_folder_id=request.json['params']['root_id'],
                          parent_id=request.json['params']['folder_id'])
예제 #43
0
def get_company_from_folder(file_id):
    ancestors = File.ancestors(file_id)
    return utils.db.query_filter(
        Company, journalist_folder_file_id=ancestors[0]).first()
예제 #44
0
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)
예제 #45
0
from flask import g
from profapp import create_app, prepare_connections
import argparse, os

if __name__ == '__main__':

    parser = argparse.ArgumentParser(description='send greetings message')
    parser.add_argument("--file_id")
    parser.add_argument("--file_name")
    parser.add_argument("--parent_id")
    parser.add_argument("--mime")
    parser.add_argument("--file")
    args = parser.parse_args()

    app = create_app(apptype='profi', config='config.CommandLineConfig')
    with app.app_context():
        prepare_connections(app)(echo=True)

        f = open(args.file, 'rb')
        file = File(parent_id=args.parent_id,
                    root_folder_id=args.parent_id,
                    name=args.file_name,
                    company_id=None,
                    mime=args.mime,
                    size=os.path.getsize(args.file)).save()
        file_cont = FileContent(file=file, content=f.read())

        file.save()
        file.id = args.file_id
        g.db.commit()
예제 #46
0
def get_company_from_folder(file_id):
    ancestors = File.ancestors(file_id)
    return utils.db.query_filter(Company, journalist_folder_file_id=ancestors[0]).first()
예제 #47
0
def rename(json):
    file = File.get(request.json['params']['id'], )
    return File.rename(file, request.json['params']['name'])
예제 #48
0
def test():
    file = File.get('5644d72e-a269-4001-a5de-8c3194039273')
    name = File.set_properties(file,False,name='None', copyright_author_name='',description='')
    return render_template('tmp-test.html', file=name)
예제 #49
0
def cut(json):
    file = File.get(request.json['params']['id'])
    return File.move_to(file, request.json['params']['folder_id'])
예제 #50
0
def auto_remove(json):
    return File.auto_remove(json.get('name'), json.get('folder_id'))
예제 #51
0
def remove(file_id):
    return File.remove(file_id)
예제 #52
0
def auto_remove(json):
    return File.auto_remove(json.get('list'))
예제 #53
0
def list(json):
    list = File.list(json['params']['folder_id'], json['params']['file_manager_called_for'])
    ancestors = File.ancestors(json['params']['folder_id'])
    return {'list': list, 'ancestors': ancestors}
예제 #54
0
def cropped(id):
    return render_template('cropped_image.html',
                           image=File.get(id).url()
                           )
예제 #55
0
def set_properties(json):
    file = File.get(request.json['params']['id'], )
    return File.set_properties(file, request.json['params']['add_all'], name=request.json['params']['name'],
                               copyright_author_name=request.json['params']['author_name'],
                               description=request.json['params']['description'])
예제 #56
0
def createdir(json, parent_id=None):
    return File.createdir(name=request.json['params']['name'],
                          root_folder_id=request.json['params']['root_id'],
                          parent_id=request.json['params']['folder_id'])