Enable default acls setup upon creation for documents, folders, tags and smart_links

This commit is contained in:
Roberto Rosario
2012-01-21 04:03:58 -04:00
parent 70953882a7
commit 95f56cbd5a
5 changed files with 16 additions and 4 deletions
+8 -2
View File
@@ -1,18 +1,24 @@
from __future__ import absolute_import from __future__ import absolute_import
import logging
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from common.models import AnonymousUserSingleton
from .models import AccessEntry, DefaultAccessEntry, CreatorSingleton from .models import AccessEntry, DefaultAccessEntry, CreatorSingleton
from .classes import EncapsulatedObject, AccessHolder, ClassAccessHolder from .classes import EncapsulatedObject, AccessHolder, ClassAccessHolder
logger = logging.getLogger(__name__)
def apply_default_acls(self, obj, actor=None):
def apply_default_acls(obj, actor=None):
logger.debug('actor, init: %s' % actor)
if isinstance(obj, EncapsulatedObject): if isinstance(obj, EncapsulatedObject):
obj = obj.source_object obj = obj.source_object
if actor: if actor:
actor = AnonymousUserSingleton.objects.passthru_check(actor) actor = AnonymousUserSingleton.objects.passthru_check(actor)
#actor_type = ContentType.objects.get_for_model(actor)
content_type = ContentType.objects.get_for_model(obj) content_type = ContentType.objects.get_for_model(obj)
+2
View File
@@ -17,6 +17,7 @@ from permissions import Permission
from common.utils import encapsulate from common.utils import encapsulate
from acls.models import AccessEntry from acls.models import AccessEntry
from acls.views import acl_list_for from acls.views import acl_list_for
from acls.utils import apply_default_acls
from .models import Folder from .models import Folder
from .forms import FolderForm, FolderListForm from .forms import FolderForm, FolderListForm
@@ -64,6 +65,7 @@ def folder_create(request):
if form.is_valid(): if form.is_valid():
folder, created = Folder.objects.get_or_create(user=request.user, title=form.cleaned_data['title']) folder, created = Folder.objects.get_or_create(user=request.user, title=form.cleaned_data['title'])
if created: if created:
apply_default_acls(folder, request.user)
messages.success(request, _(u'Folder created successfully')) messages.success(request, _(u'Folder created successfully'))
return HttpResponseRedirect(reverse('folder_list')) return HttpResponseRedirect(reverse('folder_list'))
else: else:
+2
View File
@@ -17,6 +17,7 @@ from documents.permissions import PERMISSION_DOCUMENT_VIEW
from permissions.models import Permission from permissions.models import Permission
from acls.views import acl_list_for from acls.views import acl_list_for
from acls.models import AccessEntry, PermissionDenied from acls.models import AccessEntry, PermissionDenied
from acls.utils import apply_default_acls
from .models import SmartLink, SmartLinkCondition from .models import SmartLink, SmartLinkCondition
from .conf.settings import SHOW_EMPTY_SMART_LINKS from .conf.settings import SHOW_EMPTY_SMART_LINKS
@@ -147,6 +148,7 @@ def smart_link_create(request):
form = SmartLinkForm(request.POST) form = SmartLinkForm(request.POST)
if form.is_valid(): if form.is_valid():
document_group = form.save() document_group = form.save()
apply_default_acls(document_group, request.user)
messages.success(request, _(u'Smart link: %s created successfully.') % document_group) messages.success(request, _(u'Smart link: %s created successfully.') % document_group)
return HttpResponseRedirect(reverse('document_group_list')) return HttpResponseRedirect(reverse('document_group_list'))
else: else:
+1 -1
View File
@@ -77,7 +77,7 @@ class BaseModel(models.Model):
document.document_type = document_type document.document_type = document_type
document.save() document.save()
apply_default_acls(document, document, user) apply_default_acls(document, user)
if metadata_dict_list: if metadata_dict_list:
save_metadata_list(metadata_dict_list, document, create=True) save_metadata_list(metadata_dict_list, document, create=True)
+2
View File
@@ -17,6 +17,7 @@ from documents.permissions import PERMISSION_DOCUMENT_VIEW
from common.utils import encapsulate from common.utils import encapsulate
from acls.models import AccessEntry, PermissionDenied from acls.models import AccessEntry, PermissionDenied
from acls.views import acl_list_for, acl_new_holder_for from acls.views import acl_list_for, acl_new_holder_for
from acls.utils import apply_default_acls
from .forms import TagListForm, TagForm from .forms import TagListForm, TagForm
from .models import TagProperties from .models import TagProperties
@@ -44,6 +45,7 @@ def tag_create(request):
tag = Tag(name=tag_name) tag = Tag(name=tag_name)
tag.save() tag.save()
TagProperties(tag=tag, color=form.cleaned_data['color']).save() TagProperties(tag=tag, color=form.cleaned_data['color']).save()
apply_default_acls(tag, request.user)
messages.success(request, _(u'Tag created succesfully.')) messages.success(request, _(u'Tag created succesfully.'))
return HttpResponseRedirect(redirect_url) return HttpResponseRedirect(redirect_url)