Added granting and revoking permission methods to the permission model

This commit is contained in:
Roberto Rosario
2011-10-16 07:28:03 -04:00
parent e0110fd15d
commit cb55b95e66

View File

@@ -48,6 +48,18 @@ class Permission(models.Model):
if self.has_permission(membership):
return True
def grant_to(self, requester):
permission_holder, created = PermissionHolder.objects.get_or_create(permission=self, holder_type=ContentType.objects.get_for_model(requester), holder_id=requester.pk)
return created
def revoke_from(self, holder):
try:
permission_holder = PermissionHolder.objects.get(permission=self, holder_type=ContentType.objects.get_for_model(holder), holder_id=holder.pk)
permission_holder.delete()
return True
except PermissionHolder.DoesNotExist:
return False
class PermissionHolder(models.Model):
permission = models.ForeignKey(Permission, verbose_name=_(u'permission'))