Loading lib/galaxy/webapps/galaxy/api/group_roles.py +12 −3 Original line number Diff line number Diff line Loading @@ -3,9 +3,11 @@ API operations on Group objects. """ import logging from typing import Optional from galaxy.managers.context import ProvidesAppContext from galaxy.managers.group_roles import GroupRolesManager from galaxy.model.db.role import get_private_role_user_emails_dict from galaxy.schema.fields import Security from galaxy.schema.schema import ( GroupRoleListResponse, Loading @@ -26,11 +28,12 @@ log = logging.getLogger(__name__) router = Router(tags=["group_roles"]) def group_role_to_model(trans, group_id: int, role) -> GroupRoleResponse: def group_role_to_model(trans, group_id: int, role, displayed_name: Optional[str] = None) -> GroupRoleResponse: encoded_group_id = Security.security.encode_id(group_id) encoded_role_id = Security.security.encode_id(role.id) url = trans.url_builder("group_role", group_id=encoded_group_id, role_id=encoded_role_id) return GroupRoleResponse(id=role.id, name=role.name, url=url) displayed_name = displayed_name or role.name return GroupRoleResponse(id=role.id, name=displayed_name, url=url) @router.cbv Loading @@ -49,7 +52,13 @@ class FastAPIGroupRoles: trans: ProvidesAppContext = DependsOnTrans, ) -> GroupRoleListResponse: group_roles = self.manager.index(trans, group_id) return GroupRoleListResponse(root=[group_role_to_model(trans, group_id, gr.role) for gr in group_roles]) private_role_emails = get_private_role_user_emails_dict(trans.sa_session) data = [] for group in group_roles: role = group.role displayed_name = private_role_emails.get(role.id, role.name) data.append(group_role_to_model(trans, group_id, role, displayed_name)) return GroupRoleListResponse(root=data) @router.get( "/api/groups/{group_id}/roles/{role_id}", Loading Loading
lib/galaxy/webapps/galaxy/api/group_roles.py +12 −3 Original line number Diff line number Diff line Loading @@ -3,9 +3,11 @@ API operations on Group objects. """ import logging from typing import Optional from galaxy.managers.context import ProvidesAppContext from galaxy.managers.group_roles import GroupRolesManager from galaxy.model.db.role import get_private_role_user_emails_dict from galaxy.schema.fields import Security from galaxy.schema.schema import ( GroupRoleListResponse, Loading @@ -26,11 +28,12 @@ log = logging.getLogger(__name__) router = Router(tags=["group_roles"]) def group_role_to_model(trans, group_id: int, role) -> GroupRoleResponse: def group_role_to_model(trans, group_id: int, role, displayed_name: Optional[str] = None) -> GroupRoleResponse: encoded_group_id = Security.security.encode_id(group_id) encoded_role_id = Security.security.encode_id(role.id) url = trans.url_builder("group_role", group_id=encoded_group_id, role_id=encoded_role_id) return GroupRoleResponse(id=role.id, name=role.name, url=url) displayed_name = displayed_name or role.name return GroupRoleResponse(id=role.id, name=displayed_name, url=url) @router.cbv Loading @@ -49,7 +52,13 @@ class FastAPIGroupRoles: trans: ProvidesAppContext = DependsOnTrans, ) -> GroupRoleListResponse: group_roles = self.manager.index(trans, group_id) return GroupRoleListResponse(root=[group_role_to_model(trans, group_id, gr.role) for gr in group_roles]) private_role_emails = get_private_role_user_emails_dict(trans.sa_session) data = [] for group in group_roles: role = group.role displayed_name = private_role_emails.get(role.id, role.name) data.append(group_role_to_model(trans, group_id, role, displayed_name)) return GroupRoleListResponse(root=data) @router.get( "/api/groups/{group_id}/roles/{role_id}", Loading