mirror of
https://github.com/apache/superset.git
synced 2026-04-22 01:24:43 +00:00
feat: security, user group support (#32121)
This commit is contained in:
committed by
GitHub
parent
fe33661821
commit
15cf06699a
@@ -63,6 +63,11 @@ from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||
load_world_bank_dashboard_with_slices, # noqa: F401
|
||||
load_world_bank_data, # noqa: F401
|
||||
)
|
||||
from tests.integration_tests.fixtures.users import (
|
||||
create_gamma_user_group, # noqa: F401
|
||||
create_user_group_with_dar, # noqa: F401
|
||||
create_gamma_user_group_with_dar, # noqa: F401
|
||||
)
|
||||
|
||||
NEW_SECURITY_CONVERGE_VIEWS = (
|
||||
"Annotation",
|
||||
@@ -1871,12 +1876,58 @@ class TestSecurityManager(SupersetTestCase):
|
||||
}
|
||||
)
|
||||
|
||||
def test_get_user_roles(self):
|
||||
def test_get_admin_user_roles(self):
|
||||
admin = security_manager.find_user("admin")
|
||||
with override_user(admin):
|
||||
roles = security_manager.get_user_roles()
|
||||
assert admin.roles == roles
|
||||
|
||||
def test_get_gamma_user_roles(self):
|
||||
admin = security_manager.find_user("gamma")
|
||||
with override_user(admin):
|
||||
roles = security_manager.get_user_roles()
|
||||
assert admin.roles == roles
|
||||
|
||||
@pytest.mark.usefixtures("create_gamma_user_group")
|
||||
def test_get_user_roles_with_groups(self):
|
||||
user = security_manager.find_user("gamma_with_groups")
|
||||
with override_user(user):
|
||||
roles = security_manager.get_user_roles()
|
||||
assert user.groups[0].roles == roles
|
||||
|
||||
@pytest.mark.usefixtures("create_gamma_user_group_with_dar")
|
||||
def test_get_user_roles_with_groups_dar(self):
|
||||
user = security_manager.find_user("gamma_with_groups")
|
||||
with override_user(user):
|
||||
role_names = [role.name for role in security_manager.get_user_roles()]
|
||||
assert "Gamma" in role_names
|
||||
assert "dar" in role_names
|
||||
assert len(role_names) == 2
|
||||
|
||||
@pytest.mark.usefixtures("create_user_group_with_dar")
|
||||
def test_user_view_menu_names_with_groups_dar(self):
|
||||
user = security_manager.find_user("gamma_with_groups")
|
||||
with override_user(user):
|
||||
assert security_manager.user_view_menu_names("datasource_access") == {
|
||||
"[examples].[birth_names](id:1)]"
|
||||
}
|
||||
|
||||
@pytest.mark.usefixtures("create_gamma_user_group_with_dar")
|
||||
def test_gamma_user_view_menu_names_with_groups_dar(self):
|
||||
user = security_manager.find_user("gamma_with_groups")
|
||||
with override_user(user):
|
||||
# assert pvm for dar role
|
||||
assert security_manager.user_view_menu_names("datasource_access") == {
|
||||
"[examples].[birth_names](id:1)]"
|
||||
}
|
||||
# assert pvm for gamma role
|
||||
assert security_manager.user_view_menu_names("can_external_metadata") == {
|
||||
"Datasource"
|
||||
}
|
||||
assert security_manager.user_view_menu_names("can_recent_activity") == {
|
||||
"Log"
|
||||
}
|
||||
|
||||
def test_get_anonymous_roles(self):
|
||||
with override_user(security_manager.get_anonymous_user()):
|
||||
roles = security_manager.get_user_roles()
|
||||
|
||||
Reference in New Issue
Block a user