added rbac for viewing objects
[plstackapi.git] / planetstack / core / models / slicetag.py
index 76cc669..e815721 100644 (file)
@@ -10,5 +10,18 @@ class SliceTag(PlCoreBase):
     name = models.CharField(help_text="The name of this tag", max_length=30, choices=NAME_CHOICES)
     value = models.CharField(help_text="The value of this tag", max_length=1024)
 
+    def can_update(self, user):
+        return self.slice.can_update(user)
 
+    def save_by_user(self, user, *args, **kwds):
+        if self.can_update(user):
+            super(SliceTag, self).save(*args, **kwds)
 
+    @staticmethod
+    def select_by_user(user):
+        if user.is_admin:
+            qs = SliceTag.objects.all()
+        else:
+            st_ids = [st.id for st in SliceTag.objects.filter(user=user)]
+            qs = SliceTag.objects.filter(id__in=st_ids)
+        return qs