Completed
Pull Request — master (#3829)
by Maxence
12:57
created
apps/provisioning_api/lib/Controller/AppConfigController.php 1 patch
Indentation   +123 added lines, -123 removed lines patch added patch discarded remove patch
@@ -31,127 +31,127 @@
 block discarded – undo
31 31
 
32 32
 class AppConfigController extends OCSController {
33 33
 
34
-	/** @var IConfig */
35
-	protected $config;
36
-
37
-	/** @var IAppConfig */
38
-	protected $appConfig;
39
-
40
-	/**
41
-	 * @param string $appName
42
-	 * @param IRequest $request
43
-	 * @param IConfig $config
44
-	 * @param IAppConfig $appConfig
45
-	 */
46
-	public function __construct($appName,
47
-								IRequest $request,
48
-								IConfig $config,
49
-								IAppConfig $appConfig) {
50
-		parent::__construct($appName, $request);
51
-		$this->config = $config;
52
-		$this->appConfig = $appConfig;
53
-	}
54
-
55
-	/**
56
-	 * @return DataResponse
57
-	 */
58
-	public function getApps() {
59
-		return new DataResponse([
60
-			'data' => $this->appConfig->getApps(),
61
-		]);
62
-	}
63
-
64
-	/**
65
-	 * @param string $app
66
-	 * @return DataResponse
67
-	 */
68
-	public function getKeys($app) {
69
-		try {
70
-			$this->verifyAppId($app);
71
-		} catch (\InvalidArgumentException $e) {
72
-			return new DataResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_FORBIDDEN);
73
-		}
74
-		return new DataResponse([
75
-			'data' => $this->config->getAppKeys($app),
76
-		]);
77
-	}
78
-
79
-	/**
80
-	 * @param string $app
81
-	 * @param string $key
82
-	 * @param string $defaultValue
83
-	 * @return DataResponse
84
-	 */
85
-	public function getValue($app, $key, $defaultValue = '') {
86
-		try {
87
-			$this->verifyAppId($app);
88
-		} catch (\InvalidArgumentException $e) {
89
-			return new DataResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_FORBIDDEN);
90
-		}
91
-		return new DataResponse([
92
-			'data' => $this->config->getAppValue($app, $key, $defaultValue),
93
-		]);
94
-	}
95
-
96
-	/**
97
-	 * @PasswordConfirmationRequired
98
-	 * @param string $app
99
-	 * @param string $key
100
-	 * @param string $value
101
-	 * @return DataResponse
102
-	 */
103
-	public function setValue($app, $key, $value) {
104
-		try {
105
-			$this->verifyAppId($app);
106
-			$this->verifyConfigKey($app, $key);
107
-		} catch (\InvalidArgumentException $e) {
108
-			return new DataResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_FORBIDDEN);
109
-		}
110
-
111
-		$this->config->setAppValue($app, $key, $value);
112
-		return new DataResponse();
113
-	}
114
-
115
-	/**
116
-	 * @PasswordConfirmationRequired
117
-	 * @param string $app
118
-	 * @param string $key
119
-	 * @return DataResponse
120
-	 */
121
-	public function deleteKey($app, $key) {
122
-		try {
123
-			$this->verifyAppId($app);
124
-			$this->verifyConfigKey($app, $key);
125
-		} catch (\InvalidArgumentException $e) {
126
-			return new DataResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_FORBIDDEN);
127
-		}
128
-
129
-		$this->config->deleteAppValue($app, $key);
130
-		return new DataResponse();
131
-	}
132
-
133
-	/**
134
-	 * @param string $app
135
-	 * @throws \InvalidArgumentException
136
-	 */
137
-	protected function verifyAppId($app) {
138
-		if (\OC_App::cleanAppId($app) !== $app) {
139
-			throw new \InvalidArgumentException('Invalid app id given');
140
-		}
141
-	}
142
-
143
-	/**
144
-	 * @param string $app
145
-	 * @param string $key
146
-	 * @throws \InvalidArgumentException
147
-	 */
148
-	protected function verifyConfigKey($app, $key) {
149
-		if (in_array($key, ['installed_version', 'enabled', 'types'])) {
150
-			throw new \InvalidArgumentException('The given key can not be set');
151
-		}
152
-
153
-		if ($app === 'core' && (strpos($key, 'public_') === 0 || strpos($key, 'remote_') === 0)) {
154
-			throw new \InvalidArgumentException('The given key can not be set');
155
-		}
156
-	}
34
+    /** @var IConfig */
35
+    protected $config;
36
+
37
+    /** @var IAppConfig */
38
+    protected $appConfig;
39
+
40
+    /**
41
+     * @param string $appName
42
+     * @param IRequest $request
43
+     * @param IConfig $config
44
+     * @param IAppConfig $appConfig
45
+     */
46
+    public function __construct($appName,
47
+                                IRequest $request,
48
+                                IConfig $config,
49
+                                IAppConfig $appConfig) {
50
+        parent::__construct($appName, $request);
51
+        $this->config = $config;
52
+        $this->appConfig = $appConfig;
53
+    }
54
+
55
+    /**
56
+     * @return DataResponse
57
+     */
58
+    public function getApps() {
59
+        return new DataResponse([
60
+            'data' => $this->appConfig->getApps(),
61
+        ]);
62
+    }
63
+
64
+    /**
65
+     * @param string $app
66
+     * @return DataResponse
67
+     */
68
+    public function getKeys($app) {
69
+        try {
70
+            $this->verifyAppId($app);
71
+        } catch (\InvalidArgumentException $e) {
72
+            return new DataResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_FORBIDDEN);
73
+        }
74
+        return new DataResponse([
75
+            'data' => $this->config->getAppKeys($app),
76
+        ]);
77
+    }
78
+
79
+    /**
80
+     * @param string $app
81
+     * @param string $key
82
+     * @param string $defaultValue
83
+     * @return DataResponse
84
+     */
85
+    public function getValue($app, $key, $defaultValue = '') {
86
+        try {
87
+            $this->verifyAppId($app);
88
+        } catch (\InvalidArgumentException $e) {
89
+            return new DataResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_FORBIDDEN);
90
+        }
91
+        return new DataResponse([
92
+            'data' => $this->config->getAppValue($app, $key, $defaultValue),
93
+        ]);
94
+    }
95
+
96
+    /**
97
+     * @PasswordConfirmationRequired
98
+     * @param string $app
99
+     * @param string $key
100
+     * @param string $value
101
+     * @return DataResponse
102
+     */
103
+    public function setValue($app, $key, $value) {
104
+        try {
105
+            $this->verifyAppId($app);
106
+            $this->verifyConfigKey($app, $key);
107
+        } catch (\InvalidArgumentException $e) {
108
+            return new DataResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_FORBIDDEN);
109
+        }
110
+
111
+        $this->config->setAppValue($app, $key, $value);
112
+        return new DataResponse();
113
+    }
114
+
115
+    /**
116
+     * @PasswordConfirmationRequired
117
+     * @param string $app
118
+     * @param string $key
119
+     * @return DataResponse
120
+     */
121
+    public function deleteKey($app, $key) {
122
+        try {
123
+            $this->verifyAppId($app);
124
+            $this->verifyConfigKey($app, $key);
125
+        } catch (\InvalidArgumentException $e) {
126
+            return new DataResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_FORBIDDEN);
127
+        }
128
+
129
+        $this->config->deleteAppValue($app, $key);
130
+        return new DataResponse();
131
+    }
132
+
133
+    /**
134
+     * @param string $app
135
+     * @throws \InvalidArgumentException
136
+     */
137
+    protected function verifyAppId($app) {
138
+        if (\OC_App::cleanAppId($app) !== $app) {
139
+            throw new \InvalidArgumentException('Invalid app id given');
140
+        }
141
+    }
142
+
143
+    /**
144
+     * @param string $app
145
+     * @param string $key
146
+     * @throws \InvalidArgumentException
147
+     */
148
+    protected function verifyConfigKey($app, $key) {
149
+        if (in_array($key, ['installed_version', 'enabled', 'types'])) {
150
+            throw new \InvalidArgumentException('The given key can not be set');
151
+        }
152
+
153
+        if ($app === 'core' && (strpos($key, 'public_') === 0 || strpos($key, 'remote_') === 0)) {
154
+            throw new \InvalidArgumentException('The given key can not be set');
155
+        }
156
+    }
157 157
 }
