Fix possible None in TokenContainedEvaluator

The evaluator was not expecting None and retrieving roles or groups for an anonymous user was actually returning None instead of an empty set of roles or groups.
This commit is contained in:
davelopez
2021-10-08 17:15:41 +02:00
parent d1b6d4fb16
commit eab03a0f97
2 changed files with 8 additions and 3 deletions
+7 -2
View File
@@ -4,6 +4,7 @@ from collections import (
defaultdict,
namedtuple,
)
from typing import Set
from galaxy import exceptions
from galaxy.util import (
@@ -246,15 +247,19 @@ class ProvidesUserFileSourcesUserContext:
return user and user.extra_preferences or defaultdict(lambda: None)
@property
def role_names(self):
def role_names(self) -> Set[str]:
"""The set of role names of this user."""
user = self.trans.user
if user is None:
return set()
return user and set([ura.role.name for ura in user.roles])
@property
def group_names(self):
def group_names(self) -> Set[str]:
"""The set of group names to which this user belongs."""
user = self.trans.user
if user is None:
return set()
return user and set([ugr.group.name for ugr in user.groups])
@property
+1 -1
View File
@@ -172,7 +172,7 @@ class TokenContainedEvaluator(TokenEvaluator):
:param tokens: The list of tokens that should be evaluated to True.
:type tokens: List[str]
"""
self.tokens = tokens
self.tokens = tokens or set()
def evaluate(self, token: str) -> bool:
return token in self.tokens