From 452d354b525f36906b3c1f1b327e19bf6d228fa6 Mon Sep 17 00:00:00 2001 From: alexshch09 Date: Sat, 22 Feb 2025 00:44:52 +0100 Subject: [PATCH] fix(auth): Add admin-level auth to LibraryController delete update and issue removal --- server/controllers/LibraryController.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/server/controllers/LibraryController.js b/server/controllers/LibraryController.js index 0ece483f..3585dc51 100644 --- a/server/controllers/LibraryController.js +++ b/server/controllers/LibraryController.js @@ -254,6 +254,11 @@ class LibraryController { * @param {Response} res */ async update(req, res) { + if (!req.user.isAdminOrUp) { + Logger.error(`[LibraryController] Non-admin user "${req.user.username}" attempted to update library`) + return res.sendStatus(403) + } + // Validation const updatePayload = {} const keysToCheck = ['name', 'provider', 'mediaType', 'icon'] @@ -519,6 +524,11 @@ class LibraryController { * @param {Response} res */ async delete(req, res) { + if (!req.user.isAdminOrUp) { + Logger.error(`[LibraryController] Non-admin user "${req.user.username}" attempted to delete library`) + return res.sendStatus(403) + } + // Remove library watcher Watcher.removeLibrary(req.library) @@ -639,6 +649,11 @@ class LibraryController { * @param {Response} res */ async removeLibraryItemsWithIssues(req, res) { + if (!req.user.isAdminOrUp) { + Logger.error(`[LibraryController] Non-admin user "${req.user.username}" attempted to delete library items missing or invalid`) + return res.sendStatus(403) + } + const libraryItemsWithIssues = await Database.libraryItemModel.findAll({ where: { libraryId: req.library.id,