Example #1
0
 def render(self, context):
     request = context['request']
     aof = get_allowed_shared_folders(request.user, ['reader'])
     folders = map(int, self.folders.split(','))
     folders = ['F%s' % f for f in folders if f in aof]
     context[self.var_name] = recent_files_folders(request, folders,
                                                   self.limit)
     return ''
Example #2
0
 def render(self, context):
     request = context['request']
     aof = get_allowed_shared_folders(request.user, ['reader'])
     if self.folder_id in aof:
         context[self.var_name] = get_folder_files(
             'F%s/%s' %
             (self.folder_id, self.path) if self.path else 'F%s' %
             self.folder_id, self.limit)
     else:
         context[self.var_name] = []
     return ''
Example #3
0
File: views.py Project: kamni/zorna
def documents(request):
    if request.user.is_authenticated:
        extra_context = {}
        ppath = request.GET.get('path', '')
        ppath = urllib.unquote(ppath.rstrip('/'))
        path = clean_path(ppath)
        if path != ppath:
            path = ''

        extra_context['path'] = path

        if request.user.is_anonymous():
            extra_context['bpersonal_folder'] = False
        else:
            extra_context['bpersonal_folder'] = SiteOptions.objects.is_access_valid(
                request.user, 'zorna_personal_documents')
            extra_context['bpersonal_dir'] = 'U%s/' % request.user.pk
            get_upload_user(request.user)
        communities = get_communities(request.user)
        ao = [com.pk for com in communities if com.enable_documents]
        if ao:
            extra_context['bcommunities_folder'] = True
        else:
            extra_context['bcommunities_folder'] = False
        ao = get_allowed_shared_folders(
            request.user, ['reader', 'manager', 'writer'])
        if ao:
            extra_context['bshared_folder'] = True
        else:
            extra_context['bshared_folder'] = False

        if path and path[0] == 'U':
            extra_context['dir_url'] = reverse('personal_folder_content')
            extra_context['bshared_folder'] = False
            extra_context['bcommunities_folder'] = False
        elif path and path[0] == 'F':
            extra_context['dir_url'] = reverse('shared_folder_content')
            extra_context['bpersonal_folder'] = False
            extra_context['bcommunities_folder'] = False
        elif path and path[0] == 'C':
            extra_context['dir_url'] = reverse('communities_folder_content')
            extra_context['bshared_folder'] = False
            extra_context['bpersonal_folder'] = False
        else:
            extra_context['dir_url'] = ''

        if extra_context['bpersonal_folder'] or extra_context['bcommunities_folder'] or extra_context['bshared_folder']:
            context = RequestContext(request)
            return render_to_response('fileman/fm_home.html', extra_context, context_instance=context)
        else:
            return HttpResponseForbidden()
    else:
        return HttpResponseForbidden()
Example #4
0
def documents(request):
    if request.user.is_authenticated:
        extra_context = {}
        ppath = request.GET.get('path', '')
        ppath = urllib.unquote(ppath.rstrip('/'))
        path = clean_path(ppath)
        if path != ppath:
            path = ''

        extra_context['path'] = path

        if request.user.is_anonymous():
            extra_context['bpersonal_folder'] = False
        else:
            extra_context['bpersonal_folder'] = SiteOptions.objects.is_access_valid(
                request.user, 'zorna_personal_documents')
            extra_context['bpersonal_dir'] = 'U%s/' % request.user.pk
            get_upload_user(request.user)
        communities = get_communities(request.user)
        ao = [com.pk for com in communities if com.enable_documents]
        if ao:
            extra_context['bcommunities_folder'] = True
        else:
            extra_context['bcommunities_folder'] = False
        ao = get_allowed_shared_folders(
            request.user, ['reader', 'manager', 'writer'])
        if ao:
            extra_context['bshared_folder'] = True
        else:
            extra_context['bshared_folder'] = False

        if path and path[0] == 'U':
            extra_context['dir_url'] = reverse('personal_folder_content')
            extra_context['bshared_folder'] = False
            extra_context['bcommunities_folder'] = False
        elif path and path[0] == 'F':
            extra_context['dir_url'] = reverse('shared_folder_content')
            extra_context['bpersonal_folder'] = False
            extra_context['bcommunities_folder'] = False
        elif path and path[0] == 'C':
            extra_context['dir_url'] = reverse('communities_folder_content')
            extra_context['bshared_folder'] = False
            extra_context['bpersonal_folder'] = False
        else:
            extra_context['dir_url'] = ''

        if extra_context['bpersonal_folder'] or extra_context['bcommunities_folder'] or extra_context['bshared_folder']:
            context = RequestContext(request)
            return render_to_response('fileman/fm_home.html', extra_context, context_instance=context)
        else:
            return HttpResponseForbidden()
    else:
        return HttpResponseForbidden()
