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) super(HolderSelectionForm, self).__init__(*args, **kwargs)
self.fields['holder_gid'].choices = non_holder_list 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 django.core.exceptions import ObjectDoesNotExist
from permissions.models import StoredPermission from permissions.models import StoredPermission
from common.models import Singleton, SingletonManager
from .managers import AccessEntryManager, DefaultAccessEntryManager from .managers import AccessEntryManager, DefaultAccessEntryManager
from .classes import AccessObjectClass from .classes import AccessObjectClass
@@ -91,3 +92,22 @@ class DefaultAccessEntry(models.Model):
def __unicode__(self): def __unicode__(self):
return u'%s: %s' % (self.content_type, self.content_object) 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')