From b7b4f8428b66d8e7c65d795dc975ee277d9da4f0 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Tue, 4 Feb 2014 19:50:31 -0500 Subject: [PATCH] fix bugs. refactor --- planetstack/core/models/site.py | 14 +++++--------- planetstack/core/models/slice.py | 10 ++-------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/planetstack/core/models/site.py b/planetstack/core/models/site.py index 9b9aba9..edd9373 100644 --- a/planetstack/core/models/site.py +++ b/planetstack/core/models/site.py @@ -28,11 +28,13 @@ class Site(PlCoreBase): def __unicode__(self): return u'%s' % (self.name) def can_update(self, user): + if user.is_readonly: + return False if user.is_admin: return True site_privs = SitePrivilege.objects.filter(user=user, site=self) for site_priv in site_privs: - if site_priv.role.role_type == 'pi': + if site_priv.role.role == 'pi': return True return False @@ -69,13 +71,7 @@ class SitePrivilege(PlCoreBase): super(SitePrivilege, self).delete(*args, **kwds) def can_update(self, user): - if user.is_admin: - return True - site_privs = SitePrivilege.objects.filter(user=user, site=self) - for site_priv in site_privs: - if site_priv.role.role_type == 'pi': - return True - return False + return self.site.can_update(user) @staticmethod def select_by_user(user): @@ -115,7 +111,7 @@ class DeploymentPrivilege(PlCoreBase): return True dprivs = DeploymentPrivilege.objects.filter(user=user) for dpriv in dprivs: - if dpriv.role.role_type == 'admin': + if dpriv.role.role == 'admin': return True return False diff --git a/planetstack/core/models/slice.py b/planetstack/core/models/slice.py index 823b1d1..c39d09b 100644 --- a/planetstack/core/models/slice.py +++ b/planetstack/core/models/slice.py @@ -49,7 +49,7 @@ class Slice(PlCoreBase): return True slice_privs = SlicePrivilege.objects.filter(user=user, slice=self) for slice_priv in slice_privs: - if slice_priv.role.role_type == 'admin': + if slice_priv.role.role == 'admin': return True return False @@ -77,13 +77,7 @@ class SlicePrivilege(PlCoreBase): def __unicode__(self): return u'%s %s %s' % (self.slice, self.user, self.role) def can_update(self, user): - if user.is_admin: - return True - slice_privs = SlicePrivilege.objects.filter(user=user, slice=self) - for slice_priv in slice_privs: - if slice_priv.role.role_type == 'admin': - return True - return False + return self.slice.can_update(user) @staticmethod def select_by_user(user): -- 2.43.0