From a8c95093c45d0024749970354287619950040441 Mon Sep 17 00:00:00 2001 From: BaiJiangJie Date: Sat, 6 Jul 2019 14:46:01 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E4=BF=AE=E5=A4=8DAction=E8=BD=AC?= =?UTF-8?q?=E5=8C=96=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/models/asset_permission.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/perms/models/asset_permission.py b/apps/perms/models/asset_permission.py index 53bceb392..d5fafc63a 100644 --- a/apps/perms/models/asset_permission.py +++ b/apps/perms/models/asset_permission.py @@ -52,16 +52,20 @@ class Action: @classmethod def choices_to_value(cls, value): - if not value: + if not isinstance(value, list): + return cls.NONE + db_value = [ + cls.NAME_MAP_REVERSE[v] for v in value + if v in cls.NAME_MAP_REVERSE.keys() + ] + if not db_value: return cls.NONE - if len(value) == 1: - return cls.NAME_MAP_REVERSE.get(value[0], cls.NONE) def to_choices(x, y): - x = cls.NAME_MAP_REVERSE.get(x, cls.NONE) - y = cls.NAME_MAP_REVERSE.get(y, cls.NONE) return x | y - return reduce(to_choices, value) + + result = reduce(to_choices, db_value) + return result @classmethod def choices(cls):