Please login to merge, or discard this patch.
apps/provisioning_api/lib/AppInfo/Application.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -7,22 +7,22 @@
 block discarded – undo
7 7
 use OCP\AppFramework\App;
8 8
 
9 9
 class Application extends App {
10
-	public function __construct(array $urlParams = array()) {
11
-		parent::__construct('provisioning_api', $urlParams);
10
+    public function __construct(array $urlParams = array()) {
11
+        parent::__construct('provisioning_api', $urlParams);
12 12
 
13
-		$container = $this->getContainer();
14
-		$server = $container->getServer();
13
+        $container = $this->getContainer();
14
+        $server = $container->getServer();
15 15
 
16
-		$container->registerService('ProvisioningApiMiddleware', function(SimpleContainer $c) use ($server) {
17
-			$user = $server->getUserManager()->get($c['UserId']);
18
-			$isAdmin = $user !== null ? $server->getGroupManager()->isAdmin($user->getUID()) : false;
19
-			$isSubAdmin = $user !== null ? $server->getGroupManager()->getSubAdmin()->isSubAdmin($user) : false;
20
-			return new ProvisioningApiMiddleware(
21
-				$c['ControllerMethodReflector'],
22
-				$isAdmin,
23
-				$isSubAdmin
24
-			);
25
-		});
26
-		$container->registerMiddleWare('ProvisioningApiMiddleware');
27
-	}
16
+        $container->registerService('ProvisioningApiMiddleware', function(SimpleContainer $c) use ($server) {
17
+            $user = $server->getUserManager()->get($c['UserId']);
18
+            $isAdmin = $user !== null ? $server->getGroupManager()->isAdmin($user->getUID()) : false;
19
+            $isSubAdmin = $user !== null ? $server->getGroupManager()->getSubAdmin()->isSubAdmin($user) : false;
20
+            return new ProvisioningApiMiddleware(
21
+                $c['ControllerMethodReflector'],
22
+                $isAdmin,
23
+                $isSubAdmin
24
+            );
25
+        });
26
+        $container->registerMiddleWare('ProvisioningApiMiddleware');
27
+    }
28 28
 }
Please login to merge, or discard this patch.
apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@
 block discarded – undo
5 5
 use OCP\AppFramework\Http;
6 6
 
7 7
 class NotSubAdminException extends \Exception {
8
-	public function __construct() {
9
-		parent::__construct('Logged in user must be at least a sub admin', Http::STATUS_FORBIDDEN);
10
-	}
8
+    public function __construct() {
9
+        parent::__construct('Logged in user must be at least a sub admin', Http::STATUS_FORBIDDEN);
10
+    }
11 11
 }
12 12
\ No newline at end of file
Please login to merge, or discard this patch.
apps/provisioning_api/lib/Middleware/ProvisioningApiMiddleware.php 1 patch
Indentation   +45 added lines, -45 removed lines patch added patch discarded remove patch
@@ -10,55 +10,55 @@
 block discarded – undo
10 10
 
