feat(perm): enforce capabilities + bot access on action routes

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
saopig1andClaude Opus 4.8 committed 2026-05-30 13:32:08 +08:00
1 parent 696b224f8d
commit cd6f2c6078
6 files changed
+287 -39

No files matched your search

+5 -4
View File
@@ -3,6 +3,7 @@ import type { MusicProvider } from "../../music/provider.js";
import { YouTubeProvider } from "../../music/youtube.js";
import type { CookieStore } from "../../music/auth.js";
import type { Logger } from "../../logger.js";
import { requirePermission } from "../middleware/requirePermission.js";
export function createAuthRouter(
neteaseProvider: MusicProvider,
@@ -35,7 +36,7 @@ export function createAuthRouter(
}
});
router.post("/qrcode", async (req, res) => {
router.post("/qrcode", requirePermission("platform.auth"), async (req, res) => {
try {
const { platform } = req.body;
const provider = getProvider(platform);
@@ -77,7 +78,7 @@ export function createAuthRouter(
}
});
router.post("/sms/send", async (req, res) => {
router.post("/sms/send", requirePermission("platform.auth"), async (req, res) => {
try {
const { phone } = req.body;
if (!phone) {
@@ -97,7 +98,7 @@ export function createAuthRouter(
}
});
router.post("/sms/verify", async (req, res) => {
router.post("/sms/verify", requirePermission("platform.auth"), async (req, res) => {
try {
const { phone, code } = req.body;
if (!phone || !code) {
@@ -118,7 +119,7 @@ export function createAuthRouter(
}
});
router.post("/cookie", (req, res) => {
router.post("/cookie", requirePermission("platform.auth"), (req, res) => {
const { platform, cookie } = req.body;
if (!cookie) {
res.status(400).json({ error: "cookie is required" });