Loading lib/galaxy/managers/datasets.py +17 −9 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ from typing import ( Generic, List, Optional, Set, Type, TypeVar, ) Loading @@ -36,6 +37,7 @@ from galaxy.model import ( HistoryDatasetAssociation, ) from galaxy.model.base import transaction from galaxy.model.db.role import get_private_role_user_emails_dict from galaxy.schema.tasks import ( ComputeDatasetHashTaskRequest, PurgeDatasetsTaskRequest, Loading Loading @@ -451,16 +453,24 @@ class DatasetAssociationManager( library_dataset = None dataset = dataset_assoc.dataset private_role_emails = get_private_role_user_emails_dict(self.session()) # Omit duplicated roles by converting to set access_roles = set(dataset.get_access_roles(self.app.security_agent)) manage_roles = set(dataset.get_manage_permissions_roles(self.app.security_agent)) access_dataset_role_list = [ (access_role.name, self.app.security.encode_id(access_role.id)) for access_role in access_roles ] manage_dataset_role_list = [ (manage_role.name, self.app.security.encode_id(manage_role.id)) for manage_role in manage_roles ] 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, self.app.security.encode_id(role.id)) tuples.append(role_tuple) return tuples access_dataset_role_list = make_tuples(access_roles) manage_dataset_role_list = make_tuples(manage_roles) rval = dict(access_dataset_roles=access_dataset_role_list, manage_dataset_roles=manage_dataset_role_list) if library_dataset is not None: modify_roles = set( Loading @@ -468,9 +478,7 @@ class DatasetAssociationManager( library_dataset, self.app.security_agent.permitted_actions.LIBRARY_MODIFY ) ) modify_item_role_list = [ (modify_role.name, self.app.security.encode_id(modify_role.id)) for modify_role in modify_roles ] modify_item_role_list = make_tuples(modify_roles) rval["modify_item_roles"] = modify_item_role_list return rval Loading Loading
lib/galaxy/managers/datasets.py +17 −9 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ from typing import ( Generic, List, Optional, Set, Type, TypeVar, ) Loading @@ -36,6 +37,7 @@ from galaxy.model import ( HistoryDatasetAssociation, ) from galaxy.model.base import transaction from galaxy.model.db.role import get_private_role_user_emails_dict from galaxy.schema.tasks import ( ComputeDatasetHashTaskRequest, PurgeDatasetsTaskRequest, Loading Loading @@ -451,16 +453,24 @@ class DatasetAssociationManager( library_dataset = None dataset = dataset_assoc.dataset private_role_emails = get_private_role_user_emails_dict(self.session()) # Omit duplicated roles by converting to set access_roles = set(dataset.get_access_roles(self.app.security_agent)) manage_roles = set(dataset.get_manage_permissions_roles(self.app.security_agent)) access_dataset_role_list = [ (access_role.name, self.app.security.encode_id(access_role.id)) for access_role in access_roles ] manage_dataset_role_list = [ (manage_role.name, self.app.security.encode_id(manage_role.id)) for manage_role in manage_roles ] 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, self.app.security.encode_id(role.id)) tuples.append(role_tuple) return tuples access_dataset_role_list = make_tuples(access_roles) manage_dataset_role_list = make_tuples(manage_roles) rval = dict(access_dataset_roles=access_dataset_role_list, manage_dataset_roles=manage_dataset_role_list) if library_dataset is not None: modify_roles = set( Loading @@ -468,9 +478,7 @@ class DatasetAssociationManager( library_dataset, self.app.security_agent.permitted_actions.LIBRARY_MODIFY ) ) modify_item_role_list = [ (modify_role.name, self.app.security.encode_id(modify_role.id)) for modify_role in modify_roles ] modify_item_role_list = make_tuples(modify_roles) rval["modify_item_roles"] = modify_item_role_list return rval Loading