@@ -270,6 +270,14 @@ def member_accessible_entity_types_in_domain(cls) -> set[EntityType]:
270270 """
271271 return {* cls ._resource_types (), cls .USER }
272272
273+ def to_element (self ) -> RBACElementType :
274+ from ai .backend .common .exception import RBACTypeConversionError
275+
276+ try :
277+ return RBACElementType (self .value )
278+ except ValueError as e :
279+ raise RBACTypeConversionError (f"{ self !r} has no corresponding RBACElementType" ) from e
280+
273281
274282class FieldType (enum .StrEnum ):
275283 """Field types for RBAC field-scoped entities.
@@ -304,6 +312,14 @@ class ScopeType(enum.StrEnum):
304312 ARTIFACT_REVISION = "artifact_revision"
305313 ROLE = "role"
306314
315+ def to_element (self ) -> RBACElementType :
316+ from ai .backend .common .exception import RBACTypeConversionError
317+
318+ try :
319+ return RBACElementType (self .value )
320+ except ValueError as e :
321+ raise RBACTypeConversionError (f"{ self !r} has no corresponding RBACElementType" ) from e
322+
307323
308324GLOBAL_SCOPE_ID = "global"
309325
@@ -356,6 +372,30 @@ class RBACElementType(enum.StrEnum):
356372 # === Entity-level scopes (for entity-scope permissions) ===
357373 ARTIFACT_REVISION = "artifact_revision"
358374
375+ def to_scope_type (self ) -> ScopeType :
376+ """Temporary bridge for DB/ORM layers that still use ScopeType.
377+
378+ TODO: Remove after the RBAC ORM migration and ScopeType removal are complete.
379+ """
380+ from ai .backend .common .exception import RBACTypeConversionError
381+
382+ try :
383+ return ScopeType (self .value )
384+ except ValueError as e :
385+ raise RBACTypeConversionError (f"{ self !r} has no corresponding ScopeType" ) from e
386+
387+ def to_entity_type (self ) -> EntityType :
388+ """Temporary bridge for DB/ORM layers that still use EntityType.
389+
390+ TODO: Remove after the RBAC ORM migration and EntityType RBAC usage removal are complete.
391+ """
392+ from ai .backend .common .exception import RBACTypeConversionError
393+
394+ try :
395+ return EntityType (self .value )
396+ except ValueError as e :
397+ raise RBACTypeConversionError (f"{ self !r} has no corresponding EntityType" ) from e
398+
359399
360400class RelationType (enum .StrEnum ):
361401 """Classification of parent-child entity edges in BEP-1048.
0 commit comments