summaryrefslogtreecommitdiffstats
path: root/apps/updatenotification/lib
diff options
context:
space:
mode:
Diffstat (limited to 'apps/updatenotification/lib')
-rw-r--r--apps/updatenotification/lib/AppInfo/Application.php1
-rw-r--r--apps/updatenotification/lib/Controller/AdminController.php5
-rw-r--r--apps/updatenotification/lib/Notification/BackgroundJob.php56
-rw-r--r--apps/updatenotification/lib/Notification/Notifier.php18
-rw-r--r--apps/updatenotification/lib/ResetTokenBackgroundJob.php1
-rw-r--r--apps/updatenotification/lib/Settings/Admin.php7
-rw-r--r--apps/updatenotification/lib/UpdateChecker.php11
7 files changed, 58 insertions, 41 deletions
diff --git a/apps/updatenotification/lib/AppInfo/Application.php b/apps/updatenotification/lib/AppInfo/Application.php
index ef6f79e4eb5..d79f14764de 100644
--- a/apps/updatenotification/lib/AppInfo/Application.php
+++ b/apps/updatenotification/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2018, Joas Schilling <coding@schilljs.com>
*
diff --git a/apps/updatenotification/lib/Controller/AdminController.php b/apps/updatenotification/lib/Controller/AdminController.php
index ba16f114f61..57f89969db4 100644
--- a/apps/updatenotification/lib/Controller/AdminController.php
+++ b/apps/updatenotification/lib/Controller/AdminController.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -76,7 +77,7 @@ class AdminController extends Controller {
* @param string $channel
* @return DataResponse
*/
- public function setChannel($channel) {
+ public function setChannel(string $channel): DataResponse {
Util::setChannel($channel);
$this->config->setAppValue('core', 'lastupdatedat', 0);
return new DataResponse(['status' => 'success', 'data' => ['message' => $this->l10n->t('Channel updated')]]);
@@ -85,7 +86,7 @@ class AdminController extends Controller {
/**
* @return DataResponse
*/
- public function createCredentials() {
+ public function createCredentials(): DataResponse {
// Create a new job and store the creation date
$this->jobList->add(ResetTokenBackgroundJob::class);
$this->config->setAppValue('core', 'updater.secret.created', $this->timeFactory->getTime());
diff --git a/apps/updatenotification/lib/Notification/BackgroundJob.php b/apps/updatenotification/lib/Notification/BackgroundJob.php
index 3c0cac60cde..c010ccc89e5 100644
--- a/apps/updatenotification/lib/Notification/BackgroundJob.php
+++ b/apps/updatenotification/lib/Notification/BackgroundJob.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -90,7 +91,7 @@ class BackgroundJob extends TimedJob {
* Check for ownCloud update
*/
protected function checkCoreUpdate() {
- if (in_array($this->getChannel(), ['daily', 'git'], true)) {
+ if (\in_array($this->getChannel(), ['daily', 'git'], true)) {
// "These aren't the update channels you're looking for." - Ben Obi-Wan Kenobi
return;
}
@@ -102,10 +103,10 @@ class BackgroundJob extends TimedJob {
$errors = 1 + (int) $this->config->getAppValue('updatenotification', 'update_check_errors', 0);
$this->config->setAppValue('updatenotification', 'update_check_errors', $errors);
- if (in_array($errors, $this->connectionNotifications, true)) {
+ if (\in_array($errors, $this->connectionNotifications, true)) {
$this->sendErrorNotifications($errors);
}
- } else if (is_array($status)) {
+ } else if (\is_array($status)) {
$this->config->setAppValue('updatenotification', 'update_check_errors', 0);
$this->clearErrorNotifications();
@@ -178,26 +179,31 @@ class BackgroundJob extends TimedJob {
if ($lastNotification === $version) {
// We already notified about this update
return;
- } else if ($lastNotification !== false) {
+ }
+
+ if ($lastNotification !== false) {
// Delete old updates
$this->deleteOutdatedNotifications($app, $lastNotification);
}
-
$notification = $this->notificationManager->createNotification();
- $notification->setApp('updatenotification')
- ->setDateTime(new \DateTime())
- ->setObject($app, $version);
-
- if ($visibleVersion !== '') {
- $notification->setSubject('update_available', ['version' => $visibleVersion]);
- } else {
- $notification->setSubject('update_available');
- }
+ try {
+ $notification->setApp('updatenotification')
+ ->setDateTime(new \DateTime())
+ ->setObject($app, $version);
- foreach ($this->getUsersToNotify() as $uid) {
- $notification->setUser($uid);
- $this->notificationManager->notify($notification);
+ if ($visibleVersion !== '') {
+ $notification->setSubject('update_available', ['version' => $visibleVersion]);
+ } else {
+ $notification->setSubject('update_available');
+ }
+
+ foreach ($this->getUsersToNotify() as $uid) {
+ $notification->setUser($uid);
+ $this->notificationManager->notify($notification);
+ }
+ } catch (\InvalidArgumentException $e) {
+ return;
}
$this->config->setAppValue('updatenotification', $app, $version);
@@ -206,12 +212,12 @@ class BackgroundJob extends TimedJob {
/**
* @return string[]
*/
- protected function getUsersToNotify() {
+ protected function getUsersToNotify(): array {
if ($this->users !== null) {
return $this->users;
}
- $notifyGroups = json_decode($this->config->getAppValue('updatenotification', 'notify_groups', '["admin"]'), true);
+ $notifyGroups = (array) json_decode($this->config->getAppValue('updatenotification', 'notify_groups', '["admin"]'), true);
$this->users = [];
foreach ($notifyGroups as $group) {
$groupToNotify = $this->groupManager->get($group);
@@ -235,15 +241,19 @@ class BackgroundJob extends TimedJob {
*/
protected function deleteOutdatedNotifications($app, $version) {
$notification = $this->notificationManager->createNotification();
- $notification->setApp('updatenotification')
- ->setObject($app, $version);
+ try {
+ $notification->setApp('updatenotification')
+ ->setObject($app, $version);
+ } catch (\InvalidArgumentException $e) {
+ return;
+ }
$this->notificationManager->markProcessed($notification);
}
/**
* @return VersionCheck
*/
- protected function createVersionCheck() {
+ protected function createVersionCheck(): VersionCheck {
return new VersionCheck(
$this->client,
$this->config
@@ -253,7 +263,7 @@ class BackgroundJob extends TimedJob {
/**
* @return string
*/
- protected function getChannel() {
+ protected function getChannel(): string {
return \OC_Util::getChannel();
}
diff --git a/apps/updatenotification/lib/Notification/Notifier.php b/apps/updatenotification/lib/Notification/Notifier.php
index d18a2663702..c88937f0dff 100644
--- a/apps/updatenotification/lib/Notification/Notifier.php
+++ b/apps/updatenotification/lib/Notification/Notifier.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -33,6 +34,7 @@ use OCP\L10N\IFactory;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
use OCP\Notification\INotifier;
+use OCP\Util;
class Notifier implements INotifier {
@@ -84,9 +86,9 @@ class Notifier implements INotifier {
* @throws \InvalidArgumentException When the notification was not prepared by a notifier
* @since 9.0.0
*/
- public function prepare(INotification $notification, $languageCode) {
+ public function prepare(INotification $notification, $languageCode): INotification {
if ($notification->getApp() !== 'updatenotification') {
- throw new \InvalidArgumentException();
+ throw new \InvalidArgumentException('Unknown app id');
}
$l = $this->l10NFactory->get('updatenotification', $languageCode);
@@ -94,7 +96,7 @@ class Notifier implements INotifier {
$errors = (int) $this->config->getAppValue('updatenotification', 'update_check_errors', 0);
if ($errors === 0) {
$this->notificationManager->markProcessed($notification);
- throw new \InvalidArgumentException();
+ throw new \InvalidArgumentException('Update checked worked again');
}
$notification->setParsedSubject($l->t('The update server could not be reached since %d days to check for new updates.', [$errors]))
@@ -145,14 +147,14 @@ class Notifier implements INotifier {
protected function updateAlreadyInstalledCheck(INotification $notification, $installedVersion) {
if (version_compare($notification->getObjectId(), $installedVersion, '<=')) {
$this->notificationManager->markProcessed($notification);
- throw new \InvalidArgumentException();
+ throw new \InvalidArgumentException('Update already installed');
}
}
/**
* @return bool
*/
- protected function isAdmin() {
+ protected function isAdmin(): bool {
$user = $this->userSession->getUser();
if ($user instanceof IUser) {
@@ -162,11 +164,11 @@ class Notifier implements INotifier {
return false;
}
- protected function getCoreVersions() {
- return implode('.', \OCP\Util::getVersion());
+ protected function getCoreVersions(): string {
+ return implode('.', Util::getVersion());
}
- protected function getAppVersions() {
+ protected function getAppVersions(): array {
return \OC_App::getAppVersions();
}
diff --git a/apps/updatenotification/lib/ResetTokenBackgroundJob.php b/apps/updatenotification/lib/ResetTokenBackgroundJob.php
index 5dd7c4f35f1..87cca466ec7 100644
--- a/apps/updatenotification/lib/ResetTokenBackgroundJob.php
+++ b/apps/updatenotification/lib/ResetTokenBackgroundJob.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
diff --git a/apps/updatenotification/lib/Settings/Admin.php b/apps/updatenotification/lib/Settings/Admin.php
index 1df4827d77f..7fb6cc99dea 100644
--- a/apps/updatenotification/lib/Settings/Admin.php
+++ b/apps/updatenotification/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -56,7 +57,7 @@ class Admin implements ISettings {
/**
* @return TemplateResponse
*/
- public function getForm() {
+ public function getForm(): TemplateResponse {
$lastUpdateCheckTimestamp = $this->config->getAppValue('core', 'lastupdatedat');
$lastUpdateCheck = $this->dateTimeFormatter->formatDateTime($lastUpdateCheckTimestamp);
@@ -99,7 +100,7 @@ class Admin implements ISettings {
/**
* @return string the section ID, e.g. 'sharing'
*/
- public function getSection() {
+ public function getSection(): string {
return 'server';
}
@@ -110,7 +111,7 @@ class Admin implements ISettings {
*
* E.g.: 70
*/
- public function getPriority() {
+ public function getPriority(): int {
return 1;
}
}
diff --git a/apps/updatenotification/lib/UpdateChecker.php b/apps/updatenotification/lib/UpdateChecker.php
index cabdfe8b9ff..5f2712423d2 100644
--- a/apps/updatenotification/lib/UpdateChecker.php
+++ b/apps/updatenotification/lib/UpdateChecker.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -40,18 +41,18 @@ class UpdateChecker {
/**
* @return array
*/
- public function getUpdateState() {
+ public function getUpdateState(): array {
$data = $this->updater->check();
$result = [];
- if(isset($data['version']) && $data['version'] !== '' && $data['version'] !== []) {
+ if (isset($data['version']) && $data['version'] !== '' && $data['version'] !== []) {
$result['updateAvailable'] = true;
$result['updateVersion'] = $data['versionstring'];
$result['updaterEnabled'] = $data['autoupdater'] === '1';
- if(substr($data['web'], 0, 8) === 'https://') {
+ if (strpos($data['web'], 'https://') === 0) {
$result['updateLink'] = $data['web'];
}
- if(substr($data['url'], 0, 8) === 'https://') {
+ if (strpos($data['url'], 'https://') === 0) {
$result['downloadLink'] = $data['url'];
}
@@ -68,7 +69,7 @@ class UpdateChecker {
$data['array']['oc_updateState'] = json_encode([
'updateAvailable' => true,
'updateVersion' => $this->getUpdateState()['updateVersion'],
- 'updateLink' => isset($this->getUpdateState()['updateLink']) ? $this->getUpdateState()['updateLink'] : '',
+ 'updateLink' => $this->getUpdateState()['updateLink'] ?? '',
]);
}
}