Hide updater button when web updater is disabled
Whenever the web updater is disabled, the updater button and its matching token requesting endpoints are disabled. Signed-off-by: Vincent Petry <vincent@nextcloud.com>
This commit is contained in:
parent
d4b99c81f3
commit
6ce469132c
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -29,6 +29,7 @@ namespace OCA\UpdateNotification\Controller;
|
|||
|
||||
use OCA\UpdateNotification\ResetTokenBackgroundJob;
|
||||
use OCP\AppFramework\Controller;
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\AppFramework\Utility\ITimeFactory;
|
||||
use OCP\BackgroundJob\IJobList;
|
||||
|
@ -74,6 +75,10 @@ class AdminController extends Controller {
|
|||
$this->l10n = $l10n;
|
||||
}
|
||||
|
||||
private function isUpdaterEnabled() {
|
||||
return !$this->config->getSystemValue('upgrade.disable-web', false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $channel
|
||||
* @return DataResponse
|
||||
|
@ -88,6 +93,10 @@ class AdminController extends Controller {
|
|||
* @return DataResponse
|
||||
*/
|
||||
public function createCredentials(): DataResponse {
|
||||
if (!$this->isUpdaterEnabled()) {
|
||||
return new DataResponse(['status' => 'error', 'message' => $this->l10n->t('Web updater is disabled')], Http::STATUS_FORBIDDEN);
|
||||
}
|
||||
|
||||
// Create a new job and store the creation date
|
||||
$this->jobList->add(ResetTokenBackgroundJob::class);
|
||||
$this->config->setAppValue('core', 'updater.secret.created', $this->timeFactory->getTime());
|
||||
|
|
|
@ -110,6 +110,7 @@ class Admin implements ISettings {
|
|||
'newVersionString' => empty($updateState['updateVersionString']) ? '' : $updateState['updateVersionString'],
|
||||
'downloadLink' => empty($updateState['downloadLink']) ? '' : $updateState['downloadLink'],
|
||||
'changes' => $this->filterChanges($updateState['changes'] ?? []),
|
||||
'webUpdaterEnabled' => !$this->config->getSystemValue('upgrade.disable-web', false),
|
||||
'updaterEnabled' => empty($updateState['updaterEnabled']) ? false : $updateState['updaterEnabled'],
|
||||
'versionIsEol' => empty($updateState['versionIsEol']) ? false : $updateState['versionIsEol'],
|
||||
'isDefaultUpdateServerURL' => $isDefaultUpdateServerURL,
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
</template>
|
||||
|
||||
<div>
|
||||
<a v-if="updaterEnabled"
|
||||
<a v-if="updaterEnabled && webUpdaterEnabled"
|
||||
href="#"
|
||||
class="button primary"
|
||||
@click="clickUpdaterButton">{{ t('updatenotification', 'Open updater') }}</a>
|
||||
|
@ -50,6 +50,9 @@
|
|||
:href="downloadLink"
|
||||
class="button"
|
||||
:class="{ hidden: !updaterEnabled }">{{ t('updatenotification', 'Download now') }}</a>
|
||||
<span v-if="updaterEnabled && !webUpdaterEnabled">
|
||||
{{ t('updatenotification', 'Please use the command line updater to update.') }}
|
||||
</span>
|
||||
<div v-if="whatsNew" class="whatsNew">
|
||||
<div class="toggleWhatsNew">
|
||||
<a v-click-outside="hideMenu" class="button" @click="toggleMenu">{{ t('updatenotification', 'What\'s new?') }}</a>
|
||||
|
@ -132,6 +135,7 @@ export default {
|
|||
newVersionString: '',
|
||||
lastCheckedDate: '',
|
||||
isUpdateChecked: false,
|
||||
webUpdaterEnabled: true,
|
||||
updaterEnabled: true,
|
||||
versionIsEol: false,
|
||||
downloadLink: '',
|
||||
|
@ -322,6 +326,7 @@ export default {
|
|||
this.newVersionString = data.newVersionString
|
||||
this.lastCheckedDate = data.lastChecked
|
||||
this.isUpdateChecked = data.isUpdateChecked
|
||||
this.webUpdaterEnabled = data.webUpdaterEnabled
|
||||
this.updaterEnabled = data.updaterEnabled
|
||||
this.downloadLink = data.downloadLink
|
||||
this.isNewVersionAvailable = data.isNewVersionAvailable
|
||||
|
|
|
@ -9,6 +9,5 @@ declare(strict_types=1);
|
|||
* later. See the COPYING file.
|
||||
*/
|
||||
script('updatenotification', 'updatenotification');
|
||||
/** @var array $_ */
|
||||
?>
|
||||
/** @var array $_ */ ?>
|
||||
<div id="updatenotification" data-json="<?php p($_['json']); ?>"></div>
|
||||
|
|
|
@ -93,10 +93,11 @@ class AdminTest extends TestCase {
|
|||
['updatenotification', 'notify_groups', '["admin"]', '["admin"]'],
|
||||
]);
|
||||
$this->config
|
||||
->expects($this->once())
|
||||
->method('getSystemValue')
|
||||
->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
|
||||
->willReturn('https://updates.nextcloud.com/updater_server/');
|
||||
->willReturnMap([
|
||||
['updater.server.url', 'https://updates.nextcloud.com/updater_server/', 'https://updates.nextcloud.com/updater_server/'],
|
||||
['upgrade.disable-web', false, false],
|
||||
]);
|
||||
$this->dateTimeFormatter
|
||||
->expects($this->once())
|
||||
->method('formatDateTime')
|
||||
|
@ -143,6 +144,7 @@ class AdminTest extends TestCase {
|
|||
'newVersionString' => 'Nextcloud 8.1.2',
|
||||
'downloadLink' => 'https://downloads.nextcloud.org/server',
|
||||
'changes' => [],
|
||||
'webUpdaterEnabled' => true,
|
||||
'updaterEnabled' => true,
|
||||
'versionIsEol' => false,
|
||||
'isDefaultUpdateServerURL' => true,
|
||||
|
@ -178,10 +180,11 @@ class AdminTest extends TestCase {
|
|||
['updatenotification', 'notify_groups', '["admin"]', '["admin"]'],
|
||||
]);
|
||||
$this->config
|
||||
->expects($this->once())
|
||||
->method('getSystemValue')
|
||||
->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
|
||||
->willReturn('https://updates.nextcloud.com/updater_server_changed/');
|
||||
->willReturnMap([
|
||||
['updater.server.url', 'https://updates.nextcloud.com/updater_server/', 'https://updates.nextcloud.com/updater_server_changed/'],
|
||||
['upgrade.disable-web', false, true],
|
||||
]);
|
||||
$this->dateTimeFormatter
|
||||
->expects($this->once())
|
||||
->method('formatDateTime')
|
||||
|
@ -228,6 +231,7 @@ class AdminTest extends TestCase {
|
|||
'newVersionString' => 'Nextcloud 8.1.2',
|
||||
'downloadLink' => 'https://downloads.nextcloud.org/server',
|
||||
'changes' => [],
|
||||
'webUpdaterEnabled' => false,
|
||||
'updaterEnabled' => true,
|
||||
'versionIsEol' => false,
|
||||
'isDefaultUpdateServerURL' => false,
|
||||
|
@ -263,10 +267,11 @@ class AdminTest extends TestCase {
|
|||
['updatenotification', 'notify_groups', '["admin"]', '["admin"]'],
|
||||
]);
|
||||
$this->config
|
||||
->expects($this->once())
|
||||
->method('getSystemValue')
|
||||
->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
|
||||
->willReturn('https://updates.nextcloud.com/customers/ABC-DEF/');
|
||||
->willReturnMap([
|
||||
['updater.server.url', 'https://updates.nextcloud.com/updater_server/', 'https://updates.nextcloud.com/customers/ABC-DEF/'],
|
||||
['upgrade.disable-web', false, false],
|
||||
]);
|
||||
$this->dateTimeFormatter
|
||||
->expects($this->once())
|
||||
->method('formatDateTime')
|
||||
|
@ -313,6 +318,7 @@ class AdminTest extends TestCase {
|
|||
'newVersionString' => 'Nextcloud 8.1.2',
|
||||
'downloadLink' => 'https://downloads.nextcloud.org/server',
|
||||
'changes' => [],
|
||||
'webUpdaterEnabled' => true,
|
||||
'updaterEnabled' => true,
|
||||
'versionIsEol' => false,
|
||||
'isDefaultUpdateServerURL' => true,
|
||||
|
|
Loading…
Reference in New Issue