feat: 站点管理接口

GET/POST /api/admin/sites、PATCH /api/admin/sites/<pk> 登录成员可用;
DELETE 仅 admin,走软删(is_active=False),物理清除留待未来管理命令
分批删(防大站级联删除锁表),CASCADE 仅完整性兜底。域名归一去协议/
端口/路径、小写、去空去重;错误响应统一信封(EnvelopeMixin)。
软删后 collect 上报 403 not_allowed(Task7 联动,测试锁定)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-15 14:29:18 +08:00
parent f22786d746
commit 16207ae309
3 changed files with 196 additions and 0 deletions
+3
View File
@@ -1,6 +1,7 @@
from django.urls import path
from tracker.api.collect import CollectBatchView
from tracker.api.auth import LoginView, RefreshView, MeView, UserCreateView
from tracker.api.sites import SiteListView, SiteDetailView
urlpatterns = [
path("api/collect/batch", CollectBatchView.as_view()),
@@ -11,4 +12,6 @@ urlpatterns += [
path("api/admin/auth/refresh", RefreshView.as_view()),
path("api/admin/auth/me", MeView.as_view()),
path("api/admin/users", UserCreateView.as_view()),
path("api/admin/sites", SiteListView.as_view()),
path("api/admin/sites/<int:pk>", SiteDetailView.as_view()),
]