11 11
 class ProvisioningApiMiddleware extends Middleware {
12 12
 
13
-	/** @var IControllerMethodReflector */
14
-	private $reflector;
13
+    /** @var IControllerMethodReflector */
14
+    private $reflector;
15 15
 
16
-	/** @var bool */
17
-	private $isAdmin;
16
+    /** @var bool */
17
+    private $isAdmin;
18 18
 
19
-	/** @var bool */
20
-	private $isSubAdmin;
19
+    /** @var bool */
20
+    private $isSubAdmin;
21 21
 
22
-	/**
23
-	 * ProvisioningApiMiddleware constructor.
24
-	 *
25
-	 * @param IControllerMethodReflector $reflector
26
-	 * @param bool $isAdmin
27
-	 * @param bool $isSubAdmin
28
-	 */
29
-	public function __construct(
30
-		IControllerMethodReflector $reflector,
31
-		$isAdmin,
32
-		$isSubAdmin) {
33
-		$this->reflector = $reflector;
34
-		$this->isAdmin = $isAdmin;
35
-		$this->isSubAdmin = $isSubAdmin;
36
-	}
22
+    /**
23
+     * ProvisioningApiMiddleware constructor.
24
+     *
25
+     * @param IControllerMethodReflector $reflector
26
+     * @param bool $isAdmin
27
+     * @param bool $isSubAdmin
28
+     */
29
+    public function __construct(
30
+        IControllerMethodReflector $reflector,
31
+        $isAdmin,
32
+        $isSubAdmin) {
33
+        $this->reflector = $reflector;
34
+        $this->isAdmin = $isAdmin;
35
+        $this->isSubAdmin = $isSubAdmin;
36
+    }
37 37
 
38
-	/**
39
-	 * @param \OCP\AppFramework\Controller $controller
40
-	 * @param string $methodName
41
-	 *
42
-	 * @throws NotSubAdminException
43
-	 */
44
-	public function beforeController($controller, $methodName) {
45
-		if (!$this->isAdmin && !$this->reflector->hasAnnotation('NoSubAdminRequired') && !$this->isSubAdmin) {
46
-			throw new NotSubAdminException();
47
-		}
48
-	}
38
+    /**
39
+     * @param \OCP\AppFramework\Controller $controller
40
+     * @param string $methodName
41
+     *
42
+     * @throws NotSubAdminException
43
+     */
44
+    public function beforeController($controller, $methodName) {
45
+        if (!$this->isAdmin && !$this->reflector->hasAnnotation('NoSubAdminRequired') && !$this->isSubAdmin) {
46
+            throw new NotSubAdminException();
47
+        }
48
+    }
49 49
 
50
-	/**
51
-	 * @param \OCP\AppFramework\Controller $controller
52
-	 * @param string $methodName
53
-	 * @param \Exception $exception
54
-	 * @throws \Exception
55
-	 * @return Response
56
-	 */
57
-	public function afterException($controller, $methodName, \Exception $exception) {
58
-		if ($exception instanceof NotSubAdminException) {
59
-			throw new OCSException($exception->getMessage(), \OCP\API::RESPOND_UNAUTHORISED);
60
-		}
50
+    /**
51
+     * @param \OCP\AppFramework\Controller $controller
52
+     * @param string $methodName
53
+     * @param \Exception $exception
54
+     * @throws \Exception
55
+     * @return Response
56
+     */
57
+    public function afterException($controller, $methodName, \Exception $exception) {
58
+        if ($exception instanceof NotSubAdminException) {
59
+            throw new OCSException($exception->getMessage(), \OCP\API::RESPOND_UNAUTHORISED);
60
+        }
61 61
 
62
-		throw $exception;
63
-	}
62
+        throw $exception;
63
+    }
64 64
 }
65 65
\ No newline at end of file
Please login to merge, or discard this patch.
apps/updatenotification/templates/admin.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -1,17 +1,17 @@
 block discarded – undo
1 1
 <?php
2
-	script('updatenotification', 'admin');
2
+    script('updatenotification', 'admin');
3 3
 
4
-	/** @var array $_ */
5
-	/** @var bool $isNewVersionAvailable */
6
-	$isNewVersionAvailable = $_['isNewVersionAvailable'];
7
-	/** @var string $newVersionString */
8
-	$newVersionString = $_['newVersionString'];
9
-	/** @var string $lastCheckedDate */
10
-	$lastCheckedDate = $_['lastChecked'];
11
-	/** @var array $channels */
12
-	$channels = $_['channels'];
13
-	/** @var string $currentChannel */
14
-	$currentChannel = $_['currentChannel'];
4
+    /** @var array $_ */
5
+    /** @var bool $isNewVersionAvailable */
6
+    $isNewVersionAvailable = $_['isNewVersionAvailable'];
7
+    /** @var string $newVersionString */
8
+    $newVersionString = $_['newVersionString'];
9
+    /** @var string $lastCheckedDate */
10
+    $lastCheckedDate = $_['lastChecked'];
11
+    /** @var array $channels */
12
+    $channels = $_['channels'];
13
+    /** @var string $currentChannel */
14
+    $currentChannel = $_['currentChannel'];
15 15
 ?>
16 16
 <form id="oca_updatenotification_section" class="followupsection">
