Passed
Push — master ( 4a4262...32927f )
by Roeland
24:24 queued 11:41
created
lib/private/Diagnostics/Query.php 1 patch
Indentation   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -26,65 +26,65 @@
 block discarded – undo
26 26
 use OCP\Diagnostics\IQuery;
27 27
 
28 28
 class Query implements IQuery {
29
-	private $sql;
29
+    private $sql;
30 30
 
31
-	private $params;
31
+    private $params;
32 32
 
33
-	private $start;
33
+    private $start;
34 34
 
35
-	private $end;
35
+    private $end;
36 36
 
37
-	private $stack;
37
+    private $stack;
38 38
 
39
-	/**
40
-	 * @param string $sql
41
-	 * @param array $params
42
-	 * @param int $start
43
-	 */
44
-	public function __construct($sql, $params, $start, array $stack) {
45
-		$this->sql = $sql;
46
-		$this->params = $params;
47
-		$this->start = $start;
48
-		$this->stack = $stack;
49
-	}
39
+    /**
40
+     * @param string $sql
41
+     * @param array $params
42
+     * @param int $start
43
+     */
44
+    public function __construct($sql, $params, $start, array $stack) {
45
+        $this->sql = $sql;
46
+        $this->params = $params;
47
+        $this->start = $start;
48
+        $this->stack = $stack;
49
+    }
50 50
 
51
-	public function end($time) {
52
-		$this->end = $time;
53
-	}
51
+    public function end($time) {
52
+        $this->end = $time;
53
+    }
54 54
 
55
-	/**
56
-	 * @return array
57
-	 */
58
-	public function getParams() {
59
-		return $this->params;
60
-	}
55
+    /**
56
+     * @return array
57
+     */
58
+    public function getParams() {
59
+        return $this->params;
60
+    }
61 61
 
62
-	/**
63
-	 * @return string
64
-	 */
65
-	public function getSql() {
66
-		return $this->sql;
67
-	}
62
+    /**
63
+     * @return string
64
+     */
65
+    public function getSql() {
66
+        return $this->sql;
67
+    }
68 68
 
69
-	/**
70
-	 * @return float
71
-	 */
72
-	public function getStart() {
73
-		return $this->start;
74
-	}
69
+    /**
70
+     * @return float
71
+     */
72
+    public function getStart() {
73
+        return $this->start;
74
+    }
75 75
 	
76
-	/**
77
-	 * @return float
78
-	 */
79
-	public function getDuration() {
80
-		return $this->end - $this->start;
81
-	}
76
+    /**
77
+     * @return float
78
+     */
79
+    public function getDuration() {
80
+        return $this->end - $this->start;
81
+    }
82 82
 
83
-	public function getStartTime() {
84
-		return $this->start;
85
-	}
83
+    public function getStartTime() {
84
+        return $this->start;
85
+    }
86 86
 
87
-	public function getStacktrace() {
88
-		return $this->stack;
89
-	}
87
+    public function getStacktrace() {
88
+        return $this->stack;
89
+    }
90 90
 }
Please login to merge, or discard this patch.
apps/files_external/lib/Config/ExternalMountPoint.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -24,7 +24,7 @@
 block discarded – undo
24 24
 use OC\Files\Mount\MountPoint;
25 25
 
26 26
 class ExternalMountPoint extends MountPoint {
27
-	public function getMountType() {
28
-		return 'external';
29
-	}
27
+    public function getMountType() {
28
+        return 'external';
29
+    }
30 30
 }
Please login to merge, or discard this patch.
lib/private/App/AppStore/Bundles/SocialSharingBundle.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -27,7 +27,7 @@
 block discarded – undo
27 27
 	 * {@inheritDoc}
28 28
 	 */
29 29
 	public function getName() {
30
-		return (string)$this->l10n->t('Social sharing bundle');
30
+		return (string) $this->l10n->t('Social sharing bundle');
31 31
 	}
32 32
 
33 33
 	/**
Please login to merge, or discard this patch.
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -25,23 +25,23 @@
 block discarded – undo
25 25
 
26 26
 class SocialSharingBundle extends Bundle {
27 27
 
28
-	/**
29
-	 * {@inheritDoc}
30
-	 */
31
-	public function getName() {
32
-		return (string)$this->l10n->t('Social sharing bundle');
33
-	}
28
+    /**
29
+     * {@inheritDoc}
30
+     */
31
+    public function getName() {
32
+        return (string)$this->l10n->t('Social sharing bundle');
33
+    }
34 34
 
