mirror of
https://github.com/ZHANGTIANYAO1/teamspeak-music-bot.git
synced 2026-10-02 13:02:49 +08:00
feat(music): lock quality read from guests
This commit is contained in:
1 parent
e0acbf5457
commit
0073d7d612
2 files changed
+9
-1
No files matched your search
@@ -3,6 +3,7 @@ import type { MusicProvider } from "../../music/provider.js";
|
|||||||
import { YouTubeProvider } from "../../music/youtube.js";
|
import { YouTubeProvider } from "../../music/youtube.js";
|
||||||
import type { Logger } from "../../logger.js";
|
import type { Logger } from "../../logger.js";
|
||||||
import { requirePermission } from "../middleware/requirePermission.js";
|
import { requirePermission } from "../middleware/requirePermission.js";
|
||||||
|
import { requireNotGuest } from "../middleware/requireNotGuest.js";
|
||||||
|
|
||||||
export function createMusicRouter(
|
export function createMusicRouter(
|
||||||
neteaseProvider: MusicProvider,
|
neteaseProvider: MusicProvider,
|
||||||
@@ -209,7 +210,7 @@ export function createMusicRouter(
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Get current quality
|
// Get current quality
|
||||||
router.get("/quality", (_req, res) => {
|
router.get("/quality", requireNotGuest, (_req, res) => {
|
||||||
res.json({
|
res.json({
|
||||||
netease: neteaseProvider.getQuality(),
|
netease: neteaseProvider.getQuality(),
|
||||||
qq: qqProvider.getQuality(),
|
qq: qqProvider.getQuality(),
|
||||||
|
|||||||
@@ -188,6 +188,13 @@ describe("permission enforcement on action routes", () => {
|
|||||||
const res = await request(app).post("/api/music/quality").send({ quality: "high" });
|
const res = await request(app).post("/api/music/quality").send({ quality: "high" });
|
||||||
expect(res.status).not.toBe(403);
|
expect(res.status).not.toBe(403);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("GET /api/music/quality is 403 for guests, allowed for members", async () => {
|
||||||
|
const guestApp = makeApp(guest());
|
||||||
|
expect((await request(guestApp).get("/api/music/quality")).status).toBe(403);
|
||||||
|
const memberApp = makeApp(member([], "all"));
|
||||||
|
expect((await request(memberApp).get("/api/music/quality")).status).toBe(200);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("read-only routes stay open", () => {
|
describe("read-only routes stay open", () => {
|
||||||
|
|||||||
Reference in new issue
Block a user