Added permissions to all objects in ldt_utils
authorverrierj
Thu, 17 Nov 2011 11:48:23 +0100
changeset 244 bc1dd5fea0b6
parent 243 3cff86180fbe
child 245 953228fcbb56
Added permissions to all objects in ldt_utils
src/ldt/ldt/ldt_utils/models.py
--- a/src/ldt/ldt/ldt_utils/models.py	Thu Nov 17 11:09:49 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/models.py	Thu Nov 17 11:48:23 2011 +0100
@@ -1,10 +1,10 @@
 from django.conf import settings
-from django.contrib.auth.models import User, Group
+from django.contrib.auth.models import User
 from django.db import models
 from django.utils.translation import ugettext_lazy as _
 #from ldt.core.models import Document, Owner
 from ldt.core.models import Document
-from guardian.shortcuts import assign, remove_perm
+from guardian.shortcuts import assign
 import ldt.indexation
 from ldt.security.models import SafeModel
 from ldt.security.manager import SafeManager
@@ -27,6 +27,11 @@
     def __unicode__(self):
         return unicode(self.id) + " - " + self.handle + ", " + self.email + ", " + self.firstname + " " + self.lastname
 
+    class Meta:
+        permissions = (
+                       ('view_author', 'Can view author'),
+                       )
+
 class Media(SafeModel):
     external_id = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('media.external_id'))
     external_permalink = models.URLField(max_length=1024, verify_exists=False, null=True, blank=True, verbose_name=_('media.external_permalink'))
@@ -43,6 +48,11 @@
     src = models.CharField(max_length=1024, unique=True, verbose_name=_('media.src'))
     mimetype_field = models.CharField(max_length=512, null=True, blank=True, verbose_name=_('media.mimetype'))
     
+    class Meta:
+        permissions = (
+                       ('view_media', 'Can view media'),
+                       )
+        
     def mimetype(): #@NoSelf
         def fget(self):
             if self.mimetype_field :
@@ -93,7 +103,11 @@
         return "|".join(strings)
 
 
-class ContentManager(models.Manager):
+class ContentManager(SafeManager):
+    
+    def __init__(self):
+        super(ContentManager, self).__init__(check_perm=False)
+        
     def get_by_natural_key(self, iri_id):
         return self.get(iri_id=iri_id)
 
@@ -115,7 +129,7 @@
     class Meta:
         ordering = ["title"]
         permissions = (
-                       ('view_content', 'Can view Content'),
+                       ('view_content', 'Can view content'),
                        )
     
     def natural_key(self):
@@ -333,18 +347,6 @@
         else:
             return None
         
-    def publish(self):
-        self.state = 2 
-        self.save()
-        public_group = Group.objects.get(name=settings.PUBLIC_GROUP_NAME)
-        assign('view_project', public_group, self)
-        
-    def unpublish(self):
-        self.state = 1
-        self.save()
-        public_group = Group.objects.get(name=settings.PUBLIC_GROUP_NAME)
-        remove_perm('view_project', public_group, self)
-
     def stream_mode(): #@NoSelf
         def fget(self):
             modes = []
@@ -429,5 +431,8 @@
     
     class Meta:
         unique_together = (('project_id', 'iri_id', 'ensemble_id', 'cutting_id', 'element_id'),)
+        permissions = (
+                       ('view_segment', 'Can view segment'),
+                       )