35
-	/**
36
-	 * {@inheritDoc}
37
-	 */
38
-	public function getAppIdentifiers() {
39
-		return [
40
-			'socialsharing_twitter',
41
-			'socialsharing_facebook',
42
-			'socialsharing_email',
43
-			'socialsharing_diaspora',
44
-		];
45
-	}
35
+    /**
36
+     * {@inheritDoc}
37
+     */
38
+    public function getAppIdentifiers() {
39
+        return [
40
+            'socialsharing_twitter',
41
+            'socialsharing_facebook',
42
+            'socialsharing_email',
43
+            'socialsharing_diaspora',
44
+        ];
45
+    }
46 46
 
47 47
 }
Please login to merge, or discard this patch.
lib/public/Files/Mount/IMountPoint.php 1 patch
Indentation   +88 added lines, -88 removed lines patch added patch discarded remove patch
@@ -29,103 +29,103 @@
 block discarded – undo
29 29
  */
30 30
 interface IMountPoint {
31 31
 
32
-	/**
33
-	 * get complete path to the mount point
34
-	 *
35
-	 * @return string
36
-	 * @since 8.0.0
37
-	 */
38
-	public function getMountPoint();
32
+    /**
33
+     * get complete path to the mount point
34
+     *
35
+     * @return string
36
+     * @since 8.0.0
37
+     */
38
+    public function getMountPoint();
39 39
 
40
-	/**
41
-	 * Set the mountpoint
42
-	 *
43
-	 * @param string $mountPoint new mount point
44
-	 * @since 8.0.0
45
-	 */
46
-	public function setMountPoint($mountPoint);
40
+    /**
41
+     * Set the mountpoint
42
+     *
43
+     * @param string $mountPoint new mount point
44
+     * @since 8.0.0
45
+     */
46
+    public function setMountPoint($mountPoint);
47 47
 
48
-	/**
49
-	 * Get the storage that is mounted
50
-	 *
51
-	 * @return \OC\Files\Storage\Storage
52
-	 * @since 8.0.0
53
-	 */
54
-	public function getStorage();
48
+    /**
49
+     * Get the storage that is mounted
50
+     *
51
+     * @return \OC\Files\Storage\Storage
52
+     * @since 8.0.0
53
+     */
54
+    public function getStorage();
55 55
 
56
-	/**
57
-	 * Get the id of the storages
58
-	 *
59
-	 * @return string
60
-	 * @since 8.0.0
61
-	 */
62
-	public function getStorageId();
56
+    /**
57
+     * Get the id of the storages
58
+     *
59
+     * @return string
60
+     * @since 8.0.0
61
+     */
62
+    public function getStorageId();
63 63
 
64
-	/**
65
-	 * Get the id of the storages
66
-	 *
67
-	 * @return int
68
-	 * @since 9.1.0
69
-	 */
70
-	public function getNumericStorageId();
64
+    /**
65
+     * Get the id of the storages
66
+     *
67
+     * @return int
68
+     * @since 9.1.0
69
+     */
70
+    public function getNumericStorageId();
71 71
 
72
-	/**
73
-	 * Get the path relative to the mountpoint
74
-	 *
75
-	 * @param string $path absolute path to a file or folder
76
-	 * @return string
77
-	 * @since 8.0.0
78
-	 */
79
-	public function getInternalPath($path);
72
+    /**
73
+     * Get the path relative to the mountpoint
74
+     *
75
+     * @param string $path absolute path to a file or folder
76
+     * @return string
77
+     * @since 8.0.0
78
+     */
79
+    public function getInternalPath($path);
80 80
 
81
-	/**
82
-	 * Apply a storage wrapper to the mounted storage
83
-	 *
84
-	 * @param callable $wrapper
85
-	 * @since 8.0.0
86
-	 */
87
-	public function wrapStorage($wrapper);
81
+    /**
82
+     * Apply a storage wrapper to the mounted storage
83
+     *
84
+     * @param callable $wrapper
85
+     * @since 8.0.0
86
+     */
87
+    public function wrapStorage($wrapper);
88 88
 
89
-	/**
90
-	 * Get a mount option
91
-	 *
92
-	 * @param string $name Name of the mount option to get
93
-	 * @param mixed $default Default value for the mount option
94
-	 * @return mixed
95
-	 * @since 8.0.0
96
-	 */
97
-	public function getOption($name, $default);
89
+    /**
90
+     * Get a mount option
91
+     *
92
+     * @param string $name Name of the mount option to get
93
+     * @param mixed $default Default value for the mount option
94
+     * @return mixed
95
+     * @since 8.0.0
96
+     */
97
+    public function getOption($name, $default);
98 98
 
99
-	/**
100
-	 * Get all options for the mount
101
-	 *
102
-	 * @return array
103
-	 * @since 8.1.0
104
-	 */
105
-	public function getOptions();
99
+    /**
100
+     * Get all options for the mount
101
+     *
102
+     * @return array
103
+     * @since 8.1.0
104
+     */
105
+    public function getOptions();
106 106
 
107
-	/**
108
-	 * Get the file id of the root of the storage
109
-	 *
110
-	 * @return int
111
-	 * @since 9.1.0
112
-	 */
113
-	public function getStorageRootId();
107
+    /**
108
+     * Get the file id of the root of the storage
109
+     *
110
+     * @return int
111
+     * @since 9.1.0
112
+     */
113
+    public function getStorageRootId();
114 114
 
115
-	/**
116
-	 * Get the id of the configured mount
117
-	 *
118
-	 * @return int|null mount id or null if not applicable
119
-	 * @since 9.1.0
120
-	 */
121
-	public function getMountId();
115
+    /**
116
+     * Get the id of the configured mount
117
+     *
118
+     * @return int|null mount id or null if not applicable
119
+     * @since 9.1.0
120
+     */
121
+    public function getMountId();
122 122
 
123
-	/**
124
-	 * Get the type of mount point, used to distinguish things like shares and external storages
125
-	 * in the web interface
126
-	 *
127
-	 * @return string
128
-	 * @since 12.0.0
129
-	 */
130
-	public function getMountType();
123
+    /**
124
+     * Get the type of mount point, used to distinguish things like shares and external storages
125
+     * in the web interface
126
+     *
127
+     * @return string
128
+     * @since 12.0.0
129
+     */
130
+    public function getMountType();
131 131
 }
