00b011809a
* fix: enforce admin guard for sandbox file transfer tools * refactor: deduplicate computer tools admin permission checks * fix: add missing space in permission error message
20 lines
944 B
Python
20 lines
944 B
Python
from astrbot.core.agent.run_context import ContextWrapper
|
|
from astrbot.core.astr_agent_context import AstrAgentContext
|
|
|
|
|
|
def check_admin_permission(
|
|
context: ContextWrapper[AstrAgentContext], operation_name: str
|
|
) -> str | None:
|
|
cfg = context.context.context.get_config(
|
|
umo=context.context.event.unified_msg_origin
|
|
)
|
|
provider_settings = cfg.get("provider_settings", {})
|
|
require_admin = provider_settings.get("computer_use_require_admin", True)
|
|
if require_admin and context.context.event.role != "admin":
|
|
return (
|
|
f"error: Permission denied. {operation_name} is only allowed for admin users. "
|
|
"Tell user to set admins in `AstrBot WebUI -> Config -> General Config` by adding their user ID to the admins list if they need this feature. "
|
|
f"User's ID is: {context.context.event.get_sender_id()}. User's ID can be found by using /sid command."
|
|
)
|
|
return None
|