From f1fc926893ffbd7de94093864e9f092fe8760925 Mon Sep 17 00:00:00 2001 From: Soha Jin Date: Sat, 1 Jan 2022 17:06:44 +0800 Subject: [PATCH 1/2] Update base.py --- vj4/handler/base.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/vj4/handler/base.py b/vj4/handler/base.py index 128a039cb..c8d313222 100644 --- a/vj4/handler/base.py +++ b/vj4/handler/base.py @@ -89,10 +89,12 @@ def check_priv(self, priv): raise error.PrivilegeError(priv) def dudoc_has_perm(self, udoc, dudoc, perm, ddoc=None): - if not udoc or not dudoc: - return False - # TODO(iceboy): Fix caller when dudoc=None is passed in. - role = dudoc.get('role', builtin.ROLE_DEFAULT) + if not udoc: + role = builtin.ROLE_GUEST + elif not dudoc: + role = builtin.ROLE_DEFAULT + else: + role = dudoc.get('role', builtin.ROLE_DEFAULT) mask = domain.get_all_roles(ddoc if ddoc else self.domain).get(role, builtin.PERM_NONE) return ((perm & mask) == perm or self.udoc_has_priv(udoc, builtin.PRIV_MANAGE_ALL_DOMAIN)) From bd69d8b5033d07239939d6b03a9a4625cbf40647 Mon Sep 17 00:00:00 2001 From: Soha Jin Date: Thu, 13 Jan 2022 12:20:27 +0800 Subject: [PATCH 2/2] remove redundant null check --- vj4/handler/base.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/vj4/handler/base.py b/vj4/handler/base.py index c8d313222..599fa0681 100644 --- a/vj4/handler/base.py +++ b/vj4/handler/base.py @@ -91,8 +91,6 @@ def check_priv(self, priv): def dudoc_has_perm(self, udoc, dudoc, perm, ddoc=None): if not udoc: role = builtin.ROLE_GUEST - elif not dudoc: - role = builtin.ROLE_DEFAULT else: role = dudoc.get('role', builtin.ROLE_DEFAULT) mask = domain.get_all_roles(ddoc if ddoc else self.domain).get(role, builtin.PERM_NONE)