mirror of
https://github.com/langgenius/dify.git
synced 2026-09-08 02:43:49 +08:00
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
import logging
|
|
|
|
from configs import dify_config
|
|
from services.enterprise import rbac_service as enterprise_rbac_service
|
|
from tasks.initialize_created_app_rbac_access_task import initialize_created_app_rbac_access_task
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def initialize_agent_rbac_access(*, tenant_id: str, agent_id: str, creator_account_id: str) -> None:
|
|
if not dify_config.RBAC_ENABLED:
|
|
return
|
|
|
|
try:
|
|
initialize_created_app_rbac_access_task.delay(tenant_id, creator_account_id, agent_id=agent_id)
|
|
enterprise_rbac_service.RBACService.AccessPolicies.sync_creator_access_policy_member_bindings(
|
|
tenant_id,
|
|
creator_account_id,
|
|
resource_type=enterprise_rbac_service.RBACResourceType.AGENT,
|
|
resource_id=agent_id,
|
|
)
|
|
enterprise_rbac_service.RBACService.AgentAccess.replace_whitelist(
|
|
tenant_id,
|
|
creator_account_id,
|
|
agent_id,
|
|
enterprise_rbac_service.ReplaceMemberBindings(automatic_include_workspace_members=True),
|
|
)
|
|
except Exception:
|
|
logger.warning(
|
|
"Failed to initialize RBAC access for agent: tenant_id=%s agent_id=%s account_id=%s",
|
|
tenant_id,
|
|
agent_id,
|
|
creator_account_id,
|
|
exc_info=True,
|
|
)
|