Completed
Push — master ( 08b58a...0efd05 )
by Daniel
30:08 queued 21s
created
lib/private/Collaboration/Collaborators/GroupPlugin.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -63,7 +63,7 @@  discard block
 block discarded – undo
63 63
 		$result = ['wide' => [], 'exact' => []];
64 64
 
65 65
 		$groups = $this->groupManager->search($search, $limit, $offset);
66
-		$groupIds = array_map(function (IGroup $group) {
66
+		$groupIds = array_map(function(IGroup $group) {
67 67
 			return $group->getGID();
68 68
 		}, $groups);
69 69
 
@@ -75,7 +75,7 @@  discard block
 block discarded – undo
75 75
 		if (!empty($groups) && ($this->shareWithGroupOnly || $this->shareeEnumerationInGroupOnly)) {
76 76
 			// Intersect all the groups that match with the groups this user is a member of
77 77
 			$userGroups = $this->groupManager->getUserGroups($this->userSession->getUser());
78
-			$userGroups = array_map(function (IGroup $group) {
78
+			$userGroups = array_map(function(IGroup $group) {
79 79
 				return $group->getGID();
80 80
 			}, $userGroups);
81 81
 			$groupIds = array_intersect($groupIds, $userGroups);
Please login to merge, or discard this patch.
Indentation   +111 added lines, -111 removed lines patch added patch discarded remove patch
@@ -15,115 +15,115 @@
 block discarded – undo
15 15
 use OCP\Share\IShare;
16 16
 
17 17
 class GroupPlugin implements ISearchPlugin {
18
-	protected bool $shareeEnumeration;
19
-
20
-	protected bool $shareWithGroupOnly;
21
-
22
-	protected bool $shareeEnumerationInGroupOnly;
23
-
24
-	protected bool $groupSharingDisabled;
25
-
26
-	public function __construct(
27
-		private IConfig $config,
28
-		private IGroupManager $groupManager,
29
-		private IUserSession $userSession,
30
-		private mixed $shareWithGroupOnlyExcludeGroupsList = [],
31
-	) {
32
-		$this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes';
33
-		$this->shareWithGroupOnly = $this->config->getAppValue('core', 'shareapi_only_share_with_group_members', 'no') === 'yes';
34
-		$this->shareeEnumerationInGroupOnly = $this->shareeEnumeration && $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_group', 'no') === 'yes';
35
-		$this->groupSharingDisabled = $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes') === 'no';
36
-
37
-		if ($this->shareWithGroupOnly) {
38
-			$this->shareWithGroupOnlyExcludeGroupsList = json_decode($this->config->getAppValue('core', 'shareapi_only_share_with_group_members_exclude_group_list', ''), true) ?? [];
39
-		}
40
-	}
41
-
42
-	public function search($search, $limit, $offset, ISearchResult $searchResult): bool {
43
-		if ($this->groupSharingDisabled) {
44
-			return false;
45
-		}
46
-
47
-		$hasMoreResults = false;
48
-		$result = ['wide' => [], 'exact' => []];
49
-
50
-		$groups = $this->groupManager->search($search, $limit, $offset);
51
-		$groupIds = array_map(function (IGroup $group) {
52
-			return $group->getGID();
53
-		}, $groups);
54
-
55
-		if (!$this->shareeEnumeration || count($groups) < $limit) {
56
-			$hasMoreResults = true;
57
-		}
58
-
59
-		$userGroups = [];
60
-		if (!empty($groups) && ($this->shareWithGroupOnly || $this->shareeEnumerationInGroupOnly)) {
61
-			// Intersect all the groups that match with the groups this user is a member of
62
-			$userGroups = $this->groupManager->getUserGroups($this->userSession->getUser());
63
-			$userGroups = array_map(function (IGroup $group) {
64
-				return $group->getGID();
65
-			}, $userGroups);
66
-			$groupIds = array_intersect($groupIds, $userGroups);
67
-
68
-			// ShareWithGroupOnly filtering
69
-			$groupIds = array_diff($groupIds, $this->shareWithGroupOnlyExcludeGroupsList);
70
-		}
71
-
72
-		$lowerSearch = strtolower($search);
73
-		foreach ($groups as $group) {
74
-			if ($group->hideFromCollaboration()) {
75
-				continue;
76
-			}
77
-
78
-			// FIXME: use a more efficient approach
79
-			$gid = $group->getGID();
80
-			if (!in_array($gid, $groupIds)) {
81
-				continue;
82
-			}
83
-			if (strtolower($gid) === $lowerSearch || strtolower($group->getDisplayName()) === $lowerSearch) {
84
-				$result['exact'][] = [
85
-					'label' => $group->getDisplayName(),
86
-					'value' => [
87
-						'shareType' => IShare::TYPE_GROUP,
88
-						'shareWith' => $gid,
89
-					],
90
-				];
91
-			} else {
92
-				if ($this->shareeEnumerationInGroupOnly && !in_array($group->getGID(), $userGroups, true)) {
93
-					continue;
94
-				}
95
-				$result['wide'][] = [
96
-					'label' => $group->getDisplayName(),
97
-					'value' => [
98
-						'shareType' => IShare::TYPE_GROUP,
99
-						'shareWith' => $gid,
100
-					],
101
-				];
102
-			}
103
-		}
104
-
105
-		if ($offset === 0 && empty($result['exact'])) {
106
-			// On page one we try if the search result has a direct hit on the
107
-			// user id and if so, we add that to the exact match list
108
-			$group = $this->groupManager->get($search);
109
-			if ($group instanceof IGroup && !$group->hideFromCollaboration() && (!$this->shareWithGroupOnly || in_array($group->getGID(), $userGroups))) {
110
-				$result['exact'][] = [
111
-					'label' => $group->getDisplayName(),
112
-					'value' => [
113
-						'shareType' => IShare::TYPE_GROUP,
114
-						'shareWith' => $group->getGID(),
115
-					],
116
-				];
117
-			}
118
-		}
119
-
120
-		if (!$this->shareeEnumeration) {
121
-			$result['wide'] = [];
122
-		}
123
-
124
-		$type = new SearchResultType('groups');
125
-		$searchResult->addResultSet($type, $result['wide'], $result['exact']);
126
-
127
-		return $hasMoreResults;
128
-	}
18
+    protected bool $shareeEnumeration;
19
+
20
+    protected bool $shareWithGroupOnly;
21
+
22
+    protected bool $shareeEnumerationInGroupOnly;
23
+
24
+    protected bool $groupSharingDisabled;
25
+
26
+    public function __construct(
27
+        private IConfig $config,
28
+        private IGroupManager $groupManager,
29
+        private IUserSession $userSession,
30
+        private mixed $shareWithGroupOnlyExcludeGroupsList = [],
31
+    ) {
32
+        $this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes';
33
+        $this->shareWithGroupOnly = $this->config->getAppValue('core', 'shareapi_only_share_with_group_members', 'no') === 'yes';
34
+        $this->shareeEnumerationInGroupOnly = $this->shareeEnumeration && $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_group', 'no') === 'yes';
35
+        $this->groupSharingDisabled = $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes') === 'no';
36
+
37
+        if ($this->shareWithGroupOnly) {
38
+            $this->shareWithGroupOnlyExcludeGroupsList = json_decode($this->config->getAppValue('core', 'shareapi_only_share_with_group_members_exclude_group_list', ''), true) ?? [];
39
+        }
40
+    }
41
+
42
+    public function search($search, $limit, $offset, ISearchResult $searchResult): bool {
43
+        if ($this->groupSharingDisabled) {
44
+            return false;
45
+        }
46
+
47
+        $hasMoreResults = false;
48
+        $result = ['wide' => [], 'exact' => []];
49
+
50
+        $groups = $this->groupManager->search($search, $limit, $offset);
51
+        $groupIds = array_map(function (IGroup $group) {
52
+            return $group->getGID();
53
+        }, $groups);
54
+
55
+        if (!$this->shareeEnumeration || count($groups) < $limit) {
56
+            $hasMoreResults = true;
57
+        }
58
+
59
+        $userGroups = [];
60
+        if (!empty($groups) && ($this->shareWithGroupOnly || $this->shareeEnumerationInGroupOnly)) {
61
+            // Intersect all the groups that match with the groups this user is a member of
62
+            $userGroups = $this->groupManager->getUserGroups($this->userSession->getUser());
63
+            $userGroups = array_map(function (IGroup $group) {
64
+                return $group->getGID();
65
+            }, $userGroups);
66
+            $groupIds = array_intersect($groupIds, $userGroups);
67
+
68
+            // ShareWithGroupOnly filtering
69
+            $groupIds = array_diff($groupIds, $this->shareWithGroupOnlyExcludeGroupsList);
70
+        }
71
+
72
+        $lowerSearch = strtolower($search);
73
+        foreach ($groups as $group) {
74
+            if ($group->hideFromCollaboration()) {
75
+                continue;
76
+            }
77
+
78
+            // FIXME: use a more efficient approach
79
+            $gid = $group->getGID();
80
+            if (!in_array($gid, $groupIds)) {
81
+                continue;
82
+            }
83
+            if (strtolower($gid) === $lowerSearch || strtolower($group->getDisplayName()) === $lowerSearch) {
84
+                $result['exact'][] = [
85
+                    'label' => $group->getDisplayName(),
86
+                    'value' => [
87
+                        'shareType' => IShare::TYPE_GROUP,
88
+                        'shareWith' => $gid,
89
+                    ],
90
+                ];
91
+            } else {
92
+                if ($this->shareeEnumerationInGroupOnly && !in_array($group->getGID(), $userGroups, true)) {
93
+                    continue;
94
+                }
95
+                $result['wide'][] = [
96
+                    'label' => $group->getDisplayName(),
97
+                    'value' => [
98
+                        'shareType' => IShare::TYPE_GROUP,
99
+                        'shareWith' => $gid,
100
+                    ],
101
+                ];
102
+            }
103
+        }
104
+
105
+        if ($offset === 0 && empty($result['exact'])) {
106
+            // On page one we try if the search result has a direct hit on the
107
+            // user id and if so, we add that to the exact match list
108
+            $group = $this->groupManager->get($search);
109
+            if ($group instanceof IGroup && !$group->hideFromCollaboration() && (!$this->shareWithGroupOnly || in_array($group->getGID(), $userGroups))) {
110
+                $result['exact'][] = [
111
+                    'label' => $group->getDisplayName(),
112
+                    'value' => [
113
+                        'shareType' => IShare::TYPE_GROUP,
114
+                        'shareWith' => $group->getGID(),
115
+                    ],
116
+                ];
117
+            }
118
+        }
119
+
120
+        if (!$this->shareeEnumeration) {
121
+            $result['wide'] = [];
122
+        }
123
+
124
+        $type = new SearchResultType('groups');
125
+        $searchResult->addResultSet($type, $result['wide'], $result['exact']);
126
+
127
+        return $hasMoreResults;
128
+    }
129 129
 }
Please login to merge, or discard this patch.
lib/public/Log/IFileBased.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -30,13 +30,13 @@
 block discarded – undo
30 30
  * @since 14.0.0
31 31
  */
32 32
 interface IFileBased {
33
-	/**
34
-	 * @since 14.0.0
35
-	 */
36
-	public function getLogFilePath():string;
33
+    /**
34
+     * @since 14.0.0
35
+     */
36
+    public function getLogFilePath():string;
37 37
 
38
-	/**
39
-	 * @since 14.0.0
40
-	 */
41
-	public function getEntries(int $limit = 50, int $offset = 0): array;
38
+    /**
39
+     * @since 14.0.0
40
+     */
41
+    public function getEntries(int $limit = 50, int $offset = 0): array;
42 42
 }
Please login to merge, or discard this patch.
lib/public/AppFramework/ApiController.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -86,7 +86,7 @@
 block discarded – undo
86 86
 		$response = new Response();
87 87
 		$response->addHeader('Access-Control-Allow-Origin', $origin);
88 88
 		$response->addHeader('Access-Control-Allow-Methods', $this->corsMethods);
89
-		$response->addHeader('Access-Control-Max-Age', (string)$this->corsMaxAge);
89
+		$response->addHeader('Access-Control-Max-Age', (string) $this->corsMaxAge);
90 90
 		$response->addHeader('Access-Control-Allow-Headers', $this->corsAllowedHeaders);
91 91
 		$response->addHeader('Access-Control-Allow-Credentials', 'false');
92 92
 		return $response;
Please login to merge, or discard this patch.
Indentation   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -18,57 +18,57 @@
 block discarded – undo
18 18
  * @since 7.0.0
19 19
  */
20 20
 abstract class ApiController extends Controller {
21
-	private $corsMethods;
22
-	private $corsAllowedHeaders;
23
-	private $corsMaxAge;
21
+    private $corsMethods;
22
+    private $corsAllowedHeaders;
23
+    private $corsMaxAge;
24 24
 
25
-	/**
26
-	 * constructor of the controller
27
-	 * @param string $appName the name of the app
28
-	 * @param IRequest $request an instance of the request
29
-	 * @param string $corsMethods comma separated string of HTTP verbs which
30
-	 *                            should be allowed for websites or webapps when calling your API, defaults to
31
-	 *                            'PUT, POST, GET, DELETE, PATCH'
32
-	 * @param string $corsAllowedHeaders comma separated string of HTTP headers
33
-	 *                                   which should be allowed for websites or webapps when calling your API,
34
-	 *                                   defaults to 'Authorization, Content-Type, Accept'
35
-	 * @param int $corsMaxAge number in seconds how long a preflighted OPTIONS
36
-	 *                        request should be cached, defaults to 1728000 seconds
37
-	 * @since 7.0.0
38
-	 */
39
-	public function __construct($appName,
40
-		IRequest $request,
41
-		$corsMethods = 'PUT, POST, GET, DELETE, PATCH',
42
-		$corsAllowedHeaders = 'Authorization, Content-Type, Accept',
43
-		$corsMaxAge = 1728000) {
44
-		parent::__construct($appName, $request);
45
-		$this->corsMethods = $corsMethods;
46
-		$this->corsAllowedHeaders = $corsAllowedHeaders;
47
-		$this->corsMaxAge = $corsMaxAge;
48
-	}
25
+    /**
26
+     * constructor of the controller
27
+     * @param string $appName the name of the app
28
+     * @param IRequest $request an instance of the request
29
+     * @param string $corsMethods comma separated string of HTTP verbs which
30
+     *                            should be allowed for websites or webapps when calling your API, defaults to
31
+     *                            'PUT, POST, GET, DELETE, PATCH'
32
+     * @param string $corsAllowedHeaders comma separated string of HTTP headers
33
+     *                                   which should be allowed for websites or webapps when calling your API,
34
+     *                                   defaults to 'Authorization, Content-Type, Accept'
35
+     * @param int $corsMaxAge number in seconds how long a preflighted OPTIONS
36
+     *                        request should be cached, defaults to 1728000 seconds
37
+     * @since 7.0.0
38
+     */
39
+    public function __construct($appName,
40
+        IRequest $request,
41
+        $corsMethods = 'PUT, POST, GET, DELETE, PATCH',
42
+        $corsAllowedHeaders = 'Authorization, Content-Type, Accept',
43
+        $corsMaxAge = 1728000) {
44
+        parent::__construct($appName, $request);
45
+        $this->corsMethods = $corsMethods;
46
+        $this->corsAllowedHeaders = $corsAllowedHeaders;
47
+        $this->corsMaxAge = $corsMaxAge;
48
+    }
49 49
 
50 50
 
51
-	/**
52
-	 * This method implements a preflighted cors response for you that you can
53
-	 * link to for the options request
54
-	 *
55
-	 * @since 7.0.0
56
-	 */
57
-	#[NoCSRFRequired]
58
-	#[PublicPage]
59
-	#[NoAdminRequired]
60
-	public function preflightedCors() {
61
-		$origin = $this->request->getHeader('origin');
62
-		if ($origin === '') {
63
-			$origin = '*';
64
-		}
51
+    /**
52
+     * This method implements a preflighted cors response for you that you can
53
+     * link to for the options request
54
+     *
55
+     * @since 7.0.0
56
+     */
57
+    #[NoCSRFRequired]
58
+    #[PublicPage]
59
+    #[NoAdminRequired]
60
+    public function preflightedCors() {
61
+        $origin = $this->request->getHeader('origin');
62
+        if ($origin === '') {
63
+            $origin = '*';
64
+        }
65 65
 
66
-		$response = new Response();
67
-		$response->addHeader('Access-Control-Allow-Origin', $origin);
68
-		$response->addHeader('Access-Control-Allow-Methods', $this->corsMethods);
69
-		$response->addHeader('Access-Control-Max-Age', (string)$this->corsMaxAge);
70
-		$response->addHeader('Access-Control-Allow-Headers', $this->corsAllowedHeaders);
71
-		$response->addHeader('Access-Control-Allow-Credentials', 'false');
72
-		return $response;
73
-	}
66
+        $response = new Response();
67
+        $response->addHeader('Access-Control-Allow-Origin', $origin);
68
+        $response->addHeader('Access-Control-Allow-Methods', $this->corsMethods);
69
+        $response->addHeader('Access-Control-Max-Age', (string)$this->corsMaxAge);
70
+        $response->addHeader('Access-Control-Allow-Headers', $this->corsAllowedHeaders);
71
+        $response->addHeader('Access-Control-Allow-Credentials', 'false');
72
+        return $response;
73
+    }
74 74
 }
Please login to merge, or discard this patch.
lib/public/AppFramework/App.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -82,7 +82,7 @@
 block discarded – undo
82 82
 
83 83
 		if ($runIsSetupDirectly) {
84 84
 			$applicationClassName = get_class($this);
85
-			$e = new \RuntimeException('App class ' . $applicationClassName . ' is not setup via query() but directly');
85
+			$e = new \RuntimeException('App class '.$applicationClassName.' is not setup via query() but directly');
86 86
 			$setUpViaQuery = false;
87 87
 
88 88
 			$classNameParts = explode('\\', trim($applicationClassName, '\\'));
Please login to merge, or discard this patch.
Indentation   +104 added lines, -104 removed lines patch added patch discarded remove patch
@@ -23,118 +23,118 @@
 block discarded – undo
23 23
  * @since 6.0.0
24 24
  */
25 25
 class App {
26
-	/** @var IAppContainer */
27
-	private $container;
26
+    /** @var IAppContainer */
27
+    private $container;
28 28
 
29
-	/**
30
-	 * Turns an app id into a namespace by convention. The id is split at the
31
-	 * underscores, all parts are CamelCased and reassembled. e.g.:
32
-	 * some_app_id -> OCA\SomeAppId
33
-	 * @param string $appId the app id
34
-	 * @param string $topNamespace the namespace which should be prepended to
35
-	 *                             the transformed app id, defaults to OCA\
36
-	 * @return string the starting namespace for the app
37
-	 * @since 8.0.0
38
-	 */
39
-	public static function buildAppNamespace(string $appId, string $topNamespace = 'OCA\\'): string {
40
-		return \OC\AppFramework\App::buildAppNamespace($appId, $topNamespace);
41
-	}
29
+    /**
30
+     * Turns an app id into a namespace by convention. The id is split at the
31
+     * underscores, all parts are CamelCased and reassembled. e.g.:
32
+     * some_app_id -> OCA\SomeAppId
33
+     * @param string $appId the app id
34
+     * @param string $topNamespace the namespace which should be prepended to
35
+     *                             the transformed app id, defaults to OCA\
36
+     * @return string the starting namespace for the app
37
+     * @since 8.0.0
38
+     */
39
+    public static function buildAppNamespace(string $appId, string $topNamespace = 'OCA\\'): string {
40
+        return \OC\AppFramework\App::buildAppNamespace($appId, $topNamespace);
41
+    }
42 42
 
43 43
 
44
-	/**
45
-	 * @param string $appName
46
-	 * @param array $urlParams an array with variables extracted from the routes
47
-	 * @since 6.0.0
48
-	 */
49
-	public function __construct(string $appName, array $urlParams = []) {
50
-		$runIsSetupDirectly = Server::get(IConfig::class)->getSystemValueBool('debug')
51
-			&& !ini_get('zend.exception_ignore_args');
44
+    /**
45
+     * @param string $appName
46
+     * @param array $urlParams an array with variables extracted from the routes
47
+     * @since 6.0.0
48
+     */
49
+    public function __construct(string $appName, array $urlParams = []) {
50
+        $runIsSetupDirectly = Server::get(IConfig::class)->getSystemValueBool('debug')
51
+            && !ini_get('zend.exception_ignore_args');
52 52
 
53
-		if ($runIsSetupDirectly) {
54
-			$applicationClassName = get_class($this);
55
-			$e = new \RuntimeException('App class ' . $applicationClassName . ' is not setup via query() but directly');
56
-			$setUpViaQuery = false;
53
+        if ($runIsSetupDirectly) {
54
+            $applicationClassName = get_class($this);
55
+            $e = new \RuntimeException('App class ' . $applicationClassName . ' is not setup via query() but directly');
56
+            $setUpViaQuery = false;
57 57
 
58
-			$classNameParts = explode('\\', trim($applicationClassName, '\\'));
58
+            $classNameParts = explode('\\', trim($applicationClassName, '\\'));
59 59
 
60
-			foreach ($e->getTrace() as $step) {
61
-				if (isset($step['class'], $step['function'], $step['args'][0]) &&
62
-					$step['class'] === ServerContainer::class &&
63
-					$step['function'] === 'query' &&
64
-					$step['args'][0] === $applicationClassName) {
65
-					$setUpViaQuery = true;
66
-					break;
67
-				} elseif (isset($step['class'], $step['function'], $step['args'][0]) &&
68
-					$step['class'] === ServerContainer::class &&
69
-					$step['function'] === 'getAppContainer' &&
70
-					$step['args'][1] === $classNameParts[1]) {
71
-					$setUpViaQuery = true;
72
-					break;
73
-				} elseif (isset($step['class'], $step['function'], $step['args'][0]) &&
74
-					$step['class'] === SimpleContainer::class &&
75
-					preg_match('/{closure:OC\\\\AppFramework\\\\Utility\\\\SimpleContainer::buildClass\\(\\):\\d+}/', $step['function']) &&
76
-					$step['args'][0] === $this) {
77
-					/* We are setup through a lazy ghost, fine */
78
-					$setUpViaQuery = true;
79
-					break;
80
-				}
81
-			}
60
+            foreach ($e->getTrace() as $step) {
61
+                if (isset($step['class'], $step['function'], $step['args'][0]) &&
62
+                    $step['class'] === ServerContainer::class &&
63
+                    $step['function'] === 'query' &&
64
+                    $step['args'][0] === $applicationClassName) {
65
+                    $setUpViaQuery = true;
66
+                    break;
67
+                } elseif (isset($step['class'], $step['function'], $step['args'][0]) &&
68
+                    $step['class'] === ServerContainer::class &&
69
+                    $step['function'] === 'getAppContainer' &&
70
+                    $step['args'][1] === $classNameParts[1]) {
71
+                    $setUpViaQuery = true;
72
+                    break;
73
+                } elseif (isset($step['class'], $step['function'], $step['args'][0]) &&
74
+                    $step['class'] === SimpleContainer::class &&
75
+                    preg_match('/{closure:OC\\\\AppFramework\\\\Utility\\\\SimpleContainer::buildClass\\(\\):\\d+}/', $step['function']) &&
76
+                    $step['args'][0] === $this) {
77
+                    /* We are setup through a lazy ghost, fine */
78
+                    $setUpViaQuery = true;
79
+                    break;
80
+                }
81
+            }
82 82
 
83
-			if (!$setUpViaQuery && $applicationClassName !== \OCP\AppFramework\App::class) {
84
-				Server::get(LoggerInterface::class)->error($e->getMessage(), [
85
-					'app' => $appName,
86
-					'exception' => $e,
87
-				]);
88
-			}
89
-		}
83
+            if (!$setUpViaQuery && $applicationClassName !== \OCP\AppFramework\App::class) {
84
+                Server::get(LoggerInterface::class)->error($e->getMessage(), [
85
+                    'app' => $appName,
86
+                    'exception' => $e,
87
+                ]);
88
+            }
89
+        }
90 90
 
91
-		try {
92
-			$this->container = \OC::$server->getRegisteredAppContainer($appName);
93
-		} catch (QueryException $e) {
94
-			$this->container = new \OC\AppFramework\DependencyInjection\DIContainer($appName, $urlParams);
95
-		}
96
-	}
91
+        try {
92
+            $this->container = \OC::$server->getRegisteredAppContainer($appName);
93
+        } catch (QueryException $e) {
94
+            $this->container = new \OC\AppFramework\DependencyInjection\DIContainer($appName, $urlParams);
95
+        }
96
+    }
97 97
 
98
-	/**
99
-	 * @return IAppContainer
100
-	 * @since 6.0.0
101
-	 */
102
-	public function getContainer(): IAppContainer {
103
-		return $this->container;
104
-	}
98
+    /**
99
+     * @return IAppContainer
100
+     * @since 6.0.0
101
+     */
102
+    public function getContainer(): IAppContainer {
103
+        return $this->container;
104
+    }
105 105
 
106
-	/**
107
-	 * This function is called by the routing component to fire up the frameworks dispatch mechanism.
108
-	 *
109
-	 * Example code in routes.php of the task app:
110
-	 * $this->create('tasks_index', '/')->get()->action(
111
-	 *		function($params){
112
-	 *			$app = new TaskApp($params);
113
-	 *			$app->dispatch('PageController', 'index');
114
-	 *		}
115
-	 *	);
116
-	 *
117
-	 *
118
-	 * Example for for TaskApp implementation:
119
-	 * class TaskApp extends \OCP\AppFramework\App {
120
-	 *
121
-	 *		public function __construct($params){
122
-	 *			parent::__construct('tasks', $params);
123
-	 *
124
-	 *			$this->getContainer()->registerService('PageController', function(IAppContainer $c){
125
-	 *				$a = $c->query('API');
126
-	 *				$r = $c->query('Request');
127
-	 *				return new PageController($a, $r);
128
-	 *			});
129
-	 *		}
130
-	 *	}
131
-	 *
132
-	 * @param string $controllerName the name of the controller under which it is
133
-	 *                               stored in the DI container
134
-	 * @param string $methodName the method that you want to call
135
-	 * @since 6.0.0
136
-	 */
137
-	public function dispatch(string $controllerName, string $methodName) {
138
-		\OC\AppFramework\App::main($controllerName, $methodName, $this->container);
139
-	}
106
+    /**
107
+     * This function is called by the routing component to fire up the frameworks dispatch mechanism.
108
+     *
109
+     * Example code in routes.php of the task app:
110
+     * $this->create('tasks_index', '/')->get()->action(
111
+     *		function($params){
112
+     *			$app = new TaskApp($params);
113
+     *			$app->dispatch('PageController', 'index');
114
+     *		}
115
+     *	);
116
+     *
117
+     *
118
+     * Example for for TaskApp implementation:
119
+     * class TaskApp extends \OCP\AppFramework\App {
120
+     *
121
+     *		public function __construct($params){
122
+     *			parent::__construct('tasks', $params);
123
+     *
124
+     *			$this->getContainer()->registerService('PageController', function(IAppContainer $c){
125
+     *				$a = $c->query('API');
126
+     *				$r = $c->query('Request');
127
+     *				return new PageController($a, $r);
128
+     *			});
129
+     *		}
130
+     *	}
131
+     *
132
+     * @param string $controllerName the name of the controller under which it is
133
+     *                               stored in the DI container
134
+     * @param string $methodName the method that you want to call
135
+     * @since 6.0.0
136
+     */
137
+    public function dispatch(string $controllerName, string $methodName) {
138
+        \OC\AppFramework\App::main($controllerName, $methodName, $this->container);
139
+    }
140 140
 }
Please login to merge, or discard this patch.
lib/private/Authentication/Listeners/UserDeletedTokenCleanupListener.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -64,7 +64,7 @@
 block discarded – undo
64 64
 				$this->manager->invalidateTokenById($uid, $token->getId());
65 65
 			}
66 66
 		} catch (Throwable $e) {
67
-			$this->logger->error('Could not clean up auth tokens after user deletion: ' . $e->getMessage(), [
67
+			$this->logger->error('Could not clean up auth tokens after user deletion: '.$e->getMessage(), [
68 68
 				'exception' => $e,
69 69
 			]);
70 70
 		}
Please login to merge, or discard this patch.
Indentation   +34 added lines, -34 removed lines patch added patch discarded remove patch
@@ -19,38 +19,38 @@
 block discarded – undo
19 19
  * @template-implements IEventListener<\OCP\User\Events\UserDeletedEvent>
20 20
  */
21 21
 class UserDeletedTokenCleanupListener implements IEventListener {
22
-	/** @var Manager */
23
-	private $manager;
24
-
25
-	/** @var LoggerInterface */
26
-	private $logger;
27
-
28
-	public function __construct(Manager $manager,
29
-		LoggerInterface $logger) {
30
-		$this->manager = $manager;
31
-		$this->logger = $logger;
32
-	}
33
-
34
-	public function handle(Event $event): void {
35
-		if (!($event instanceof UserDeletedEvent)) {
36
-			// Unrelated
37
-			return;
38
-		}
39
-
40
-		/**
41
-		 * Catch any exception during this process as any failure here shouldn't block the
42
-		 * user deletion.
43
-		 */
44
-		try {
45
-			$uid = $event->getUser()->getUID();
46
-			$tokens = $this->manager->getTokenByUser($uid);
47
-			foreach ($tokens as $token) {
48
-				$this->manager->invalidateTokenById($uid, $token->getId());
49
-			}
50
-		} catch (Throwable $e) {
51
-			$this->logger->error('Could not clean up auth tokens after user deletion: ' . $e->getMessage(), [
52
-				'exception' => $e,
53
-			]);
54
-		}
55
-	}
22
+    /** @var Manager */
23
+    private $manager;
24
+
25
+    /** @var LoggerInterface */
26
+    private $logger;
27
+
28
+    public function __construct(Manager $manager,
29
+        LoggerInterface $logger) {
30
+        $this->manager = $manager;
31
+        $this->logger = $logger;
32
+    }
33
+
34
+    public function handle(Event $event): void {
35
+        if (!($event instanceof UserDeletedEvent)) {
36
+            // Unrelated
37
+            return;
38
+        }
39
+
40
+        /**
41
+         * Catch any exception during this process as any failure here shouldn't block the
42
+         * user deletion.
43
+         */
44
+        try {
45
+            $uid = $event->getUser()->getUID();
46
+            $tokens = $this->manager->getTokenByUser($uid);
47
+            foreach ($tokens as $token) {
48
+                $this->manager->invalidateTokenById($uid, $token->getId());
49
+            }
50
+        } catch (Throwable $e) {
51
+            $this->logger->error('Could not clean up auth tokens after user deletion: ' . $e->getMessage(), [
52
+                'exception' => $e,
53
+            ]);
54
+        }
55
+    }
56 56
 }
Please login to merge, or discard this patch.
apps/settings/templates/settings/personal/security/twofactor.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -25,12 +25,12 @@
 block discarded – undo
25 25
 ?>
26 26
 
27 27
 <div id="two-factor-auth" class="section">
28
-	<h2><?php p($l->t('Two-Factor Authentication'));?></h2>
28
+	<h2><?php p($l->t('Two-Factor Authentication')); ?></h2>
29 29
 	<a target="_blank" rel="noreferrer noopener" class="icon-info"
30
-	   title="<?php p($l->t('Open documentation'));?>"
30
+	   title="<?php p($l->t('Open documentation')); ?>"
31 31
 	   href="<?php p(link_to_docs('user-2fa')); ?>"></a>
32
-	<p class="settings-hint"><?php p($l->t('Use a second factor besides your password to increase security for your account.'));?></p>
33
-	<p class="settings-hint"><?php p($l->t('If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.'));?></p>
32
+	<p class="settings-hint"><?php p($l->t('Use a second factor besides your password to increase security for your account.')); ?></p>
33
+	<p class="settings-hint"><?php p($l->t('If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.')); ?></p>
34 34
 	<ul>
35 35
 	<?php foreach ($_['twoFactorProviderData']['providers'] as $data) { ?>
36 36
 		<li>
Please login to merge, or discard this patch.
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -19,18 +19,18 @@
 block discarded – undo
19 19
 		<li>
20 20
 			<?php
21 21
 
22
-			/** @var \OCP\Authentication\TwoFactorAuth\IProvidesPersonalSettings $provider */
23
-			$provider = $data['provider'];
24
-		//Handle 2FA provider icons and theme
25
-		if ($provider instanceof \OCP\Authentication\TwoFactorAuth\IProvidesIcons) {
26
-			$icon = $provider->getDarkIcon();
27
-			//fallback icon if the 2factor provider doesn't provide an icon.
28
-		} else {
29
-			$icon = image_path('core', 'actions/password.svg');
30
-		}
31
-		/** @var \OCP\Authentication\TwoFactorAuth\IPersonalProviderSettings $settings */
32
-		$settings = $data['settings'];
33
-		?>
22
+            /** @var \OCP\Authentication\TwoFactorAuth\IProvidesPersonalSettings $provider */
23
+            $provider = $data['provider'];
24
+        //Handle 2FA provider icons and theme
25
+        if ($provider instanceof \OCP\Authentication\TwoFactorAuth\IProvidesIcons) {
26
+            $icon = $provider->getDarkIcon();
27
+            //fallback icon if the 2factor provider doesn't provide an icon.
28
+        } else {
29
+            $icon = image_path('core', 'actions/password.svg');
30
+        }
31
+        /** @var \OCP\Authentication\TwoFactorAuth\IPersonalProviderSettings $settings */
32
+        $settings = $data['settings'];
33
+        ?>
34 34
 			<h3>
35 35
 				<img class="two-factor-provider-settings-icon" src="<?php p($icon) ?>" alt="">
36 36
 				<?php p($provider->getDisplayName()) ?>
Please login to merge, or discard this patch.
lib/private/Hooks/PublicEmitter.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -29,15 +29,15 @@
 block discarded – undo
29 29
  * @deprecated 18.0.0 use events and the \OCP\EventDispatcher\IEventDispatcher service
30 30
  */
31 31
 class PublicEmitter extends BasicEmitter {
32
-	/**
33
-	 * @param string $scope
34
-	 * @param string $method
35
-	 * @param array $arguments optional
36
-	 * @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::dispatchTyped
37
-	 *
38
-	 * @suppress PhanAccessMethodProtected
39
-	 */
40
-	public function emit($scope, $method, array $arguments = []) {
41
-		parent::emit($scope, $method, $arguments);
42
-	}
32
+    /**
33
+     * @param string $scope
34
+     * @param string $method
35
+     * @param array $arguments optional
36
+     * @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::dispatchTyped
37
+     *
38
+     * @suppress PhanAccessMethodProtected
39
+     */
40
+    public function emit($scope, $method, array $arguments = []) {
41
+        parent::emit($scope, $method, $arguments);
42
+    }
43 43
 }
Please login to merge, or discard this patch.
lib/private/Hooks/EmitterTrait.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
 	 * @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::addListener
42 42
 	 */
43 43
 	public function listen($scope, $method, callable $callback) {
44
-		$eventName = $scope . '::' . $method;
44
+		$eventName = $scope.'::'.$method;
45 45
 		if (!isset($this->listeners[$eventName])) {
46 46
 			$this->listeners[$eventName] = [];
47 47
 		}
@@ -60,7 +60,7 @@  discard block
 block discarded – undo
60 60
 		$names = [];
61 61
 		$allNames = array_keys($this->listeners);
62 62
 		if ($scope and $method) {
63
-			$name = $scope . '::' . $method;
63
+			$name = $scope.'::'.$method;
64 64
 			if (isset($this->listeners[$name])) {
65 65
 				$names[] = $name;
66 66
 			}
@@ -101,7 +101,7 @@  discard block
 block discarded – undo
101 101
 	 * @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::dispatchTyped
102 102
 	 */
103 103
 	protected function emit($scope, $method, array $arguments = []) {
104
-		$eventName = $scope . '::' . $method;
104
+		$eventName = $scope.'::'.$method;
105 105
 		if (isset($this->listeners[$eventName])) {
106 106
 			foreach ($this->listeners[$eventName] as $callback) {
107 107
 				call_user_func_array($callback, $arguments);
Please login to merge, or discard this patch.
Indentation   +75 added lines, -75 removed lines patch added patch discarded remove patch
@@ -10,83 +10,83 @@
 block discarded – undo
10 10
  * @deprecated 18.0.0 use events and the \OCP\EventDispatcher\IEventDispatcher service
11 11
  */
12 12
 trait EmitterTrait {
13
-	/**
14
-	 * @var callable[][] $listeners
15
-	 */
16
-	protected $listeners = [];
13
+    /**
14
+     * @var callable[][] $listeners
15
+     */
16
+    protected $listeners = [];
17 17
 
18
-	/**
19
-	 * @param string $scope
20
-	 * @param string $method
21
-	 * @param callable $callback
22
-	 * @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::addListener
23
-	 */
24
-	public function listen($scope, $method, callable $callback) {
25
-		$eventName = $scope . '::' . $method;
26
-		if (!isset($this->listeners[$eventName])) {
27
-			$this->listeners[$eventName] = [];
28
-		}
29
-		if (!in_array($callback, $this->listeners[$eventName], true)) {
30
-			$this->listeners[$eventName][] = $callback;
31
-		}
32
-	}
18
+    /**
19
+     * @param string $scope
20
+     * @param string $method
21
+     * @param callable $callback
22
+     * @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::addListener
23
+     */
24
+    public function listen($scope, $method, callable $callback) {
25
+        $eventName = $scope . '::' . $method;
26
+        if (!isset($this->listeners[$eventName])) {
27
+            $this->listeners[$eventName] = [];
28
+        }
29
+        if (!in_array($callback, $this->listeners[$eventName], true)) {
30
+            $this->listeners[$eventName][] = $callback;
31
+        }
32
+    }
33 33
 
34
-	/**
35
-	 * @param string $scope optional
36
-	 * @param string $method optional
37
-	 * @param callable $callback optional
38
-	 * @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::removeListener
39
-	 */
40
-	public function removeListener($scope = null, $method = null, ?callable $callback = null) {
41
-		$names = [];
42
-		$allNames = array_keys($this->listeners);
43
-		if ($scope and $method) {
44
-			$name = $scope . '::' . $method;
45
-			if (isset($this->listeners[$name])) {
46
-				$names[] = $name;
47
-			}
48
-		} elseif ($scope) {
49
-			foreach ($allNames as $name) {
50
-				$parts = explode('::', $name, 2);
51
-				if ($parts[0] == $scope) {
52
-					$names[] = $name;
53
-				}
54
-			}
55
-		} elseif ($method) {
56
-			foreach ($allNames as $name) {
57
-				$parts = explode('::', $name, 2);
58
-				if ($parts[1] == $method) {
59
-					$names[] = $name;
60
-				}
61
-			}
62
-		} else {
63
-			$names = $allNames;
64
-		}
34
+    /**
35
+     * @param string $scope optional
36
+     * @param string $method optional
37
+     * @param callable $callback optional
38
+     * @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::removeListener
39
+     */
40
+    public function removeListener($scope = null, $method = null, ?callable $callback = null) {
41
+        $names = [];
42
+        $allNames = array_keys($this->listeners);
43
+        if ($scope and $method) {
44
+            $name = $scope . '::' . $method;
45
+            if (isset($this->listeners[$name])) {
46
+                $names[] = $name;
47
+            }
48
+        } elseif ($scope) {
49
+            foreach ($allNames as $name) {
50
+                $parts = explode('::', $name, 2);
51
+                if ($parts[0] == $scope) {
52
+                    $names[] = $name;
53
+                }
54
+            }
55
+        } elseif ($method) {
56
+            foreach ($allNames as $name) {
57
+                $parts = explode('::', $name, 2);
58
+                if ($parts[1] == $method) {
59
+                    $names[] = $name;
60
+                }
61
+            }
62
+        } else {
63
+            $names = $allNames;
64
+        }
65 65
 
66
-		foreach ($names as $name) {
67
-			if ($callback) {
68
-				$index = array_search($callback, $this->listeners[$name], true);
69
-				if ($index !== false) {
70
-					unset($this->listeners[$name][$index]);
71
-				}
72
-			} else {
73
-				$this->listeners[$name] = [];
74
-			}
75
-		}
76
-	}
66
+        foreach ($names as $name) {
67
+            if ($callback) {
68
+                $index = array_search($callback, $this->listeners[$name], true);
69
+                if ($index !== false) {
70
+                    unset($this->listeners[$name][$index]);
71
+                }
72
+            } else {
73
+                $this->listeners[$name] = [];
74
+            }
75
+        }
76
+    }
77 77
 
78
-	/**
79
-	 * @param string $scope
80
-	 * @param string $method
81
-	 * @param array $arguments optional
82
-	 * @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::dispatchTyped
83
-	 */
84
-	protected function emit($scope, $method, array $arguments = []) {
85
-		$eventName = $scope . '::' . $method;
86
-		if (isset($this->listeners[$eventName])) {
87
-			foreach ($this->listeners[$eventName] as $callback) {
88
-				call_user_func_array($callback, $arguments);
89
-			}
90
-		}
91
-	}
78
+    /**
79
+     * @param string $scope
80
+     * @param string $method
81
+     * @param array $arguments optional
82
+     * @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::dispatchTyped
83
+     */
84
+    protected function emit($scope, $method, array $arguments = []) {
85
+        $eventName = $scope . '::' . $method;
86
+        if (isset($this->listeners[$eventName])) {
87
+            foreach ($this->listeners[$eventName] as $callback) {
88
+                call_user_func_array($callback, $arguments);
89
+            }
90
+        }
91
+    }
92 92
 }
Please login to merge, or discard this patch.
apps/files_sharing/lib/External/MountProvider.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -63,7 +63,7 @@
 block discarded – undo
63 63
 		$managerProvider = $this->managerProvider;
64 64
 		$manager = $managerProvider();
65 65
 		$data['manager'] = $manager;
66
-		$mountPoint = '/' . $user->getUID() . '/files/' . ltrim($data['mountpoint'], '/');
66
+		$mountPoint = '/'.$user->getUID().'/files/'.ltrim($data['mountpoint'], '/');
67 67
 		$data['mountpoint'] = $mountPoint;
68 68
 		$data['cloudId'] = $this->cloudIdManager->getCloudId($data['owner'], $data['remote']);
69 69
 		$data['certificateManager'] = \OC::$server->getCertificateManager();
Please login to merge, or discard this patch.
Indentation   +44 added lines, -44 removed lines patch added patch discarded remove patch
@@ -16,52 +16,52 @@
 block discarded – undo
16 16
 use OCP\Server;
17 17
 
18 18
 class MountProvider implements IMountProvider {
19
-	public const STORAGE = '\OCA\Files_Sharing\External\Storage';
19
+    public const STORAGE = '\OCA\Files_Sharing\External\Storage';
20 20
 
21
-	/**
22
-	 * @var callable
23
-	 */
24
-	private $managerProvider;
21
+    /**
22
+     * @var callable
23
+     */
24
+    private $managerProvider;
25 25
 
26
-	/**
27
-	 * @param IDBConnection $connection
28
-	 * @param callable $managerProvider due to setup order we need a callable that return the manager instead of the manager itself
29
-	 * @param ICloudIdManager $cloudIdManager
30
-	 */
31
-	public function __construct(
32
-		private IDBConnection $connection,
33
-		callable $managerProvider,
34
-		private ICloudIdManager $cloudIdManager,
35
-	) {
36
-		$this->managerProvider = $managerProvider;
37
-	}
26
+    /**
27
+     * @param IDBConnection $connection
28
+     * @param callable $managerProvider due to setup order we need a callable that return the manager instead of the manager itself
29
+     * @param ICloudIdManager $cloudIdManager
30
+     */
31
+    public function __construct(
32
+        private IDBConnection $connection,
33
+        callable $managerProvider,
34
+        private ICloudIdManager $cloudIdManager,
35
+    ) {
36
+        $this->managerProvider = $managerProvider;
37
+    }
38 38
 
39
-	public function getMount(IUser $user, $data, IStorageFactory $storageFactory) {
40
-		$managerProvider = $this->managerProvider;
41
-		$manager = $managerProvider();
42
-		$data['manager'] = $manager;
43
-		$mountPoint = '/' . $user->getUID() . '/files/' . ltrim($data['mountpoint'], '/');
44
-		$data['mountpoint'] = $mountPoint;
45
-		$data['cloudId'] = $this->cloudIdManager->getCloudId($data['owner'], $data['remote']);
46
-		$data['certificateManager'] = \OC::$server->getCertificateManager();
47
-		$data['HttpClientService'] = Server::get(IClientService::class);
48
-		return new Mount(self::STORAGE, $mountPoint, $data, $manager, $storageFactory);
49
-	}
39
+    public function getMount(IUser $user, $data, IStorageFactory $storageFactory) {
40
+        $managerProvider = $this->managerProvider;
41
+        $manager = $managerProvider();
42
+        $data['manager'] = $manager;
43
+        $mountPoint = '/' . $user->getUID() . '/files/' . ltrim($data['mountpoint'], '/');
44
+        $data['mountpoint'] = $mountPoint;
45
+        $data['cloudId'] = $this->cloudIdManager->getCloudId($data['owner'], $data['remote']);
46
+        $data['certificateManager'] = \OC::$server->getCertificateManager();
47
+        $data['HttpClientService'] = Server::get(IClientService::class);
48
+        return new Mount(self::STORAGE, $mountPoint, $data, $manager, $storageFactory);
49
+    }
50 50
 
51
-	public function getMountsForUser(IUser $user, IStorageFactory $loader) {
52
-		$qb = $this->connection->getQueryBuilder();
53
-		$qb->select('remote', 'share_token', 'password', 'mountpoint', 'owner')
54
-			->from('share_external')
55
-			->where($qb->expr()->eq('user', $qb->createNamedParameter($user->getUID())))
56
-			->andWhere($qb->expr()->eq('accepted', $qb->createNamedParameter(1, IQueryBuilder::PARAM_INT)));
57
-		$result = $qb->executeQuery();
58
-		$mounts = [];
59
-		while ($row = $result->fetch()) {
60
-			$row['manager'] = $this;
61
-			$row['token'] = $row['share_token'];
62
-			$mounts[] = $this->getMount($user, $row, $loader);
63
-		}
64
-		$result->closeCursor();
65
-		return $mounts;
66
-	}
51
+    public function getMountsForUser(IUser $user, IStorageFactory $loader) {
52
+        $qb = $this->connection->getQueryBuilder();
53
+        $qb->select('remote', 'share_token', 'password', 'mountpoint', 'owner')
54
+            ->from('share_external')
55
+            ->where($qb->expr()->eq('user', $qb->createNamedParameter($user->getUID())))
56
+            ->andWhere($qb->expr()->eq('accepted', $qb->createNamedParameter(1, IQueryBuilder::PARAM_INT)));
57
+        $result = $qb->executeQuery();
58
+        $mounts = [];
59
+        while ($row = $result->fetch()) {
60
+            $row['manager'] = $this;
61
+            $row['token'] = $row['share_token'];
62
+            $mounts[] = $this->getMount($user, $row, $loader);
63
+        }
64
+        $result->closeCursor();
65
+        return $mounts;
66
+    }
67 67
 }
Please login to merge, or discard this patch.