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