Files
leocrm/app/plugins/builtins/permissions/contracts.py
T

35 lines
911 B
Python
Raw Normal View History

2026-07-25 21:03:46 +02:00
"""Permissions plugin contract — public interface for cross-plugin access."""
from __future__ import annotations
from app.plugins.builtins.contracts import get_contract_registry
from app.plugins.builtins.permissions.models import Permission, ShareLink
2026-07-25 21:03:46 +02:00
class PermissionsContract:
"""Public contract for the permissions plugin."""
contract_name = "permissions"
2026-07-25 21:03:46 +02:00
Permission = Permission
ShareLink = ShareLink
# ─── self-registration ───
2026-07-25 21:03:46 +02:00
_contract = PermissionsContract()
get_contract_registry().register("permissions", _contract)
2026-07-25 21:03:46 +02:00
# Backward-compatible local accessor
2026-07-25 21:03:46 +02:00
_contract_instance: PermissionsContract | None = None
def get_contract() -> PermissionsContract:
global _contract_instance
if _contract_instance is None:
_contract_instance = PermissionsContract()
return _contract_instance
__all__ = ["PermissionsContract", "Permission", "ShareLink"]