Don't delete non myvbv roles
This commit is contained in:
parent
857c4a4742
commit
6f71fc2fd7
|
|
@ -84,7 +84,9 @@ def sync_roles_for_user(user: User, course_roles: CourseRolesType):
|
|||
if settings.OAUTH_SYNC_ROLES:
|
||||
user_id = user.additional_json_data.get("intermediate_sso_id", "")
|
||||
if user_id:
|
||||
assigned_roles = keycloak_admin.get_realm_roles_of_user(user_id=user_id)
|
||||
assigned_roles = _filter_non_myvbv_roles(
|
||||
keycloak_admin.get_realm_roles_of_user(user_id=user_id)
|
||||
)
|
||||
if assigned_roles:
|
||||
keycloak_admin.delete_realm_roles_of_user(
|
||||
user_id=user_id,
|
||||
|
|
@ -145,3 +147,7 @@ def _create_role_name(course_slug: str, role: str) -> List[str]:
|
|||
def _remove_accents(input_str) -> str:
|
||||
nfkd_form = unicodedata.normalize("NFKD", input_str)
|
||||
return "".join([char for char in nfkd_form if not unicodedata.combining(char)])
|
||||
|
||||
|
||||
def _filter_non_myvbv_roles(roles: List[str]) -> List[str]:
|
||||
return [role for role in roles if role["name"].startswith("myvbv-")]
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ from keycloak.exceptions import KeycloakDeleteError, KeycloakPostError
|
|||
from vbv_lernwelt.core.models import User
|
||||
from vbv_lernwelt.sso.exceptions import MyVbvKeycloakDeleteError, MyVbvKeycloakPostError
|
||||
from vbv_lernwelt.sso.role_sync.services import (
|
||||
_filter_non_myvbv_roles,
|
||||
_remove_accents,
|
||||
add_roles_to_user,
|
||||
create_user,
|
||||
|
|
@ -152,6 +153,15 @@ class HelpersTestCase(TestCase):
|
|||
no_accents = _remove_accents("äüöéèà")
|
||||
self.assertEqual(no_accents, "auoeea")
|
||||
|
||||
|
||||
# test helpers
|
||||
# test wrong key
|
||||
def test_filter_non_myvbv_roles(self):
|
||||
roles = [
|
||||
{"name": "myvbv-uberbetriebliche-kurse-expert"},
|
||||
{"name": "myvbv-versicherungsvermittler-in-member"},
|
||||
{"name": "other-role"},
|
||||
]
|
||||
filtered_roles = [
|
||||
{"name": "myvbv-uberbetriebliche-kurse-expert"},
|
||||
{"name": "myvbv-versicherungsvermittler-in-member"},
|
||||
]
|
||||
result = _filter_non_myvbv_roles(roles)
|
||||
self.assertEqual(result, filtered_roles)
|
||||
|
|
|
|||
Loading…
Reference in New Issue