Please login to merge, or discard this patch.
lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php 1 patch
Indentation   +26 added lines, -26 removed lines patch added patch discarded remove patch
@@ -31,34 +31,34 @@
 block discarded – undo
31 31
 
32 32
 class EMailProvider implements IProvider {
33 33
 
34
-	/** @var IActionFactory */
35
-	private $actionFactory;
34
+    /** @var IActionFactory */
35
+    private $actionFactory;
36 36
 
37
-	/** @var IURLGenerator */
38
-	private $urlGenerator;
37
+    /** @var IURLGenerator */
38
+    private $urlGenerator;
39 39
 
40
-	/**
41
-	 * @param IActionFactory $actionFactory
42
-	 * @param IURLGenerator $urlGenerator
43
-	 */
44
-	public function __construct(IActionFactory $actionFactory, IURLGenerator $urlGenerator) {
45
-		$this->actionFactory = $actionFactory;
46
-		$this->urlGenerator = $urlGenerator;
47
-	}
40
+    /**
41
+     * @param IActionFactory $actionFactory
42
+     * @param IURLGenerator $urlGenerator
43
+     */
44
+    public function __construct(IActionFactory $actionFactory, IURLGenerator $urlGenerator) {
45
+        $this->actionFactory = $actionFactory;
46
+        $this->urlGenerator = $urlGenerator;
47
+    }
48 48
 
49
-	/**
50
-	 * @param IEntry $entry
51
-	 */
52
-	public function process(IEntry $entry) {
53
-		$iconUrl = $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/mail.svg'));
54
-		foreach ($entry->getEMailAddresses() as $address) {
55
-			if (empty($address)) {
56
-				// Skip
57
-				continue;
58
-			}
59
-			$action = $this->actionFactory->newEMailAction($iconUrl, $address, $address);
60
-			$entry->addAction($action);
61
-		}
62
-	}
49
+    /**
50
+     * @param IEntry $entry
51
+     */
52
+    public function process(IEntry $entry) {
53
+        $iconUrl = $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/mail.svg'));
54
+        foreach ($entry->getEMailAddresses() as $address) {
55
+            if (empty($address)) {
56
+                // Skip
57
+                continue;
58
+            }
59
+            $action = $this->actionFactory->newEMailAction($iconUrl, $address, $address);
60
+            $entry->addAction($action);
61
+        }
62
+    }
63 63
 
64 64
 }