17 17
 	<?php if($isNewVersionAvailable === true) { ?>
Please login to merge, or discard this patch.
apps/updatenotification/lib/Notification/Notifier.php 1 patch
Indentation   +123 added lines, -123 removed lines patch added patch discarded remove patch
@@ -35,127 +35,127 @@
 block discarded – undo
35 35
 
36 36
 class Notifier implements INotifier {
37 37
 
38
-	/** @var IURLGenerator */
39
-	protected $url;
40
-
41
-	/** @var IManager */
42
-	protected $notificationManager;
43
-
44
-	/** @var IFactory */
45
-	protected $l10NFactory;
46
-
47
-	/** @var IUserSession */
48
-	protected $userSession;
49
-
50
-	/** @var IGroupManager */
51
-	protected $groupManager;
52
-
53
-	/** @var string[] */
54
-	protected $appVersions;
55
-
56
-	/**
57
-	 * Notifier constructor.
58
-	 *
59
-	 * @param IURLGenerator $url
60
-	 * @param IManager $notificationManager
61
-	 * @param IFactory $l10NFactory
62
-	 * @param IUserSession $userSession
63
-	 * @param IGroupManager $groupManager
64
-	 */
65
-	public function __construct(IURLGenerator $url, IManager $notificationManager, IFactory $l10NFactory, IUserSession $userSession, IGroupManager $groupManager) {
66
-		$this->url = $url;
67
-		$this->notificationManager = $notificationManager;
68
-		$this->l10NFactory = $l10NFactory;
69
-		$this->userSession = $userSession;
70
-		$this->groupManager = $groupManager;
71
-		$this->appVersions = $this->getAppVersions();
72
-	}
73
-
74
-	/**
75
-	 * @param INotification $notification
76
-	 * @param string $languageCode The code of the language that should be used to prepare the notification
77
-	 * @return INotification
78
-	 * @throws \InvalidArgumentException When the notification was not prepared by a notifier
79
-	 * @since 9.0.0
80
-	 */
81
-	public function prepare(INotification $notification, $languageCode) {
82
-		if ($notification->getApp() !== 'updatenotification') {
83
-			throw new \InvalidArgumentException();
84
-		}
85
-
86
-		$l = $this->l10NFactory->get('updatenotification', $languageCode);
87
-		if ($notification->getObjectType() === 'core') {
88
-			$this->updateAlreadyInstalledCheck($notification, $this->getCoreVersions());
89
-
90
-			$parameters = $notification->getSubjectParameters();
91
-			$notification->setParsedSubject($l->t('Update to %1$s is available.', [$parameters['version']]));
92
-
93
-			if ($this->isAdmin()) {
94
-				$notification->setLink($this->url->linkToRouteAbsolute('settings.AdminSettings.index') . '#updater');
95
-			}
96
-		} else {
97
-			$appInfo = $this->getAppInfo($notification->getObjectType());
98
-			$appName = ($appInfo === null) ? $notification->getObjectType() : $appInfo['name'];
99
-
100
-			if (isset($this->appVersions[$notification->getObjectType()])) {
101
-				$this->updateAlreadyInstalledCheck($notification, $this->appVersions[$notification->getObjectType()]);
102
-			}
103
-
104
-			$notification->setParsedSubject($l->t('Update for %1$s to version %2$s is available.', [$appName, $notification->getObjectId()]))
105
-				->setRichSubject($l->t('Update for {app} to version %s is available.', $notification->getObjectId()), [
106
-					'app' => [
107
-						'type' => 'app',
108
-						'id' => $notification->getObjectType(),
109
-						'name' => $appName,
110
-					]
111
-				]);
112
-
113
-			if ($this->isAdmin()) {
114
-				$notification->setLink($this->url->linkToRouteAbsolute('settings.AppSettings.viewApps') . '#app-' . $notification->getObjectType());
115
-			}
116
-		}
117
-
118
-		$notification->setIcon($this->url->getAbsoluteURL($this->url->imagePath('updatenotification', 'notification.svg')));
119
-
120
-		return $notification;
121
-	}
122
-
123
-	/**
124
-	 * Remove the notification and prevent rendering, when the update is installed
125
-	 *
126
-	 * @param INotification $notification
127
-	 * @param string $installedVersion
128
-	 * @throws \InvalidArgumentException When the update is already installed
129
-	 */
130
-	protected function updateAlreadyInstalledCheck(INotification $notification, $installedVersion) {
131
-		if (version_compare($notification->getObjectId(), $installedVersion, '<=')) {
132
-			$this->notificationManager->markProcessed($notification);
133
-			throw new \InvalidArgumentException();
134
-		}
135
-	}
136
-
137
-	/**
138
-	 * @return bool
139
-	 */
140
-	protected function isAdmin() {
141
-		$user = $this->userSession->getUser();
142
-
143
-		if ($user instanceof IUser) {
144
-			return $this->groupManager->isAdmin($user->getUID());
145
-		}
146
-
147
-		return false;
148
-	}
149
-
150
-	protected function getCoreVersions() {
151
-		return implode('.', \OCP\Util::getVersion());
152
-	}
153
-
154
-	protected function getAppVersions() {
155
-		return \OC_App::getAppVersions();
156
-	}
157
-
158
-	protected function getAppInfo($appId) {
159
-		return \OC_App::getAppInfo($appId);
160
-	}
38
+    /** @var IURLGenerator */
39
+    protected $url;
40
+
41
+    /** @var IManager */
42
+    protected $notificationManager;
43
+
44
+    /** @var IFactory */
45
+    protected $l10NFactory;
46
+
47
+    /** @var IUserSession */
48
+    protected $userSession;
49
+
50
+    /** @var IGroupManager */
51
+    protected $groupManager;
52
+
53
+    /** @var string[] */
54
+    protected $appVersions;
55
+
56
+    /**
57
+     * Notifier constructor.
58
+     *
59
+     * @param IURLGenerator $url
60
+     * @param IManager $notificationManager
61
+     * @param IFactory $l10NFactory
62
+     * @param IUserSession $userSession
63
+     * @param IGroupManager $groupManager
64
+     */
65
+    public function __construct(IURLGenerator $url, IManager $notificationManager, IFactory $l10NFactory, IUserSession $userSession, IGroupManager $groupManager) {
66
+        $this->url = $url;
67
+        $this->notificationManager = $notificationManager;
68
+        $this->l10NFactory = $l10NFactory;
69
+        $this->userSession = $userSession;
70
+        $this->groupManager = $groupManager;
71
+        $this->appVersions = $this->getAppVersions();
72
+    }
73
+
74
+    /**
75
+     * @param INotification $notification
76
+     * @param string $languageCode The code of the language that should be used to prepare the notification
77
+     * @return INotification
78
+     * @throws \InvalidArgumentException When the notification was not prepared by a notifier
79
+     * @since 9.0.0
80
+     */
81
+    public function prepare(INotification $notification, $languageCode) {
82
+        if ($notification->getApp() !== 'updatenotification') {
83
+            throw new \InvalidArgumentException();
84
+        }
85
+
86
+        $l = $this->l10NFactory->get('updatenotification', $languageCode);
87
+        if ($notification->getObjectType() === 'core') {
88
+            $this->updateAlreadyInstalledCheck($notification, $this->getCoreVersions());
89
+
90
+            $parameters = $notification->getSubjectParameters();
91
+            $notification->setParsedSubject($l->t('Update to %1$s is available.', [$parameters['version']]));
92
+
93
+            if ($this->isAdmin()) {
94
+                $notification->setLink($this->url->linkToRouteAbsolute('settings.AdminSettings.index') . '#updater');
95
+            }
96
+        } else {
97
+            $appInfo = $this->getAppInfo($notification->getObjectType());
98
+            $appName = ($appInfo === null) ? $notification->getObjectType() : $appInfo['name'];
99
+
100
+            if (isset($this->appVersions[$notification->getObjectType()])) {
101
+                $this->updateAlreadyInstalledCheck($notification, $this->appVersions[$notification->getObjectType()]);
102
+            }
103
+
104
+            $notification->setParsedSubject($l->t('Update for %1$s to version %2$s is available.', [$appName, $notification->getObjectId()]))
105
+                ->setRichSubject($l->t('Update for {app} to version %s is available.', $notification->getObjectId()), [
106
+                    'app' => [
107
+                        'type' => 'app',
108
+                        'id' => $notification->getObjectType(),
109
+                        'name' => $appName,
110
+                    ]
111
+                ]);
112
+
113
+            if ($this->isAdmin()) {
114
+                $notification->setLink($this->url->linkToRouteAbsolute('settings.AppSettings.viewApps') . '#app-' . $notification->getObjectType());
115
+            }
116
+        }
117
+
118
+        $notification->setIcon($this->url->getAbsoluteURL($this->url->imagePath('updatenotification', 'notification.svg')));
119
+
120
+        return $notification;
121
+    }
122
+
123
+    /**
124
+     * Remove the notification and prevent rendering, when the update is installed
125
+     *
126
+     * @param INotification $notification
127
+     * @param string $installedVersion
128
+     * @throws \InvalidArgumentException When the update is already installed
129
+     */
130
+    protected function updateAlreadyInstalledCheck(INotification $notification, $installedVersion) {
131
+        if (version_compare($notification->getObjectId(), $installedVersion, '<=')) {
132
+            $this->notificationManager->markProcessed($notification);
133
+            throw new \InvalidArgumentException();
134
+        }
135
+    }
136
+
137
+    /**
138
+     * @return bool
139
+     */
140
+    protected function isAdmin() {
141
+        $user = $this->userSession->getUser();
142
+
143
+        if ($user instanceof IUser) {
144
+            return $this->groupManager->isAdmin($user->getUID());
145
+        }
146
+
147
+        return false;
148
+    }
149
+
150
+    protected function getCoreVersions() {
151
+        return implode('.', \OCP\Util::getVersion());
152
+    }
153
+
154
+    protected function getAppVersions() {
155
+        return \OC_App::getAppVersions();
156
+    }
157
+
158
+    protected function getAppInfo($appId) {
159
+        return \OC_App::getAppInfo($appId);
160
+    }
161 161
 }
Please login to merge, or discard this patch.
apps/updatenotification/lib/Notification/BackgroundJob.php 1 patch
Indentation   +171 added lines, -171 removed lines patch added patch discarded remove patch
@@ -34,175 +34,175 @@
 block discarded – undo
34 34
 
35 35
 class BackgroundJob extends TimedJob {
36 36
 
37
-	/** @var IConfig */
38
-	protected $config;
39
-
40
-	/** @var IManager */
41
-	protected $notificationManager;
42
-
43
-	/** @var IGroupManager */
44
-	protected $groupManager;
45
-
46
-	/** @var IAppManager */
47
-	protected $appManager;
48
-
49
-	/** @var IClientService */
50
-	protected $client;
51
-
52
-	/** @var string[] */
53
-	protected $users;
54
-
55
-	/**
56
-	 * NotificationBackgroundJob constructor.
57
-	 *
58
-	 * @param IConfig $config
59
-	 * @param IManager $notificationManager
60
-	 * @param IGroupManager $groupManager
61
-	 * @param IAppManager $appManager
62
-	 * @param IClientService $client
63
-	 */
64
-	public function __construct(IConfig $config, IManager $notificationManager, IGroupManager $groupManager, IAppManager $appManager, IClientService $client) {
65
-		// Run once a day
66
-		$this->setInterval(60 * 60 * 24);
67
-
68
-		$this->config = $config;
69
-		$this->notificationManager = $notificationManager;
70
-		$this->groupManager = $groupManager;
71
-		$this->appManager = $appManager;
72
-		$this->client = $client;
73
-	}
74
-
75
-	protected function run($argument) {
76
-		$this->checkCoreUpdate();
77
-		$this->checkAppUpdates();
78
-	}
79
-
80
-	/**
81
-	 * Check for ownCloud update
82
-	 */
83
-	protected function checkCoreUpdate() {
84
-		if (in_array($this->getChannel(), ['daily', 'git'])) {
85
-			// "These aren't the update channels you're looking for." - Ben Obi-Wan Kenobi
86
-			return;
87
-		}
88
-
89
-		$updater = $this->createVersionCheck();
90
-
91
-		$status = $updater->check();
92
-		if (isset($status['version'])) {
93
-			$this->createNotifications('core', $status['version'], $status['versionstring']);
94
-		}
95
-	}
96
-
97
-	/**
98
-	 * Check all installed apps for updates
99
-	 */
100
-	protected function checkAppUpdates() {
101
-		$apps = $this->appManager->getInstalledApps();
102
-		foreach ($apps as $app) {
103
-			$update = $this->isUpdateAvailable($app);
104
-			if ($update !== false) {
105
-				$this->createNotifications($app, $update);
106
-			}
107
-		}
108
-	}
109
-
110
-	/**
111
-	 * Create notifications for this app version
112
-	 *
113
-	 * @param string $app
114
-	 * @param string $version
115
-	 * @param string $visibleVersion
116
-	 */
117
-	protected function createNotifications($app, $version, $visibleVersion = '') {
118
-		$lastNotification = $this->config->getAppValue('updatenotification', $app, false);
119
-		if ($lastNotification === $version) {
120
-			// We already notified about this update
121
-			return;
122
-		} else if ($lastNotification !== false) {
123
-			// Delete old updates
124
-			$this->deleteOutdatedNotifications($app, $lastNotification);
125
-		}
126
-
127
-
128
-		$notification = $this->notificationManager->createNotification();
129
-		$notification->setApp('updatenotification')
130
-			->setDateTime(new \DateTime())
131
-			->setObject($app, $version);
132
-
133
-		if ($visibleVersion !== '') {
134
-			$notification->setSubject('update_available', ['version' => $visibleVersion]);
135
-		} else {
136
-			$notification->setSubject('update_available');
137
-		}
138
-
139
-		foreach ($this->getUsersToNotify() as $uid) {
140
-			$notification->setUser($uid);
141
-			$this->notificationManager->notify($notification);
142
-		}
143
-
144
-		$this->config->setAppValue('updatenotification', $app, $version);
145
-	}
146
-
147
-	/**
148
-	 * @return string[]
149
-	 */
150
-	protected function getUsersToNotify() {
151
-		if ($this->users !== null) {
152
-			return $this->users;
153
-		}
154
-
155
-		$notifyGroups = json_decode($this->config->getAppValue('updatenotification', 'notify_groups', '["admin"]'), true);
156
-		$this->users = [];
157
-		foreach ($notifyGroups as $group) {
158
-			$groupToNotify = $this->groupManager->get($group);
159
-			if ($groupToNotify instanceof IGroup) {
160
-				foreach ($groupToNotify->getUsers() as $user) {
161
-					$this->users[$user->getUID()] = true;
162
-				}
163
-			}
164
-		}
165
-
166
-		$this->users = array_keys($this->users);
167
-
168
-		return $this->users;
169
-	}
170
-
171
-	/**
172
-	 * Delete notifications for old updates
173
-	 *
174
-	 * @param string $app
175
-	 * @param string $version
176
-	 */
177
-	protected function deleteOutdatedNotifications($app, $version) {
178
-		$notification = $this->notificationManager->createNotification();
179
-		$notification->setApp('updatenotification')
180
-			->setObject($app, $version);
181
-		$this->notificationManager->markProcessed($notification);
182
-	}
183
-
184
-	/**
185
-	 * @return VersionCheck
186
-	 */
187
-	protected function createVersionCheck() {
188
-		return new VersionCheck(
189
-			$this->client,
190
-			$this->config
191
-		);
192
-	}
193
-
194
-	/**
195
-	 * @return string
196
-	 */
197
-	protected function getChannel() {
198
-		return \OC_Util::getChannel();
199
-	}
200
-
201
-	/**
202
-	 * @param string $app
203
-	 * @return string|false
204
-	 */
205
-	protected function isUpdateAvailable($app) {
206
-		return Installer::isUpdateAvailable($app, \OC::$server->getAppFetcher());
207
-	}
37
+    /** @var IConfig */
38
+    protected $config;
39
+
40
+    /** @var IManager */
41
+    protected $notificationManager;
42
+
43
+    /** @var IGroupManager */
44
+    protected $groupManager;
45
+
46
+    /** @var IAppManager */
47
+    protected $appManager;
48
+
49
+    /** @var IClientService */
50
+    protected $client;
51
+
52
+    /** @var string[] */
53
+    protected $users;
54
+
55
+    /**
56
+     * NotificationBackgroundJob constructor.
57
+     *
58
+     * @param IConfig $config
59
+     * @param IManager $notificationManager
60
+     * @param IGroupManager $groupManager
61
+     * @param IAppManager $appManager
62
+     * @param IClientService $client
63
+     */
64
+    public function __construct(IConfig $config, IManager $notificationManager, IGroupManager $groupManager, IAppManager $appManager, IClientService $client) {
65
+        // Run once a day
66
+        $this->setInterval(60 * 60 * 24);
67
+
68
+        $this->config = $config;
69
+        $this->notificationManager = $notificationManager;
70
+        $this->groupManager = $groupManager;
71
+        $this->appManager = $appManager;
72
+        $this->client = $client;
73
+    }
74
+
75
+    protected function run($argument) {
76
+        $this->checkCoreUpdate();
77
+        $this->checkAppUpdates();
78
+    }
79
+
80
+    /**
81
+     * Check for ownCloud update
82
+     */
83
+    protected function checkCoreUpdate() {
84
+        if (in_array($this->getChannel(), ['daily', 'git'])) {
85
+            // "These aren't the update channels you're looking for." - Ben Obi-Wan Kenobi
86
+            return;
87
+        }
88
+
89
+        $updater = $this->createVersionCheck();
90
+
91
+        $status = $updater->check();
92
+        if (isset($status['version'])) {
93
+            $this->createNotifications('core', $status['version'], $status['versionstring']);
94
+        }
95
+    }
96
+
97
+    /**
98
+     * Check all installed apps for updates
99
+     */
100
+    protected function checkAppUpdates() {
101
+        $apps = $this->appManager->getInstalledApps();
102
+        foreach ($apps as $app) {
103
+            $update = $this->isUpdateAvailable($app);
104
+            if ($update !== false) {
105
+                $this->createNotifications($app, $update);
106
+            }
107
+        }
108
+    }
109
+
110
+    /**
111
+     * Create notifications for this app version
112
+     *
113
+     * @param string $app
114
+     * @param string $version
115
+     * @param string $visibleVersion
116
+     */
117
+    protected function createNotifications($app, $version, $visibleVersion = '') {
118
+        $lastNotification = $this->config->getAppValue('updatenotification', $app, false);
119
+        if ($lastNotification === $version) {
120
+            // We already notified about this update
121
+            return;
122
+        } else if ($lastNotification !== false) {
123
+            // Delete old updates
124
+            $this->deleteOutdatedNotifications($app, $lastNotification);
125
+        }
126
+
127
+
128
+        $notification = $this->notificationManager->createNotification();
129
+        $notification->setApp('updatenotification')
130
+            ->setDateTime(new \DateTime())
131
+            ->setObject($app, $version);
132
+
133
+        if ($visibleVersion !== '') {
134
+            $notification->setSubject('update_available', ['version' => $visibleVersion]);
135
+        } else {
136
+            $notification->setSubject('update_available');
137
+        }
138
+
139
+        foreach ($this->getUsersToNotify() as $uid) {
140
+            $notification->setUser($uid);
141
+            $this->notificationManager->notify($notification);
142
+        }
143
+
144
+        $this->config->setAppValue('updatenotification', $app, $version);
145
+    }
146
+
147
+    /**
148
+     * @return string[]
149
+     */
150
+    protected function getUsersToNotify() {
151
+        if ($this->users !== null) {
152
+            return $this->users;
153
+        }
154
+
155
+        $notifyGroups = json_decode($this->config->getAppValue('updatenotification', 'notify_groups', '["admin"]'), true);
156
+        $this->users = [];
157
+        foreach ($notifyGroups as $group) {
158
+            $groupToNotify = $this->groupManager->get($group);
159
+            if ($groupToNotify instanceof IGroup) {
160
+                foreach ($groupToNotify->getUsers() as $user) {
161
+                    $this->users[$user->getUID()] = true;
162
+                }
163
+            }
164
+        }
165
+
166
+        $this->users = array_keys($this->users);
167
+
168
+        return $this->users;
169
+    }
170
+
171
+    /**
172
+     * Delete notifications for old updates
173
+     *
174
+     * @param string $app
175
+     * @param string $version
176
+     */
177
+    protected function deleteOutdatedNotifications($app, $version) {
178
+        $notification = $this->notificationManager->createNotification();
179
+        $notification->setApp('updatenotification')
180
+            ->setObject($app, $version);
181
+        $this->notificationManager->markProcessed($notification);
182
+    }
183
+
184
+    /**
185
+     * @return VersionCheck
186
+     */
187
+    protected function createVersionCheck() {
188
+        return new VersionCheck(
189
+            $this->client,
190
+            $this->config
191
+        );
192
+    }
193
+
194
+    /**
195
+     * @return string
196
+     */
197
+    protected function getChannel() {
198
+        return \OC_Util::getChannel();
199
+    }
200
+
201
+    /**
202
+     * @param string $app
203
+     * @return string|false
204
+     */
205
+    protected function isUpdateAvailable($app) {
206
+        return Installer::isUpdateAvailable($app, \OC::$server->getAppFetcher());
207
+    }
208 208
 }
Please login to merge, or discard this patch.
apps/updatenotification/lib/Controller/AdminController.php 1 patch
Indentation   +135 added lines, -135 removed lines patch added patch discarded remove patch
@@ -37,139 +37,139 @@
 block discarded – undo
37 37
 use OCP\Settings\ISettings;
38 38
 
39 39
 class AdminController extends Controller implements ISettings {
40
-	/** @var IJobList */
41
-	private $jobList;
42
-	/** @var ISecureRandom */
43
-	private $secureRandom;
44
-	/** @var IConfig */
45
-	private $config;
46
-	/** @var ITimeFactory */
47
-	private $timeFactory;
48
-	/** @var UpdateChecker */
49
-	private $updateChecker;
50
-	/** @var IL10N */
51
-	private $l10n;
52
-	/** @var IDateTimeFormatter */
53
-	private $dateTimeFormatter;
54
-
55
-	/**
56
-	 * @param string $appName
57
-	 * @param IRequest $request
58
-	 * @param IJobList $jobList
59
-	 * @param ISecureRandom $secureRandom
60
-	 * @param IConfig $config
61
-	 * @param ITimeFactory $timeFactory
62
-	 * @param IL10N $l10n
63
-	 * @param UpdateChecker $updateChecker
64
-	 * @param IDateTimeFormatter $dateTimeFormatter
65
-	 */
66
-	public function __construct($appName,
67
-								IRequest $request,
68
-								IJobList $jobList,
69
-								ISecureRandom $secureRandom,
70
-								IConfig $config,
71
-								ITimeFactory $timeFactory,
72
-								IL10N $l10n,
73
-								UpdateChecker $updateChecker,
74
-								IDateTimeFormatter $dateTimeFormatter) {
75
-		parent::__construct($appName, $request);
76
-		$this->jobList = $jobList;
77
-		$this->secureRandom = $secureRandom;
78
-		$this->config = $config;
79
-		$this->timeFactory = $timeFactory;
80
-		$this->l10n = $l10n;
81
-		$this->updateChecker = $updateChecker;
82
-		$this->dateTimeFormatter = $dateTimeFormatter;
83
-	}
84
-
85
-	/**
86
-	 * @return TemplateResponse
87
-	 */
88
-	public function displayPanel() {
89
-		$lastUpdateCheck = $this->dateTimeFormatter->formatDateTime(
90
-			$this->config->getAppValue('core', 'lastupdatedat')
91
-		);
92
-
93
-		$channels = [
94
-			'daily',
95
-			'beta',
96
-			'stable',
97
-			'production',
98
-		];
99
-		$currentChannel = \OCP\Util::getChannel();
100
-
101
-		// Remove the currently used channel from the channels list
102
-		if(($key = array_search($currentChannel, $channels)) !== false) {
103
-			unset($channels[$key]);
104
-		}
105
-		$updateState = $this->updateChecker->getUpdateState();
106
-
107
-		$notifyGroups = json_decode($this->config->getAppValue('updatenotification', 'notify_groups', '["admin"]'), true);
108
-
109
-		$params = [
110
-			'isNewVersionAvailable' => !empty($updateState['updateAvailable']),
111
-			'lastChecked' => $lastUpdateCheck,
112
-			'currentChannel' => $currentChannel,
113
-			'channels' => $channels,
114
-			'newVersionString' => (empty($updateState['updateVersion'])) ? '' : $updateState['updateVersion'],
115
-			'downloadLink' => (empty($updateState['downloadLink'])) ? '' : $updateState['downloadLink'],
116
-			'updaterEnabled' => (empty($updateState['updaterEnabled'])) ? false : $updateState['updaterEnabled'],
117
-
118
-			'notify_groups' => implode('|', $notifyGroups),
119
-		];
120
-
121
-		return new TemplateResponse($this->appName, 'admin', $params, '');
122
-	}
123
-
124
-	/**
125
-	 * @UseSession
126
-	 *
127
-	 * @param string $channel
128
-	 * @return DataResponse
129
-	 */
130
-	public function setChannel($channel) {
131
-		\OCP\Util::setChannel($channel);
132
-		$this->config->setAppValue('core', 'lastupdatedat', 0);
133
-		return new DataResponse(['status' => 'success', 'data' => ['message' => $this->l10n->t('Channel updated')]]);
134
-	}
135
-
136
-	/**
137
-	 * @return DataResponse
138
-	 */
139
-	public function createCredentials() {
140
-		// Create a new job and store the creation date
141
-		$this->jobList->add('OCA\UpdateNotification\ResetTokenBackgroundJob');
142
-		$this->config->setAppValue('core', 'updater.secret.created', $this->timeFactory->getTime());
143
-
144
-		// Create a new token
145
-		$newToken = $this->secureRandom->generate(64);
146
-		$this->config->setSystemValue('updater.secret', password_hash($newToken, PASSWORD_DEFAULT));
147
-
148
-		return new DataResponse($newToken);
149
-	}
150
-
151
-	/**
152
-	 * @return TemplateResponse returns the instance with all parameters set, ready to be rendered
153
-	 */
154
-	public function getForm() {
155
-		return $this->displayPanel();
156
-	}
157
-
158
-	/**
159
-	 * @return string the section ID, e.g. 'sharing'
160
-	 */
161
-	public function getSection() {
162
-		return 'server';
163
-	}
164
-
165
-	/**
166
-	 * @return int whether the form should be rather on the top or bottom of
167
-	 * the admin section. The forms are arranged in ascending order of the
168
-	 * priority values. It is required to return a value between 0 and 100.
169
-	 *
170
-	 * E.g.: 70
171
-	 */
172
-	public function getPriority() {
173
-		return 1;
174
-	}
40
+    /** @var IJobList */
41
+    private $jobList;
42
+    /** @var ISecureRandom */
43
+    private $secureRandom;
44
+    /** @var IConfig */
45
+    private $config;
46
+    /** @var ITimeFactory */
47
+    private $timeFactory;
48
+    /** @var UpdateChecker */
49
+    private $updateChecker;
50
+    /** @var IL10N */
51
+    private $l10n;
52
+    /** @var IDateTimeFormatter */
53
+    private $dateTimeFormatter;
54
+
55
+    /**
56
+     * @param string $appName
57
+     * @param IRequest $request
58
+     * @param IJobList $jobList
59
+     * @param ISecureRandom $secureRandom
60
+     * @param IConfig $config
61
+     * @param ITimeFactory $timeFactory
62
+     * @param IL10N $l10n
63
+     * @param UpdateChecker $updateChecker
64
+     * @param IDateTimeFormatter $dateTimeFormatter
65
+     */
66
+    public function __construct($appName,
67
+                                IRequest $request,
68
+                                IJobList $jobList,
69
+                                ISecureRandom $secureRandom,
70
+                                IConfig $config,
71
+                                ITimeFactory $timeFactory,
72
+                                IL10N $l10n,
73
+                                UpdateChecker $updateChecker,
74
+                                IDateTimeFormatter $dateTimeFormatter) {
75
+        parent::__construct($appName, $request);
76
+        $this->jobList = $jobList;
77
+        $this->secureRandom = $secureRandom;
78
+        $this->config = $config;
79
+        $this->timeFactory = $timeFactory;
80
+        $this->l10n = $l10n;
81
+        $this->updateChecker = $updateChecker;
82
+        $this->dateTimeFormatter = $dateTimeFormatter;
83
+    }
84
+
85
+    /**
86
+     * @return TemplateResponse
87
+     */
88
+    public function displayPanel() {
89
+        $lastUpdateCheck = $this->dateTimeFormatter->formatDateTime(
90
+            $this->config->getAppValue('core', 'lastupdatedat')
91
+        );
92
+
93
+        $channels = [
94
+            'daily',
95
+            'beta',
96
+            'stable',
97
+            'production',
98
+        ];
99
+        $currentChannel = \OCP\Util::getChannel();
100
+
101
+        // Remove the currently used channel from the channels list
102
+        if(($key = array_search($currentChannel, $channels)) !== false) {
103
+            unset($channels[$key]);
104
+        }
105
+        $updateState = $this->updateChecker->getUpdateState();
106
+
107
+        $notifyGroups = json_decode($this->config->getAppValue('updatenotification', 'notify_groups', '["admin"]'), true);
108
+
109
+        $params = [
110
+            'isNewVersionAvailable' => !empty($updateState['updateAvailable']),
111
+            'lastChecked' => $lastUpdateCheck,
112
+            'currentChannel' => $currentChannel,
113
+            'channels' => $channels,
114
+            'newVersionString' => (empty($updateState['updateVersion'])) ? '' : $updateState['updateVersion'],
115
+            'downloadLink' => (empty($updateState['downloadLink'])) ? '' : $updateState['downloadLink'],
116
+            'updaterEnabled' => (empty($updateState['updaterEnabled'])) ? false : $updateState['updaterEnabled'],
117
+
118
+            'notify_groups' => implode('|', $notifyGroups),
119
+        ];
120
+
121
+        return new TemplateResponse($this->appName, 'admin', $params, '');
122
+    }
123
+
124
+    /**
125
+     * @UseSession
126
+     *
127
+     * @param string $channel
128
+     * @return DataResponse
129
+     */
130
+    public function setChannel($channel) {
131
+        \OCP\Util::setChannel($channel);
132
+        $this->config->setAppValue('core', 'lastupdatedat', 0);
133
+        return new DataResponse(['status' => 'success', 'data' => ['message' => $this->l10n->t('Channel updated')]]);
134
+    }
135
+
136
+    /**
137
+     * @return DataResponse
138
+     */
139
+    public function createCredentials() {
140
+        // Create a new job and store the creation date
141
+        $this->jobList->add('OCA\UpdateNotification\ResetTokenBackgroundJob');
142
+        $this->config->setAppValue('core', 'updater.secret.created', $this->timeFactory->getTime());
143
+
144
+        // Create a new token
145
+        $newToken = $this->secureRandom->generate(64);
146
+        $this->config->setSystemValue('updater.secret', password_hash($newToken, PASSWORD_DEFAULT));
147
+
148
+        return new DataResponse($newToken);
149
+    }
150
+
151
+    /**
152
+     * @return TemplateResponse returns the instance with all parameters set, ready to be rendered
153
+     */
154
+    public function getForm() {
155
+        return $this->displayPanel();
156
+    }
157
+
158
+    /**
159
+     * @return string the section ID, e.g. 'sharing'
160
+     */
161
+    public function getSection() {
162
+        return 'server';
163
+    }
164
+
165
+    /**
166
+     * @return int whether the form should be rather on the top or bottom of
167
+     * the admin section. The forms are arranged in ascending order of the
168
+     * priority values. It is required to return a value between 0 and 100.
169
+     *
170
+     * E.g.: 70
171
+     */
172
+    public function getPriority() {
173
+        return 1;
174
+    }
175 175
 }
Please login to merge, or discard this patch.
apps/updatenotification/lib/UpdateChecker.php 1 patch
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -26,48 +26,48 @@
 block discarded – undo
26 26
 use OC\Updater\VersionCheck;
27 27
 
28 28
 class UpdateChecker {
29
-	/** @var VersionCheck */
30
-	private $updater;
29
+    /** @var VersionCheck */
30
+    private $updater;
31 31
 
32
-	/**
33
-	 * @param VersionCheck $updater
34
-	 */
35
-	public function __construct(VersionCheck $updater) {
36
-		$this->updater = $updater;
37
-	}
32
+    /**
33
+     * @param VersionCheck $updater
34
+     */
35
+    public function __construct(VersionCheck $updater) {
36
+        $this->updater = $updater;
37
+    }
38 38
 
39
-	/**
40
-	 * @return array
41
-	 */
42
-	public function getUpdateState() {
43
-		$data = $this->updater->check();
44
-		$result = [];
39
+    /**
40
+     * @return array
41
+     */
42
+    public function getUpdateState() {
43
+        $data = $this->updater->check();
44
+        $result = [];
45 45
 
46
-		if(isset($data['version']) && $data['version'] !== '' && $data['version'] !== []) {
47
-			$result['updateAvailable'] = true;
48
-			$result['updateVersion'] = $data['versionstring'];
49
-			$result['updaterEnabled'] = $data['autoupdater'] === '1';
50
-			if(substr($data['web'], 0, 8) === 'https://') {
51
-				$result['updateLink'] = $data['web'];
52
-			}
53
-			if(substr($data['url'], 0, 8) === 'https://') {
54
-				$result['downloadLink'] = $data['url'];
55
-			}
46
+        if(isset($data['version']) && $data['version'] !== '' && $data['version'] !== []) {
47
+            $result['updateAvailable'] = true;
48
+            $result['updateVersion'] = $data['versionstring'];
49
+            $result['updaterEnabled'] = $data['autoupdater'] === '1';
50
+            if(substr($data['web'], 0, 8) === 'https://') {
51
+                $result['updateLink'] = $data['web'];
52
+            }
53
+            if(substr($data['url'], 0, 8) === 'https://') {
54
+                $result['downloadLink'] = $data['url'];
55
+            }
56 56
 
57
-			return $result;
58
-		}
57
+            return $result;
58
+        }
59 59
 
60
-		return [];
61
-	}
60
+        return [];
61
+    }
62 62
 
63
-	/**
64
-	 * @param array $data
65
-	 */
66
-	public function getJavaScript(array $data) {
67
-		$data['array']['oc_updateState'] =  json_encode([
68
-			'updateAvailable' => true,
69
-			'updateVersion' => $this->getUpdateState()['updateVersion'],
70
-			'updateLink' => isset($this->getUpdateState()['updateLink']) ? $this->getUpdateState()['updateLink'] : '',
71
-		]);
72
-	}
63
+    /**
64
+     * @param array $data
65
+     */
66
+    public function getJavaScript(array $data) {
67
+        $data['array']['oc_updateState'] =  json_encode([
68
+            'updateAvailable' => true,
69
+            'updateVersion' => $this->getUpdateState()['updateVersion'],
70
+            'updateLink' => isset($this->getUpdateState()['updateLink']) ? $this->getUpdateState()['updateLink'] : '',
71
+        ]);
72
+    }
73 73
 }
Please login to merge, or discard this patch.