feat(providers): expand OAuth account management

Add Claude Code manual and cookie authorization, including redacted batch tasks. Harden OAuth imports, duplicate replacement, provider dialogs, and related account-management tests.
This commit is contained in:
elky
2026-07-27 15:53:28 +08:00
parent 531cf11025
commit 550cc36760
55 changed files with 4957 additions and 403 deletions
@@ -222,6 +222,39 @@ pub(super) fn classify_oauth_route(
"admin:provider_oauth",
false,
))
} else if method == http::Method::POST
&& normalized_path.starts_with("/api/admin/provider-oauth/providers/")
&& normalized_path.ends_with("/cookie-authorize/tasks")
{
Some(classified(
"admin_proxy",
"provider_oauth_manage",
"start_cookie_authorize_task",
"admin:provider_oauth",
false,
))
} else if method == http::Method::GET
&& normalized_path.starts_with("/api/admin/provider-oauth/providers/")
&& normalized_path.contains("/cookie-authorize/tasks/")
{
Some(classified(
"admin_proxy",
"provider_oauth_manage",
"get_cookie_authorize_task_status",
"admin:provider_oauth",
false,
))
} else if method == http::Method::POST
&& normalized_path.starts_with("/api/admin/provider-oauth/providers/")
&& normalized_path.ends_with("/cookie-authorize")
{
Some(classified(
"admin_proxy",
"provider_oauth_manage",
"cookie_authorize",
"admin:provider_oauth",
false,
))
} else if method == http::Method::POST
&& normalized_path.starts_with("/api/admin/provider-oauth/providers/")
&& normalized_path.ends_with("/agent-identity-import/tasks")
@@ -109,6 +109,27 @@ fn classifies_admin_provider_oauth_maintenance_routes_as_admin_proxy_route() {
"admin:provider_oauth",
"admin:provider_oauth:write",
),
(
http::Method::POST,
"/api/admin/provider-oauth/providers/provider-123/cookie-authorize",
"cookie_authorize",
"admin:provider_oauth",
"admin:provider_oauth:write",
),
(
http::Method::POST,
"/api/admin/provider-oauth/providers/provider-123/cookie-authorize/tasks",
"start_cookie_authorize_task",
"admin:provider_oauth",
"admin:provider_oauth:write",
),
(
http::Method::GET,
"/api/admin/provider-oauth/providers/provider-123/cookie-authorize/tasks/claude-cookie-task-123",
"get_cookie_authorize_task_status",
"admin:provider_oauth",
"admin:provider_oauth:read",
),
(
http::Method::POST,
"/api/admin/provider-oauth/providers/provider-123/agent-identity-import/tasks",