Please login to merge, or discard this patch.
lib/private/App/CodeChecker/LanguageParseChecker.php 2 patches
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -25,36 +25,36 @@
 block discarded – undo
25 25
 
26 26
 class LanguageParseChecker {
27 27
 
28
-	/**
29
-	 * @param string $appId
30
-	 * @return array
31
-	 */
32
-	public function analyse($appId) {
33
-		$appPath = \OC_App::getAppPath($appId);
34
-		if ($appPath === false) {
35
-			throw new \RuntimeException("No app with given id <$appId> known.");
36
-		}
37
-
38
-		if (!is_dir($appPath . '/l10n/')) {
39
-			return [];
40
-		}
41
-
42
-		$errors = [];
43
-		$directory = new \DirectoryIterator($appPath . '/l10n/');
44
-
45
-		foreach ($directory as $file) {
46
-			if ($file->getExtension() !== 'json') {
47
-				continue;
48
-			}
49
-
50
-			$content = file_get_contents($file->getPathname());
51
-			json_decode($content, true);
52
-
53
-			if (json_last_error() !== JSON_ERROR_NONE) {
54
-				$errors[] = 'Invalid language file found: l10n/' . $file->getFilename() . ': ' . json_last_error_msg();
55
-			}
56
-		}
57
-
58
-		return $errors;
59
-	}
28
+    /**
29
+     * @param string $appId
30
+     * @return array
31
+     */
32
+    public function analyse($appId) {
33
+        $appPath = \OC_App::getAppPath($appId);
34
+        if ($appPath === false) {
35
+            throw new \RuntimeException("No app with given id <$appId> known.");
36
+        }
37
+
38
+        if (!is_dir($appPath . '/l10n/')) {
39
+            return [];
40
+        }
41
+
42
+        $errors = [];
43
+        $directory = new \DirectoryIterator($appPath . '/l10n/');
44
+
45
+        foreach ($directory as $file) {
46
+            if ($file->getExtension() !== 'json') {
47
+                continue;
48
+            }
49
+
50
+            $content = file_get_contents($file->getPathname());
51
+            json_decode($content, true);
52
+
53
+            if (json_last_error() !== JSON_ERROR_NONE) {
54
+                $errors[] = 'Invalid language file found: l10n/' . $file->getFilename() . ': ' . json_last_error_msg();
55
+            }
56
+        }
57
+
58
+        return $errors;
59
+    }
60 60
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -35,12 +35,12 @@  discard block
 block discarded – undo
35 35
 			throw new \RuntimeException("No app with given id <$appId> known.");
36 36
 		}
37 37
 
38
-		if (!is_dir($appPath . '/l10n/')) {
38
+		if (!is_dir($appPath.'/l10n/')) {
39 39
 			return [];
40 40
 		}
41 41
 
42 42
 		$errors = [];
43
-		$directory = new \DirectoryIterator($appPath . '/l10n/');
43
+		$directory = new \DirectoryIterator($appPath.'/l10n/');
44 44
 
45 45
 		foreach ($directory as $file) {
46 46
 			if ($file->getExtension() !== 'json') {
@@ -51,7 +51,7 @@  discard block
 block discarded – undo
51 51
 			json_decode($content, true);
52 52
 
53 53
 			if (json_last_error() !== JSON_ERROR_NONE) {
54
-				$errors[] = 'Invalid language file found: l10n/' . $file->getFilename() . ': ' . json_last_error_msg();
54
+				$errors[] = 'Invalid language file found: l10n/'.$file->getFilename().': '.json_last_error_msg();
55 55
 			}
56 56
 		}
57 57
 
Please login to merge, or discard this patch.
apps/files_external/lib/Command/Import.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -112,7 +112,7 @@  discard block
 block discarded – undo
112 112
 			$json = file_get_contents('php://stdin');
113 113
 		} else {
114 114
 			if (!file_exists($path)) {
115
-				$output->writeln('<error>File not found: ' . $path . '</error>');
115
+				$output->writeln('<error>File not found: '.$path.'</error>');
116 116
 				return 1;
117 117
 			}
118 118
 			$json = file_get_contents($path);
@@ -164,7 +164,7 @@  discard block
 block discarded – undo
164 164
 					$existingMount->getApplicableUsers() === $mount->getApplicableUsers() &&
165 165
 					$existingMount->getBackendOptions() === $mount->getBackendOptions()
166 166
 				) {
167
-					$output->writeln("<error>Duplicate mount (" . $mount->getMountPoint() . ")</error>");
167
+					$output->writeln("<error>Duplicate mount (".$mount->getMountPoint().")</error>");
168 168
 					return 1;
169 169
 				}
170 170
 			}
