feat(server): add EnableCoverArtUpload config option

Allow administrators to disable playlist cover art upload/removal for
non-admin users via the new EnableCoverArtUpload config option (default: true).

- Guard uploadPlaylistImage and deletePlaylistImage endpoints (403 for non-admin when disabled)
- Set CoverArtRole in Subsonic GetUser/GetUsers responses based on config and admin status
- Pass config to frontend and conditionally hide upload/remove UI controls
- Admins always retain upload capability regardless of setting
This commit is contained in:
Deluan
2026-03-02 16:59:05 -05:00
parent 6fd044fb09
commit 435fb0b076
8 changed files with 131 additions and 33 deletions
+4 -1
View File
@@ -20,6 +20,7 @@ import {
SizeField,
isWritable,
} from '../common'
import config from '../config'
import subsonic from '../subsonic'
import { REST_URL } from '../consts'
import { httpClient } from '../dataProvider'
@@ -134,7 +135,9 @@ const PlaylistDetails = (props) => {
const imageUrl = subsonic.getCoverArtUrl(record, 300, true)
const fullImageUrl = subsonic.getCoverArtUrl(record)
const canEdit = isWritable(record.ownerId)
const canEdit =
isWritable(record.ownerId) &&
(config.enableCoverArtUpload || localStorage.getItem('role') === 'admin')
// Reset image state when playlist changes
useEffect(() => {