Files

15 lines
675 B
Python
Raw Permalink Normal View History

2026-09-09 21:55:37 +08:00
from app.core.contracts import AgentDefinition, RequestContext
from app.core.errors import ForbiddenAgentError
class AgentAuthorizer:
@staticmethod
def ensure_allowed(definition: AgentDefinition, context: RequestContext) -> None:
if not set(definition.allowed_roles).intersection(context.roles):
raise ForbiddenAgentError("当前角色不能使用此 Agent")
if context.portal not in definition.allowed_portals:
raise ForbiddenAgentError("当前入口不能使用此 Agent")
permission = "agent:run"
if permission not in context.permissions:
raise ForbiddenAgentError("缺少 Agent 运行权限")