Completed
Push — stable10 ( 737591...a2942c )
by Lukas
09:58 queued 09:42
created

Admin::getSection()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 3
rs 10
c 1
b 0
f 0
1
<?php
2
/**
3
 * @copyright Copyright (c) 2016 Arthur Schiwon <[email protected]>
4
 *
5
 * @author Arthur Schiwon <[email protected]>
6
 *
7
 * @license GNU AGPL version 3 or any later version
8
 *
9
 * This program is free software: you can redistribute it and/or modify
10
 * it under the terms of the GNU Affero General Public License as
11
 * published by the Free Software Foundation, either version 3 of the
12
 * License, or (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 * GNU Affero General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU Affero General Public License
20
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
 *
22
 */
23
24
namespace OCA\Files_External\Settings;
25
26
use OCA\Files_External\Lib\Auth\Password\GlobalAuth;
27
use OCA\Files_External\Service\BackendService;
28
use OCA\Files_External\Service\GlobalStoragesService;
29
use OCP\AppFramework\Http\TemplateResponse;
30
use OCP\Encryption\IManager;
31
use OCP\Settings\ISettings;
32
33
class Admin implements ISettings {
34
35
	/** @var IManager */
36
	private $encryptionManager;
37
38
	/** @var GlobalStoragesService */
39
	private $globalStoragesService;
40
41
	/** @var BackendService */
42
	private $backendService;
43
44
	/** @var GlobalAuth	 */
45
	private $globalAuth;
46
47
	public function __construct(
48
		IManager $encryptionManager,
49
		GlobalStoragesService $globalStoragesService,
50
		BackendService $backendService,
51
		GlobalAuth $globalAuth
52
	) {
53
		$this->encryptionManager = $encryptionManager;
54
		$this->globalStoragesService = $globalStoragesService;
55
		$this->backendService = $backendService;
56
		$this->globalAuth = $globalAuth;
57
	}
58
59
	/**
60
	 * @return TemplateResponse
61
	 */
62
	public function getForm() {
63
		$parameters = [
64
			'encryptionEnabled'    => $this->encryptionManager->isEnabled(),
65
			'visibilityType'       => BackendService::VISIBILITY_ADMIN,
66
			'storages'             => $this->globalStoragesService->getStorages(),
67
			'backends'             => $this->backendService->getAvailableBackends(),
68
			'authMechanisms'       => $this->backendService->getAuthMechanisms(),
69
			'dependencies'         => \OC_Mount_Config::dependencyMessage($this->backendService->getBackends()),
70
			'allowUserMounting'    => $this->backendService->isUserMountingAllowed(),
71
			'globalCredentials'    => $this->globalAuth->getAuth(''),
72
			'globalCredentialsUid' => '',
73
		];
74
75
		return new TemplateResponse('files_external', 'settings', $parameters, '');
76
	}
77
78
	/**
79
	 * @return string the section ID, e.g. 'sharing'
80
	 */
81
	public function getSection() {
82
		return 'externalstorages';
83
	}
84
85
	/**
86
	 * @return int whether the form should be rather on the top or bottom of
87
	 * the admin section. The forms are arranged in ascending order of the
88
	 * priority values. It is required to return a value between 0 and 100.
89
	 *
90
	 * E.g.: 70
91
	 */
92
	public function getPriority() {
93
		return 40;
94
	}
95
96
}
97