v3: added playlist moderation permission
All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 43s
All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 43s
This commit is contained in:
@@ -8,6 +8,7 @@ import {
|
||||
isUpdatePlaylistRequest,
|
||||
} from "../model/interfaces.ts";
|
||||
import { authMiddleware, type AuthState } from "../middleware/auth.ts";
|
||||
import { can } from "../lib/permissions.ts";
|
||||
import {
|
||||
addDumpToPlaylist,
|
||||
createPlaylist,
|
||||
@@ -72,13 +73,18 @@ router.put("/:playlistId", authMiddleware, async (ctx) => {
|
||||
ctx.params.playlistId,
|
||||
body,
|
||||
ctx.state.user.userId,
|
||||
can(ctx.state.user, "playlist:moderate"),
|
||||
);
|
||||
ctx.response.body = { success: true, data: playlist };
|
||||
});
|
||||
|
||||
// DELETE /api/playlists/:playlistId
|
||||
router.delete("/:playlistId", authMiddleware, (ctx) => {
|
||||
deletePlaylist(ctx.params.playlistId, ctx.state.user.userId);
|
||||
deletePlaylist(
|
||||
ctx.params.playlistId,
|
||||
ctx.state.user.userId,
|
||||
can(ctx.state.user, "playlist:moderate"),
|
||||
);
|
||||
ctx.response.status = 204;
|
||||
});
|
||||
|
||||
@@ -88,6 +94,7 @@ router.post("/:playlistId/dumps/:dumpId", authMiddleware, (ctx) => {
|
||||
ctx.params.playlistId,
|
||||
ctx.params.dumpId,
|
||||
ctx.state.user.userId,
|
||||
can(ctx.state.user, "playlist:moderate"),
|
||||
);
|
||||
ctx.response.status = 204;
|
||||
});
|
||||
@@ -98,6 +105,7 @@ router.delete("/:playlistId/dumps/:dumpId", authMiddleware, (ctx) => {
|
||||
ctx.params.playlistId,
|
||||
ctx.params.dumpId,
|
||||
ctx.state.user.userId,
|
||||
can(ctx.state.user, "playlist:moderate"),
|
||||
);
|
||||
ctx.response.status = 204;
|
||||
});
|
||||
@@ -129,6 +137,7 @@ router.post("/:playlistId/image", authMiddleware, async (ctx) => {
|
||||
ctx.params.playlistId,
|
||||
mime,
|
||||
ctx.state.user.userId,
|
||||
can(ctx.state.user, "playlist:moderate"),
|
||||
);
|
||||
const filePath = `${PLAYLIST_IMAGES_DIR}/${playlist.id}`;
|
||||
await Deno.mkdir(PLAYLIST_IMAGES_DIR, { recursive: true });
|
||||
@@ -166,7 +175,12 @@ router.put("/:playlistId/order", authMiddleware, async (ctx) => {
|
||||
"Invalid request",
|
||||
);
|
||||
}
|
||||
reorderPlaylist(ctx.params.playlistId, body.dumpIds, ctx.state.user.userId);
|
||||
reorderPlaylist(
|
||||
ctx.params.playlistId,
|
||||
body.dumpIds,
|
||||
ctx.state.user.userId,
|
||||
can(ctx.state.user, "playlist:moderate"),
|
||||
);
|
||||
ctx.response.body = { success: true, data: null };
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user