Simplify document to folder inclusion view, form and logic, add proper acl checking for folder document inclusion, add proper folder permission and acl checks to folder document inclusion form

This commit is contained in:
Roberto Rosario
2012-01-02 06:45:56 -04:00
parent fb62835af5
commit 09b252453a
2 changed files with 30 additions and 31 deletions
+21 -11
View File
@@ -1,9 +1,18 @@
from __future__ import absolute_import
import logging
from django import forms
from django.utils.translation import ugettext_lazy as _
from django.core.exceptions import PermissionDenied
from acls.models import AccessEntry
from permissions.models import Permission
from .models import Folder
from .permissions import PERMISSION_FOLDER_VIEW
logger = logging.getLogger(__name__)
class FolderForm(forms.ModelForm):
@@ -12,17 +21,18 @@ class FolderForm(forms.ModelForm):
fields = ('title',)
class AddDocumentForm(forms.ModelForm):
class FolderListForm(forms.Form):
def __init__(self, *args, **kwargs):
user = kwargs.pop('user', None)
super(AddDocumentForm, self).__init__(*args, **kwargs)
self.fields['existing_folder'] = forms.ModelChoiceField(
required=False,
queryset=Folder.objects.filter(user=user),
label=_(u'Existing folders'))
self.fields['title'].required = False
self.fields['title'].label = _(u'New folder')
logger.debug('user: %s' % user)
super(FolderListForm, self).__init__(*args, **kwargs)
class Meta:
model = Folder
fields = ('title',)
queryset = Folder.objects.all()
try:
Permission.objects.check_permissions(user, [PERMISSION_FOLDER_VIEW])
except PermissionDenied:
queryset = AccessEntry.objects.filter_objects_by_access(PERMISSION_FOLDER_VIEW, user, queryset)
self.fields['folder'] = forms.ModelChoiceField(
queryset=queryset,
label=_(u'Folder'))