Files
zenml/venv/lib/python3.9/site-packages/mlflow/server/auth/permissions.py
Christian Mantha 2ca0b9ef7c star
2026-03-02 19:10:52 -05:00

66 lines
1.2 KiB
Python

from dataclasses import dataclass
from mlflow import MlflowException
from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE
@dataclass
class Permission:
name: str
can_read: bool
can_update: bool
can_delete: bool
can_manage: bool
READ = Permission(
name="READ",
can_read=True,
can_update=False,
can_delete=False,
can_manage=False,
)
EDIT = Permission(
name="EDIT",
can_read=True,
can_update=True,
can_delete=False,
can_manage=False,
)
MANAGE = Permission(
name="MANAGE",
can_read=True,
can_update=True,
can_delete=True,
can_manage=True,
)
NO_PERMISSIONS = Permission(
name="NO_PERMISSIONS",
can_read=False,
can_update=False,
can_delete=False,
can_manage=False,
)
ALL_PERMISSIONS = {
READ.name: READ,
EDIT.name: EDIT,
MANAGE.name: MANAGE,
NO_PERMISSIONS.name: NO_PERMISSIONS,
}
def get_permission(permission: str) -> Permission:
return ALL_PERMISSIONS[permission]
def _validate_permission(permission: str):
if permission not in ALL_PERMISSIONS:
raise MlflowException(
f"Invalid permission '{permission}'. Valid permissions are: {tuple(ALL_PERMISSIONS)}",
INVALID_PARAMETER_VALUE,
)