From 377e7ebd5230894965a50106b668c43edb7dc92a Mon Sep 17 00:00:00 2001 From: Deluan Date: Thu, 16 Mar 2023 13:11:26 -0400 Subject: [PATCH] Disable share downloading when `EnableDownloads` is false. Fixes https://github.com/navidrome/navidrome/pull/2246#issuecomment-1472341635 --- server/public/public.go | 4 +++- ui/src/dialogs/ShareDialog.js | 20 +++++++++++--------- ui/src/share/ShareEdit.js | 3 ++- ui/src/share/ShareList.js | 2 +- ui/src/share/SharePlayer.js | 4 ++-- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/server/public/public.go b/server/public/public.go index 3c43dbff..5ead6b32 100644 --- a/server/public/public.go +++ b/server/public/public.go @@ -52,7 +52,9 @@ func (p *Router) routes() http.Handler { }) if conf.Server.EnableSharing { r.HandleFunc("/s/{id}", p.handleStream) - r.HandleFunc("/d/{id}", p.handleDownloads) + if conf.Server.EnableDownloads { + r.HandleFunc("/d/{id}", p.handleDownloads) + } r.HandleFunc("/{id}", p.handleShares) r.HandleFunc("/", p.handleShares) r.Handle("/*", p.assetsHandler) diff --git a/ui/src/dialogs/ShareDialog.js b/ui/src/dialogs/ShareDialog.js index fc877234..b88754a8 100644 --- a/ui/src/dialogs/ShareDialog.js +++ b/ui/src/dialogs/ShareDialog.js @@ -33,7 +33,7 @@ export const ShareDialog = () => { const translate = useTranslate() const [description, setDescription] = useState('') const [downloadable, setDownloadable] = useState( - config.defaultDownloadableShare + config.defaultDownloadableShare && config.enableDownloads ) useEffect(() => { setDescription('') @@ -118,14 +118,16 @@ export const ShareDialog = () => { setDescription(event.target.value) }} /> - { - setDownloadable(value) - }} - /> + {config.enableDownloads && ( + { + setDownloadable(value) + }} + /> + )} { const { id, basePath, hasCreate, ...rest } = props @@ -20,7 +21,7 @@ export const ShareEdit = (props) => { {url} - + {config.enableDownloads && } diff --git a/ui/src/share/ShareList.js b/ui/src/share/ShareList.js index 8b8f235e..0219e49d 100644 --- a/ui/src/share/ShareList.js +++ b/ui/src/share/ShareList.js @@ -105,7 +105,7 @@ const ShareList = (props) => { {isDesktop && } {isDesktop && } - + {config.enableDownloads && } {isDesktop && ( diff --git a/ui/src/share/SharePlayer.js b/ui/src/share/SharePlayer.js index 387b6fcd..38493d3c 100644 --- a/ui/src/share/SharePlayer.js +++ b/ui/src/share/SharePlayer.js @@ -1,5 +1,5 @@ import ReactJkMusicPlayer from 'navidrome-music-player' -import { shareInfo } from '../config' +import config, { shareInfo } from '../config' import { shareCoverUrl, shareDownloadUrl, shareStreamUrl } from '../utils' import { makeStyles } from '@material-ui/core/styles' @@ -44,7 +44,7 @@ const SharePlayer = () => { mode: 'full', toggleMode: false, mobileMediaQuery: '', - showDownload: shareInfo?.downloadable, + showDownload: shareInfo?.downloadable && config.enableDownloads, showReload: false, showMediaSession: true, theme: 'auto',