mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-21 05:43:32 -07:00
WebUI: Disable alternative UI in case of the index page being inaccessible
Initial failed access shows an error as before, but on the next reload it falls back to the default WebUI. PR #22399. Closes #18401.
This commit is contained in:
parent
103ea813dc
commit
3abdc3134b
1 changed files with 22 additions and 1 deletions
|
@ -74,6 +74,7 @@ const QString DEFAULT_SESSION_COOKIE_NAME = u"SID"_s;
|
|||
const QString WWW_FOLDER = u":/www"_s;
|
||||
const QString PUBLIC_FOLDER = u"/public"_s;
|
||||
const QString PRIVATE_FOLDER = u"/private"_s;
|
||||
const QString INDEX_HTML = u"/index.html"_s;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
@ -194,7 +195,7 @@ void WebApplication::sendWebUIFile()
|
|||
|
||||
const QString path = (request().path != u"/")
|
||||
? request().path
|
||||
: u"/index.html"_s;
|
||||
: INDEX_HTML;
|
||||
|
||||
Path localPath = m_rootFolder
|
||||
/ Path(session() ? PRIVATE_FOLDER : PUBLIC_FOLDER)
|
||||
|
@ -208,7 +209,17 @@ void WebApplication::sendWebUIFile()
|
|||
if (m_isAltUIUsed)
|
||||
{
|
||||
if (!Utils::Fs::isRegularFile(localPath))
|
||||
{
|
||||
#ifdef DISABLE_GUI
|
||||
if (path == INDEX_HTML)
|
||||
{
|
||||
auto *preferences = Preferences::instance();
|
||||
preferences->setAltWebUIEnabled(false);
|
||||
preferences->apply();
|
||||
}
|
||||
#endif
|
||||
throw InternalServerErrorHTTPError(tr("Unacceptable file type, only regular file is allowed."));
|
||||
}
|
||||
|
||||
const QString rootFolder = m_rootFolder.data();
|
||||
|
||||
|
@ -216,7 +227,17 @@ void WebApplication::sendWebUIFile()
|
|||
while (fileInfo.path() != rootFolder)
|
||||
{
|
||||
if (fileInfo.isSymLink())
|
||||
{
|
||||
#ifdef DISABLE_GUI
|
||||
if (path == INDEX_HTML)
|
||||
{
|
||||
auto *preferences = Preferences::instance();
|
||||
preferences->setAltWebUIEnabled(false);
|
||||
preferences->apply();
|
||||
}
|
||||
#endif
|
||||
throw InternalServerErrorHTTPError(tr("Symlinks inside alternative UI folder are forbidden."));
|
||||
}
|
||||
|
||||
fileInfo.setFile(fileInfo.path());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue