aboutsummaryrefslogtreecommitdiffstats
path: root/apps/workflowengine/lib/Check/RequestUserAgent.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/workflowengine/lib/Check/RequestUserAgent.php')
-rw-r--r--apps/workflowengine/lib/Check/RequestUserAgent.php49
1 files changed, 22 insertions, 27 deletions
diff --git a/apps/workflowengine/lib/Check/RequestUserAgent.php b/apps/workflowengine/lib/Check/RequestUserAgent.php
index 7a8d4a71acf..572ef567074 100644
--- a/apps/workflowengine/lib/Check/RequestUserAgent.php
+++ b/apps/workflowengine/lib/Check/RequestUserAgent.php
@@ -1,42 +1,25 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-
namespace OCA\WorkflowEngine\Check;
-
use OCP\IL10N;
use OCP\IRequest;
class RequestUserAgent extends AbstractStringCheck {
- /** @var IRequest */
- protected $request;
-
/**
* @param IL10N $l
* @param IRequest $request
*/
- public function __construct(IL10N $l, IRequest $request) {
+ public function __construct(
+ IL10N $l,
+ protected IRequest $request,
+ ) {
parent::__construct($l);
- $this->request = $request;
}
/**
@@ -44,9 +27,9 @@ class RequestUserAgent extends AbstractStringCheck {
* @param string $value
* @return bool
*/
- public function executeCheck($operator, $value) {
+ public function executeCheck($operator, $value) {
$actualValue = $this->getActualValue();
- if (in_array($operator, ['is', '!is'])) {
+ if (in_array($operator, ['is', '!is'], true)) {
switch ($value) {
case 'android':
$operator = $operator === 'is' ? 'matches' : '!matches';
@@ -60,6 +43,14 @@ class RequestUserAgent extends AbstractStringCheck {
$operator = $operator === 'is' ? 'matches' : '!matches';
$value = IRequest::USER_AGENT_CLIENT_DESKTOP;
break;
+ case 'mail':
+ if ($operator === 'is') {
+ return $this->executeStringCheck('matches', IRequest::USER_AGENT_OUTLOOK_ADDON, $actualValue)
+ || $this->executeStringCheck('matches', IRequest::USER_AGENT_THUNDERBIRD_ADDON, $actualValue);
+ }
+
+ return $this->executeStringCheck('!matches', IRequest::USER_AGENT_OUTLOOK_ADDON, $actualValue)
+ && $this->executeStringCheck('!matches', IRequest::USER_AGENT_THUNDERBIRD_ADDON, $actualValue);
}
}
return $this->executeStringCheck($operator, $value, $actualValue);
@@ -69,6 +60,10 @@ class RequestUserAgent extends AbstractStringCheck {
* @return string
*/
protected function getActualValue() {
- return (string) $this->request->getHeader('User-Agent');
+ return $this->request->getHeader('User-Agent');
+ }
+
+ public function isAvailableForScope(int $scope): bool {
+ return true;
}
}