Please login to merge, or discard this patch.
Indentation   +183 added lines, -183 removed lines patch added patch discarded remove patch
@@ -41,187 +41,187 @@
 block discarded – undo
41 41
 use Symfony\Component\Console\Output\OutputInterface;
42 42
 
43 43
 class Import extends Base {
44
-	/**
45
-	 * @var GlobalStoragesService
46
-	 */
47
-	private $globalService;
48
-
49
-	/**
50
-	 * @var UserStoragesService
51
-	 */
52
-	private $userService;
53
-
54
-	/**
55
-	 * @var IUserSession
56
-	 */
57
-	private $userSession;
58
-
59
-	/**
60
-	 * @var IUserManager
61
-	 */
62
-	private $userManager;
63
-
64
-	/** @var ImportLegacyStoragesService */
65
-	private $importLegacyStorageService;
66
-
67
-	/** @var BackendService */
68
-	private $backendService;
69
-
70
-	public function __construct(GlobalStoragesService $globalService,
71
-						 UserStoragesService $userService,
72
-						 IUserSession $userSession,
73
-						 IUserManager $userManager,
74
-						 ImportLegacyStoragesService $importLegacyStorageService,
75
-						 BackendService $backendService
76
-	) {
77
-		parent::__construct();
78
-		$this->globalService = $globalService;
79
-		$this->userService = $userService;
80
-		$this->userSession = $userSession;
81
-		$this->userManager = $userManager;
82
-		$this->importLegacyStorageService = $importLegacyStorageService;
83
-		$this->backendService = $backendService;
84
-	}
85
-
86
-	protected function configure() {
87
-		$this
88
-			->setName('files_external:import')
89
-			->setDescription('Import mount configurations')
90
-			->addOption(
91
-				'user',
92
-				'',
93
-				InputOption::VALUE_OPTIONAL,
94
-				'user to add the mount configurations for, if not set the mount will be added as system mount'
95
-			)
96
-			->addArgument(
97
-				'path',
98
-				InputArgument::REQUIRED,
99
-				'path to a json file containing the mounts to import, use "-" to read from stdin'
100
-			)
101
-			->addOption(
102
-				'dry',
103
-				'',
104
-				InputOption::VALUE_NONE,
105
-				'Don\'t save the imported mounts, only list the new mounts'
106
-			);
107
-		parent::configure();
108
-	}
109
-
110
-	protected function execute(InputInterface $input, OutputInterface $output): int {
111
-		$user = $input->getOption('user');
112
-		$path = $input->getArgument('path');
113
-		if ($path === '-') {
114
-			$json = file_get_contents('php://stdin');
115
-		} else {
116
-			if (!file_exists($path)) {
117
-				$output->writeln('<error>File not found: ' . $path . '</error>');
118
-				return 1;
119
-			}
120
-			$json = file_get_contents($path);
121
-		}
122
-		if (!is_string($json) || strlen($json) < 2) {
123
-			$output->writeln('<error>Error while reading json</error>');
124
-			return 1;
125
-		}
126
-		$data = json_decode($json, true);
127
-		if (!is_array($data)) {
128
-			$output->writeln('<error>Error while parsing json</error>');
129
-			return 1;
130
-		}
131
-
132
-		$isLegacy = isset($data['user']) || isset($data['group']);
133
-		if ($isLegacy) {
134
-			$this->importLegacyStorageService->setData($data);
135
-			$mounts = $this->importLegacyStorageService->getAllStorages();
136
-			foreach ($mounts as $mount) {
137
-				if ($mount->getBackendOption('password') === false) {
138
-					$output->writeln('<error>Failed to decrypt password</error>');
139
-					return 1;
140
-				}
141
-			}
142
-		} else {
143
-			if (!isset($data[0])) { //normalize to an array of mounts
144
-				$data = [$data];
145
-			}
146
-			$mounts = array_map([$this, 'parseData'], $data);
147
-		}
148
-
149
-		if ($user) {
150
-			// ensure applicables are correct for personal mounts
151
-			foreach ($mounts as $mount) {
152
-				$mount->setApplicableGroups([]);
153
-				$mount->setApplicableUsers([$user]);
154
-			}
155
-		}
156
-
157
-		$storageService = $this->getStorageService($user);
158
-
159
-		$existingMounts = $storageService->getAllStorages();
160
-
161
-		foreach ($mounts as $mount) {
162
-			foreach ($existingMounts as $existingMount) {
163
-				if (
164
-					$existingMount->getMountPoint() === $mount->getMountPoint() &&
165
-					$existingMount->getApplicableGroups() === $mount->getApplicableGroups() &&
166
-					$existingMount->getApplicableUsers() === $mount->getApplicableUsers() &&
167
-					$existingMount->getBackendOptions() === $mount->getBackendOptions()
168
-				) {
169
-					$output->writeln("<error>Duplicate mount (" . $mount->getMountPoint() . ")</error>");
170
-					return 1;
171
-				}
172
-			}
173
-		}
174
-
175
-		if ($input->getOption('dry')) {
176
-			if (count($mounts) === 0) {
177
-				$output->writeln('<error>No mounts to be imported</error>');
178
-				return 1;
179
-			}
180
-			$listCommand = new ListCommand($this->globalService, $this->userService, $this->userSession, $this->userManager);
181
-			$listInput = new ArrayInput([], $listCommand->getDefinition());
182
-			$listInput->setOption('output', $input->getOption('output'));
183
-			$listInput->setOption('show-password', true);
184
-			$listCommand->listMounts($user, $mounts, $listInput, $output);
185
-		} else {
186
-			foreach ($mounts as $mount) {
187
-				$storageService->addStorage($mount);
188
-			}
189
-		}
190
-		return 0;
191
-	}
192
-
193
-	private function parseData(array $data) {
194
-		$mount = new StorageConfig($data['mount_id']);
195
-		$mount->setMountPoint($data['mount_point']);
196
-		$mount->setBackend($this->getBackendByClass($data['storage']));
197
-		$authBackend = $this->backendService->getAuthMechanism($data['authentication_type']);
198
-		$mount->setAuthMechanism($authBackend);
199
-		$mount->setBackendOptions($data['configuration']);
200
-		$mount->setMountOptions($data['options']);
201
-		$mount->setApplicableUsers(isset($data['applicable_users']) ? $data['applicable_users'] : []);
202
-		$mount->setApplicableGroups(isset($data['applicable_groups']) ? $data['applicable_groups'] : []);
203
-		return $mount;
204
-	}
205
-
206
-	private function getBackendByClass($className) {
207
-		$backends = $this->backendService->getBackends();
208
-		foreach ($backends as $backend) {
209
-			if ($backend->getStorageClass() === $className) {
210
-				return $backend;
211
-			}
212
-		}
213
-	}
214
-
215
-	protected function getStorageService($userId) {
216
-		if (!empty($userId)) {
217
-			$user = $this->userManager->get($userId);
218
-			if (is_null($user)) {
219
-				throw new NoUserException("user $userId not found");
220
-			}
221
-			$this->userSession->setUser($user);
222
-			return $this->userService;
223
-		} else {
224
-			return $this->globalService;
225
-		}
226
-	}
44
+    /**
45
+     * @var GlobalStoragesService
46
+     */
47
+    private $globalService;
48
+
49
+    /**
50
+     * @var UserStoragesService
51
+     */
52
+    private $userService;
53
+
54
+    /**
55
+     * @var IUserSession
56
+     */
57
+    private $userSession;
58
+
59
+    /**
60
+     * @var IUserManager
61
+     */
62
+    private $userManager;
63
+
64
+    /** @var ImportLegacyStoragesService */
65
+    private $importLegacyStorageService;
66
+
67
+    /** @var BackendService */
68
+    private $backendService;
69
+
70
+    public function __construct(GlobalStoragesService $globalService,
71
+                            UserStoragesService $userService,
72
+                            IUserSession $userSession,
73
+                            IUserManager $userManager,
74
+                            ImportLegacyStoragesService $importLegacyStorageService,
75
+                            BackendService $backendService
76
+    ) {
77
+        parent::__construct();
78
+        $this->globalService = $globalService;
79
+        $this->userService = $userService;
80
+        $this->userSession = $userSession;
81
+        $this->userManager = $userManager;
82
+        $this->importLegacyStorageService = $importLegacyStorageService;
83
+        $this->backendService = $backendService;
84
+    }
85
+
86
+    protected function configure() {
87
+        $this
88
+            ->setName('files_external:import')
89
+            ->setDescription('Import mount configurations')
90
+            ->addOption(
91
+                'user',
92
+                '',
93
+                InputOption::VALUE_OPTIONAL,
94
+                'user to add the mount configurations for, if not set the mount will be added as system mount'
95
+            )
96
+            ->addArgument(
97
+                'path',
98
+                InputArgument::REQUIRED,
99
+                'path to a json file containing the mounts to import, use "-" to read from stdin'
100
+            )
101
+            ->addOption(
102
+                'dry',
103
+                '',
104
+                InputOption::VALUE_NONE,
105
+                'Don\'t save the imported mounts, only list the new mounts'
106
+            );
107
+        parent::configure();
108
+    }
109
+
110
+    protected function execute(InputInterface $input, OutputInterface $output): int {
111
+        $user = $input->getOption('user');
112
+        $path = $input->getArgument('path');
113
+        if ($path === '-') {
114
+            $json = file_get_contents('php://stdin');
115
+        } else {
116
+            if (!file_exists($path)) {
117
+                $output->writeln('<error>File not found: ' . $path . '</error>');
118
+                return 1;
119
+            }
120
+            $json = file_get_contents($path);
121
+        }
122
+        if (!is_string($json) || strlen($json) < 2) {
123
+            $output->writeln('<error>Error while reading json</error>');
124
+            return 1;
125
+        }
126
+        $data = json_decode($json, true);
127
+        if (!is_array($data)) {
128
+            $output->writeln('<error>Error while parsing json</error>');
129
+            return 1;
130
+        }
131
+
132
+        $isLegacy = isset($data['user']) || isset($data['group']);
133
+        if ($isLegacy) {
134
+            $this->importLegacyStorageService->setData($data);
135
+            $mounts = $this->importLegacyStorageService->getAllStorages();
136
+            foreach ($mounts as $mount) {
137
+                if ($mount->getBackendOption('password') === false) {
138
+                    $output->writeln('<error>Failed to decrypt password</error>');
139
+                    return 1;
140
+                }
141
+            }
142
+        } else {
143
+            if (!isset($data[0])) { //normalize to an array of mounts
144
+                $data = [$data];
145
+            }
146
+            $mounts = array_map([$this, 'parseData'], $data);
147
+        }
148
+
149
+        if ($user) {
150
+            // ensure applicables are correct for personal mounts
151
+            foreach ($mounts as $mount) {
152
+                $mount->setApplicableGroups([]);
153
+                $mount->setApplicableUsers([$user]);
154
+            }
155
+        }
156
+
157
+        $storageService = $this->getStorageService($user);
158
+
159
+        $existingMounts = $storageService->getAllStorages();
160
+
161
+        foreach ($mounts as $mount) {
162
+            foreach ($existingMounts as $existingMount) {
163
+                if (
164
+                    $existingMount->getMountPoint() === $mount->getMountPoint() &&
165
+                    $existingMount->getApplicableGroups() === $mount->getApplicableGroups() &&
166
+                    $existingMount->getApplicableUsers() === $mount->getApplicableUsers() &&
167
+                    $existingMount->getBackendOptions() === $mount->getBackendOptions()
168
+                ) {
169
+                    $output->writeln("<error>Duplicate mount (" . $mount->getMountPoint() . ")</error>");
170
+                    return 1;
171
+                }
172
+            }
173
+        }
174
+
175
+        if ($input->getOption('dry')) {
176
+            if (count($mounts) === 0) {
177
+                $output->writeln('<error>No mounts to be imported</error>');
178
+                return 1;
179
+            }
180
+            $listCommand = new ListCommand($this->globalService, $this->userService, $this->userSession, $this->userManager);
181
+            $listInput = new ArrayInput([], $listCommand->getDefinition());
182
+            $listInput->setOption('output', $input->getOption('output'));
183
+            $listInput->setOption('show-password', true);
184
+            $listCommand->listMounts($user, $mounts, $listInput, $output);
185
+        } else {
186
+            foreach ($mounts as $mount) {
187
+                $storageService->addStorage($mount);
188
+            }
189
+        }
190
+        return 0;
191
+    }
192
+
193
+    private function parseData(array $data) {
194
+        $mount = new StorageConfig($data['mount_id']);
195
+        $mount->setMountPoint($data['mount_point']);
196
+        $mount->setBackend($this->getBackendByClass($data['storage']));
197
+        $authBackend = $this->backendService->getAuthMechanism($data['authentication_type']);
198
+        $mount->setAuthMechanism($authBackend);
199
+        $mount->setBackendOptions($data['configuration']);
200
+        $mount->setMountOptions($data['options']);
201
+        $mount->setApplicableUsers(isset($data['applicable_users']) ? $data['applicable_users'] : []);
202
+        $mount->setApplicableGroups(isset($data['applicable_groups']) ? $data['applicable_groups'] : []);
203
+        return $mount;
204
+    }
205
+
206
+    private function getBackendByClass($className) {
207
+        $backends = $this->backendService->getBackends();
208
+        foreach ($backends as $backend) {
209
+            if ($backend->getStorageClass() === $className) {
210
+                return $backend;
211
+            }
212
+        }
213
+    }
214
+
215
+    protected function getStorageService($userId) {
216
+        if (!empty($userId)) {
217
+            $user = $this->userManager->get($userId);
218
+            if (is_null($user)) {
219
+                throw new NoUserException("user $userId not found");
220
+            }
221
+            $this->userSession->setUser($user);
222
+            return $this->userService;
223
+        } else {
224
+            return $this->globalService;
225
+        }
226
+    }
227 227
 }
