Commit a25f2d4a by Bach Dániel

dashboard: rewrite AclUpdateView.has_next_level

parent dbbb156a
...@@ -1064,8 +1064,8 @@ class AclUpdateView(LoginRequiredMixin, View, SingleObjectMixin): ...@@ -1064,8 +1064,8 @@ class AclUpdateView(LoginRequiredMixin, View, SingleObjectMixin):
@classmethod @classmethod
def get_acl_data(cls, obj, user, url): def get_acl_data(cls, obj, user, url):
levels = obj.ACL_LEVELS levels = obj.ACL_LEVELS
allowed_levels = list(l[0] for l in obj.ACL_LEVELS allowed_levels = list(l for l in OrderedDict(levels)
if cls.has_next_level(user, obj, l[0])) if cls.has_next_level(user, obj, l))
is_owner = 'owner' in allowed_levels is_owner = 'owner' in allowed_levels
allowed_users = cls.get_allowed_users(user) allowed_users = cls.get_allowed_users(user)
...@@ -1087,16 +1087,11 @@ class AclUpdateView(LoginRequiredMixin, View, SingleObjectMixin): ...@@ -1087,16 +1087,11 @@ class AclUpdateView(LoginRequiredMixin, View, SingleObjectMixin):
@classmethod @classmethod
def has_next_level(self, user, instance, level): def has_next_level(self, user, instance, level):
# TODO levels = OrderedDict(instance.ACL_LEVELS).keys()
levels = zip(*instance.ACL_LEVELS)[0] next_levels = dict(zip([None] + levels, levels + levels[-1:]))
try: # {None: 'user', 'user': 'operator', 'operator: 'owner',
i = levels.index(level) # 'owner: 'owner'}
except ValueError: next_level = next_levels[level]
i = 0
if i < (len(levels) - 1):
i += 1
next_level = levels[i]
return instance.has_level(user, next_level) return instance.has_level(user, next_level)
@classmethod @classmethod
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment