]> git.parisson.com Git - telemeta.git/commitdiff
Add permissions for running analysis
authorThomas Fillon <thomas@parisson.com>
Mon, 24 Apr 2017 10:33:36 +0000 (12:33 +0200)
committerThomas Fillon <thomas@parisson.com>
Fri, 2 Jun 2017 11:58:16 +0000 (13:58 +0200)
telemeta/models/item.py
telemeta/views/item.py

index 132e2b01057e9bfe64acb208ba62e24b40465e44..7ae715f7ec7201263e16bd944a9a0555f99c6652 100644 (file)
@@ -148,7 +148,8 @@ class MediaItem(MediaResource):
     class Meta(MetaCore):
         db_table = 'media_items'
         permissions = (("can_play_all_items", "Can play all media items"),
-                       ("can_download_all_items", "Can download all media items"), )
+                       ("can_download_all_items", "Can download all media items"),
+                       ("can_run_analysis", "Can run analysis"),)
         verbose_name = _('item')
 
     def is_valid_code(self, code):
index d6e0a0ca8966930132e467b96f653427fb300042..df24ffb5d73441fab0dd6e5ac57e40daf94f9d54 100644 (file)
@@ -51,11 +51,13 @@ class ItemBaseMixin(TelemetaBaseMixin):
     def get_graphers(self):
         graphers = []
         user = self.request.user
-        graphers_access = False
-        if user.is_staff or user.is_superuser:
-            graphers_access = True
+        graphers_access = (user.is_staff
+                           or user.is_superuser
+                           or user.has_perm('can_run_analysis'))
+           
         for grapher in self.graphers:
-            if not graphers_access and grapher.id() not in self.public_graphers:
+            if (not graphers_access
+                and grapher.id() not in self.public_graphers):
                 continue
             if grapher.id() == self.default_grapher_id:
                 graphers.insert(0, {'name': grapher.name(), 'id': grapher.id()})