Please login to merge, or discard this patch.
apps/oauth2/lib/Db/Client.php 1 patch
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -34,20 +34,20 @@
 block discarded – undo
34 34
  * @method void setName(string $name)
35 35
  */
36 36
 class Client extends Entity {
37
-	/** @var string */
38
-	protected $name;
39
-	/** @var string */
40
-	protected $redirectUri;
41
-	/** @var string */
42
-	protected $clientIdentifier;
43
-	/** @var string */
44
-	protected $secret;
37
+    /** @var string */
38
+    protected $name;
39
+    /** @var string */
40
+    protected $redirectUri;
41
+    /** @var string */
42
+    protected $clientIdentifier;
43
+    /** @var string */
44
+    protected $secret;
45 45
 
46
-	public function __construct() {
47
-		$this->addType('id', 'int');
48
-		$this->addType('name', 'string');
49
-		$this->addType('redirect_uri', 'string');
50
-		$this->addType('client_identifier', 'string');
51
-		$this->addType('secret', 'string');
52
-	}
46
+    public function __construct() {
47
+        $this->addType('id', 'int');
48
+        $this->addType('name', 'string');
49
+        $this->addType('redirect_uri', 'string');
50
+        $this->addType('client_identifier', 'string');
51
+        $this->addType('secret', 'string');
52
+    }
53 53
 }
