Files
group_fqcd_jr/app/service/agent/authorizer.py
T

15 lines
675 B
Python

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 运行权限")