Loading lib/galaxy/managers/libraries.py +20 −19 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ from galaxy.model.db.library import ( get_library_ids, get_library_permissions_by_role, ) from galaxy.model.db.role import get_private_role_user_emails_dict from galaxy.util import ( pretty_print_time_interval, unicodify, Loading Loading @@ -277,26 +278,26 @@ class LibraryManager: :rtype: dictionary :returns: dict of current roles for all available permission types """ access_library_role_list = [ (access_role.name, trans.security.encode_id(access_role.id)) for access_role in self.get_access_roles(trans, library) ] modify_library_role_list = [ (modify_role.name, trans.security.encode_id(modify_role.id)) for modify_role in self.get_modify_roles(trans, library) ] manage_library_role_list = [ (manage_role.name, trans.security.encode_id(manage_role.id)) for manage_role in self.get_manage_roles(trans, library) ] add_library_item_role_list = [ (add_role.name, trans.security.encode_id(add_role.id)) for add_role in self.get_add_roles(trans, library) ] private_role_emails = get_private_role_user_emails_dict(trans.sa_session) access_roles = self.get_access_roles(trans, library) modify_roles = self.get_modify_roles(trans, library) manage_roles = self.get_manage_roles(trans, library) add_roles = self.get_add_roles(trans, library) def make_tuples(roles: Set): tuples = [] for role in roles: # use role name for non-private roles, and user.email from private rules displayed_name = private_role_emails.get(role.id, role.name) role_tuple = (displayed_name, trans.security.encode_id(role.id)) tuples.append(role_tuple) return tuples return dict( access_library_role_list=access_library_role_list, modify_library_role_list=modify_library_role_list, manage_library_role_list=manage_library_role_list, add_library_item_role_list=add_library_item_role_list, access_library_role_list=make_tuples(access_roles), modify_library_role_list=make_tuples(modify_roles), manage_library_role_list=make_tuples(manage_roles), add_library_item_role_list=make_tuples(add_roles), ) def get_access_roles(self, trans, library: Library) -> Set[Role]: Loading lib/galaxy/webapps/galaxy/services/libraries.py +4 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ from galaxy.managers.folders import FolderManager from galaxy.managers.libraries import LibraryManager from galaxy.managers.roles import RoleManager from galaxy.model import Role from galaxy.model.db.role import get_private_role_user_emails_dict from galaxy.schema.fields import DecodedDatabaseIdField from galaxy.schema.schema import ( BasicRoleModel, Loading Loading @@ -170,9 +171,11 @@ class LibrariesService(ServiceBase, ConsumesModelStores): trans, library, query, page, page_limit, is_library_access ) private_role_emails = get_private_role_user_emails_dict(trans.sa_session) return_roles = [] for role in roles: return_roles.append(BasicRoleModel(id=role.id, name=role.name, type=role.type)) displayed_name = private_role_emails.get(role.id, role.name) return_roles.append(BasicRoleModel(id=role.id, name=displayed_name, type=role.type)) return LibraryAvailablePermissions.model_construct( roles=return_roles, page=page, page_limit=page_limit, total=total_roles ) Loading Loading
lib/galaxy/managers/libraries.py +20 −19 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ from galaxy.model.db.library import ( get_library_ids, get_library_permissions_by_role, ) from galaxy.model.db.role import get_private_role_user_emails_dict from galaxy.util import ( pretty_print_time_interval, unicodify, Loading Loading @@ -277,26 +278,26 @@ class LibraryManager: :rtype: dictionary :returns: dict of current roles for all available permission types """ access_library_role_list = [ (access_role.name, trans.security.encode_id(access_role.id)) for access_role in self.get_access_roles(trans, library) ] modify_library_role_list = [ (modify_role.name, trans.security.encode_id(modify_role.id)) for modify_role in self.get_modify_roles(trans, library) ] manage_library_role_list = [ (manage_role.name, trans.security.encode_id(manage_role.id)) for manage_role in self.get_manage_roles(trans, library) ] add_library_item_role_list = [ (add_role.name, trans.security.encode_id(add_role.id)) for add_role in self.get_add_roles(trans, library) ] private_role_emails = get_private_role_user_emails_dict(trans.sa_session) access_roles = self.get_access_roles(trans, library) modify_roles = self.get_modify_roles(trans, library) manage_roles = self.get_manage_roles(trans, library) add_roles = self.get_add_roles(trans, library) def make_tuples(roles: Set): tuples = [] for role in roles: # use role name for non-private roles, and user.email from private rules displayed_name = private_role_emails.get(role.id, role.name) role_tuple = (displayed_name, trans.security.encode_id(role.id)) tuples.append(role_tuple) return tuples return dict( access_library_role_list=access_library_role_list, modify_library_role_list=modify_library_role_list, manage_library_role_list=manage_library_role_list, add_library_item_role_list=add_library_item_role_list, access_library_role_list=make_tuples(access_roles), modify_library_role_list=make_tuples(modify_roles), manage_library_role_list=make_tuples(manage_roles), add_library_item_role_list=make_tuples(add_roles), ) def get_access_roles(self, trans, library: Library) -> Set[Role]: Loading
lib/galaxy/webapps/galaxy/services/libraries.py +4 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ from galaxy.managers.folders import FolderManager from galaxy.managers.libraries import LibraryManager from galaxy.managers.roles import RoleManager from galaxy.model import Role from galaxy.model.db.role import get_private_role_user_emails_dict from galaxy.schema.fields import DecodedDatabaseIdField from galaxy.schema.schema import ( BasicRoleModel, Loading Loading @@ -170,9 +171,11 @@ class LibrariesService(ServiceBase, ConsumesModelStores): trans, library, query, page, page_limit, is_library_access ) private_role_emails = get_private_role_user_emails_dict(trans.sa_session) return_roles = [] for role in roles: return_roles.append(BasicRoleModel(id=role.id, name=role.name, type=role.type)) displayed_name = private_role_emails.get(role.id, role.name) return_roles.append(BasicRoleModel(id=role.id, name=displayed_name, type=role.type)) return LibraryAvailablePermissions.model_construct( roles=return_roles, page=page, page_limit=page_limit, total=total_roles ) Loading