Please login to merge, or discard this patch.
lib/public/Authentication/LoginCredentials/ICredentials.php 1 patch
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -31,31 +31,31 @@
 block discarded – undo
31 31
  */
32 32
 interface ICredentials {
33 33
 
34
-	/**
35
-	 * Get the user UID
36
-	 *
37
-	 * @since 12
38
-	 *
39
-	 * @return string
40
-	 */
41
-	public function getUID();
34
+    /**
35
+     * Get the user UID
36
+     *
37
+     * @since 12
38
+     *
39
+     * @return string
40
+     */
41
+    public function getUID();
42 42
 
43
-	/**
44
-	 * Get the login name the users used to login
45
-	 *
46
-	 * @since 12
47
-	 *
48
-	 * @return string
49
-	 */
50
-	public function getLoginName();
43
+    /**
44
+     * Get the login name the users used to login
45
+     *
46
+     * @since 12
47
+     *
48
+     * @return string
49
+     */
50
+    public function getLoginName();
51 51
 
52
-	/**
53
-	 * Get the password
54
-	 *
55
-	 * @since 12
56
-	 *
57
-	 * @return string
58
-	 * @throws PasswordUnavailableException
59
-	 */
60
-	public function getPassword();
52
+    /**
53
+     * Get the password
54
+     *
55
+     * @since 12
56
+     *
57
+     * @return string
58
+     * @throws PasswordUnavailableException
59
+     */
60
+    public function getPassword();
61 61
 }
Please login to merge, or discard this patch.