diff --git a/sdk/python/feast/permissions/user.py b/sdk/python/feast/permissions/user.py index f80da39a58f..71f13ef30af 100644 --- a/sdk/python/feast/permissions/user.py +++ b/sdk/python/feast/permissions/user.py @@ -13,14 +13,14 @@ class User: def __init__( self, username: str, - roles: list[str] = [], - groups: list[str] = [], - namespaces: list[str] = [], + roles: Optional[list[str]] = None, + groups: Optional[list[str]] = None, + namespaces: Optional[list[str]] = None, ): self._username = username - self._roles = roles - self._groups = groups - self._namespaces = namespaces + self._roles = roles if roles is not None else [] + self._groups = groups if groups is not None else [] + self._namespaces = namespaces if namespaces is not None else [] @property def username(self): diff --git a/sdk/python/tests/unit/permissions/test_user.py b/sdk/python/tests/unit/permissions/test_user.py index cce318cba75..c4660c62553 100644 --- a/sdk/python/tests/unit/permissions/test_user.py +++ b/sdk/python/tests/unit/permissions/test_user.py @@ -32,3 +32,16 @@ def test_user_has_matching_role(users, username, roles, result): assertpy.assert_that(user.has_matching_role(requested_roles=roles)).is_equal_to( result ) + + +def test_users_have_independent_default_permissions(): + first_user = User("first") + second_user = User("second") + + first_user.roles.append("reader") + first_user.groups.append("analytics") + first_user.namespaces.append("production") + + assert second_user.roles == [] + assert second_user.groups == [] + assert second_user.namespaces == []