|
@@ -27,6 +27,7 @@ from models.dataset import (
|
|
|
Dataset,
|
|
|
DatasetCollectionBinding,
|
|
|
DatasetPermission,
|
|
|
+ DatasetPermissionEnum,
|
|
|
DatasetProcessRule,
|
|
|
DatasetQuery,
|
|
|
Document,
|
|
@@ -80,21 +81,21 @@ class DatasetService:
|
|
|
if permitted_dataset_ids:
|
|
|
query = query.filter(
|
|
|
db.or_(
|
|
|
- Dataset.permission == 'all_team_members',
|
|
|
- db.and_(Dataset.permission == 'only_me', Dataset.created_by == user.id),
|
|
|
- db.and_(Dataset.permission == 'partial_members', Dataset.id.in_(permitted_dataset_ids))
|
|
|
+ Dataset.permission == DatasetPermissionEnum.ALL_TEAM,
|
|
|
+ db.and_(Dataset.permission == DatasetPermissionEnum.ONLY_ME, Dataset.created_by == user.id),
|
|
|
+ db.and_(Dataset.permission == DatasetPermissionEnum.PARTIAL_TEAM, Dataset.id.in_(permitted_dataset_ids))
|
|
|
)
|
|
|
)
|
|
|
else:
|
|
|
query = query.filter(
|
|
|
db.or_(
|
|
|
- Dataset.permission == 'all_team_members',
|
|
|
- db.and_(Dataset.permission == 'only_me', Dataset.created_by == user.id)
|
|
|
+ Dataset.permission == DatasetPermissionEnum.ALL_TEAM,
|
|
|
+ db.and_(Dataset.permission == DatasetPermissionEnum.ONLY_ME, Dataset.created_by == user.id)
|
|
|
)
|
|
|
)
|
|
|
else:
|
|
|
# if no user, only show datasets that are shared with all team members
|
|
|
- query = query.filter(Dataset.permission == 'all_team_members')
|
|
|
+ query = query.filter(Dataset.permission == DatasetPermissionEnum.ALL_TEAM)
|
|
|
|
|
|
if search:
|
|
|
query = query.filter(Dataset.name.ilike(f'%{search}%'))
|
|
@@ -330,7 +331,7 @@ class DatasetService:
|
|
|
raise NoPermissionError(
|
|
|
'You do not have permission to access this dataset.'
|
|
|
)
|
|
|
- if dataset.permission == 'only_me' and dataset.created_by != user.id:
|
|
|
+ if dataset.permission == DatasetPermissionEnum.ONLY_ME and dataset.created_by != user.id:
|
|
|
logging.debug(
|
|
|
f'User {user.id} does not have permission to access dataset {dataset.id}'
|
|
|
)
|
|
@@ -351,11 +352,11 @@ class DatasetService:
|
|
|
|
|
|
@staticmethod
|
|
|
def check_dataset_operator_permission(user: Account = None, dataset: Dataset = None):
|
|
|
- if dataset.permission == 'only_me':
|
|
|
+ if dataset.permission == DatasetPermissionEnum.ONLY_ME:
|
|
|
if dataset.created_by != user.id:
|
|
|
raise NoPermissionError('You do not have permission to access this dataset.')
|
|
|
|
|
|
- elif dataset.permission == 'partial_members':
|
|
|
+ elif dataset.permission == DatasetPermissionEnum.PARTIAL_TEAM:
|
|
|
if not any(
|
|
|
dp.dataset_id == dataset.id for dp in DatasetPermission.query.filter_by(account_id=user.id).all()
|
|
|
):
|