39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from __future__ import absolute_import, unicode_literals
|
|
|
|
import logging
|
|
|
|
from django import forms
|
|
from django.core.exceptions import PermissionDenied
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
from acls.models import AccessEntry
|
|
from permissions import Permission
|
|
|
|
from .models import Folder
|
|
from .permissions import permission_folder_view
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class FolderForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Folder
|
|
fields = ('title',)
|
|
|
|
|
|
class FolderListForm(forms.Form):
|
|
def __init__(self, *args, **kwargs):
|
|
user = kwargs.pop('user', None)
|
|
logger.debug('user: %s', user)
|
|
super(FolderListForm, self).__init__(*args, **kwargs)
|
|
|
|
queryset = Folder.objects.all()
|
|
try:
|
|
Permission.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=_('Folder'))
|