"""DMS permissions — IAM permission definitions."""

from __future__ import annotations

from simorgh.apps.iam.registry import register_permission

# ACL Policy management
PERM_ACL_VIEW = "dms.acl.view"
PERM_ACL_MANAGE = "dms.acl.manage"

# Share link permissions
PERM_SHARE_VIEW = "dms.share.view"
PERM_SHARE_MANAGE = "dms.share.manage"


def register_all() -> None:
    register_permission(
        codename=PERM_ACL_VIEW,
        label="DMS: View ACL policies",
        description="Allows listing and reading ACL policies and rules.",
    )
    register_permission(
        codename=PERM_ACL_MANAGE,
        label="DMS: Manage ACL policies",
        description=(
            "Allows creating, updating, and deleting ACL policies, rules, "
            "and document permissions."
        ),
    )
    register_permission(
        codename=PERM_SHARE_VIEW,
        label="DMS: View share links",
        description="Allows listing and reading share links for documents.",
    )
    register_permission(
        codename=PERM_SHARE_MANAGE,
        label="DMS: Manage share links",
        description="Allows creating, revoking, and deleting document share links.",
    )
