Start work on the creator pseudo class acl holder

This commit is contained in:
Roberto Rosario
2012-01-20 22:54:26 -04:00
parent 39f47702c0
commit d1eb387c16
2 changed files with 24 additions and 0 deletions

View File

@@ -45,3 +45,7 @@ class HolderSelectionForm(forms.Form):
super(HolderSelectionForm, self).__init__(*args, **kwargs)
self.fields['holder_gid'].choices = non_holder_list
class ClassHolderSelectionForm(HolderSelectionForm):
pass

View File

@@ -11,6 +11,7 @@ from django.core.exceptions import PermissionDenied
from django.core.exceptions import ObjectDoesNotExist
from permissions.models import StoredPermission
from common.models import Singleton, SingletonManager
from .managers import AccessEntryManager, DefaultAccessEntryManager
from .classes import AccessObjectClass
@@ -91,3 +92,22 @@ class DefaultAccessEntry(models.Model):
def __unicode__(self):
return u'%s: %s' % (self.content_type, self.content_object)
class CreatorSingletonManager(SingletonManager):
def passthru_check(self, holder, creator=None):
if isinstance(holder, self.model):
# TODO: raise explicit error if is instance and creator=None
return creator
else:
return holder
class CreatorSingleton(Singleton):
objects = CreatorSingletonManager()
def __unicode__(self):
return ugettext('Creator')
class Meta:
verbose_name = _(u'creator')
verbose_name_plural = _(u'creator')