Example #5
0
File: views.py Project: kamni/zorna
def dirlist_shared_folders(request):
    r = ['<ul class="jqueryFileTree" style="display: none;">']
    pdir = request.GET.get('dir', '')
    pdir = urllib.unquote(pdir.rstrip('/'))
    path = clean_path(pdir)
    if path != pdir:
        path = ''

    if path:
        buser, bmanager = get_user_access_to_path(request.user, path)
        if buser:
            ret = get_sub_folders(path, request.user)
        else:
            ret = []
    else:
        ppath = request.GET.get('path', None)
        if ppath:
            ppath = urllib.unquote(ppath.rstrip('/'))
            folder_dest = clean_path(ppath)
            buser, bmanager = get_user_access_to_path(
                request.user, folder_dest)
            if buser:
                ret = get_sub_folders(folder_dest, request.user)
            else:
                ret = []
        else:
            allowed_objects = get_allowed_shared_folders(
                request.user, ['reader', 'manager', 'writer'])
            ret = []
            ob_list = ZornaFolder.objects.filter(
                pk__in=allowed_objects, parent__isnull=True)
            root_path = get_upload_library()
            for f in ob_list:
                path = u"F%s" % f.pk
                fullpath = u"%s/%s" % (root_path, path)
                if not os.path.isdir(fullpath):
                    os.makedirs(fullpath)
                ret.append({'name': f.name, 'rel': path})

    for d in ret:
        r.append(
            '<li class="directory collapsed"><a href="#" rel="%s/" title="%s/">%s</a></li>' %
            (d['rel'], d['rel'], d['name']))
    r.append('</ul>')
    return HttpResponse(''.join(r))
Example #6
0
def dirlist_shared_folders(request):
    r = ['<ul class="jqueryFileTree" style="display: none;">']
    pdir = request.GET.get('dir', '')
    pdir = urllib.unquote(pdir.rstrip('/'))
    path = clean_path(pdir)
    if path != pdir:
        path = ''

    if path:
        buser, bmanager = get_user_access_to_path(request.user, path)
        if buser:
            ret = get_sub_folders(path, request.user)
        else:
            ret = []
    else:
        ppath = request.GET.get('path', None)
        if ppath:
            ppath = urllib.unquote(ppath.rstrip('/'))
            folder_dest = clean_path(ppath)
            buser, bmanager = get_user_access_to_path(
                request.user, folder_dest)
            if buser:
                ret = get_sub_folders(folder_dest, request.user)
            else:
                ret = []
        else:
            allowed_objects = get_allowed_shared_folders(
                request.user, ['reader', 'manager', 'writer'])
            ret = []
            ob_list = ZornaFolder.objects.filter(
                pk__in=allowed_objects, parent__isnull=True)
            root_path = get_upload_library()
            for f in ob_list:
                path = u"F%s" % f.pk
                fullpath = u"%s/%s" % (root_path, path)
                if not os.path.isdir(fullpath):
                    os.makedirs(fullpath)
                ret.append({'name': f.name, 'rel': path})

    for d in ret:
        r.append(
            '<li class="directory collapsed"><a href="#" rel="%s/" title="%s/">%s</a></li>' %
            (d['rel'], d['rel'], d['name']))
    r.append('</ul>')
    return HttpResponse(''.join(r))
Example #7
0
File: views.py Project: kamni/zorna
def get_sub_folders(dir_path, user=None):
    ret = []
    root_path = get_upload_library()
    d = urllib.unquote(dir_path)
    dirs = d.split('/')
    if dirs[0][0] == 'F' and len(dirs) == 1:
        allowed_objects = get_allowed_shared_folders(
            user, ['reader', 'manager', 'writer'])
        ob_list = ZornaFolder.objects.filter(Q(pk__in=allowed_objects) | Q(
            inherit_permissions=True), parent__pk=dirs[0][1:])
        for f in ob_list:
            fullpath = u"%s/%s" % (root_path, u"F%s" % f.pk)
            if not os.path.isdir(fullpath):
                os.makedirs(fullpath)
            ret.append({'name': f.name, 'rel': 'F%s' % f.pk})

    path = u"%s/%s" % (root_path, d)
    for f in os.listdir(path):
        ff = os.path.join(path, f)
        if os.path.isdir(ff):
            relpath = u"%s/%s" % (d, f)
            ret.append({'name': f, 'rel': relpath})
    return ret
Example #8
0
def get_sub_folders(dir_path, user=None):
    ret = []
    root_path = get_upload_library()
    d = urllib.unquote(dir_path)
    dirs = d.split('/')
    if dirs[0][0] == 'F' and len(dirs) == 1:
        allowed_objects = get_allowed_shared_folders(
            user, ['reader', 'manager', 'writer'])
        ob_list = ZornaFolder.objects.filter(Q(pk__in=allowed_objects) | Q(
            inherit_permissions=True), parent__pk=dirs[0][1:])
        for f in ob_list:
            fullpath = u"%s/%s" % (root_path, u"F%s" % f.pk)
            if not os.path.isdir(fullpath):
                os.makedirs(fullpath)
            ret.append({'name': f.name, 'rel': 'F%s' % f.pk})

    path = u"%s/%s" % (root_path, d)
    for f in os.listdir(path):
        ff = os.path.join(path, f)
        if os.path.isdir(ff):
            relpath = u"%s/%s" % (d, f)
            ret.append({'name': f, 'rel': relpath})
    return ret