aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Files/Config/IMountProviderCollection.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/Files/Config/IMountProviderCollection.php')
-rw-r--r--lib/public/Files/Config/IMountProviderCollection.php84
1 files changed, 84 insertions, 0 deletions
diff --git a/lib/public/Files/Config/IMountProviderCollection.php b/lib/public/Files/Config/IMountProviderCollection.php
new file mode 100644
index 00000000000..db5188372c1
--- /dev/null
+++ b/lib/public/Files/Config/IMountProviderCollection.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OCP\Files\Config;
+
+use OCP\IUser;
+
+/**
+ * Manages the different mount providers
+ * @since 8.0.0
+ */
+interface IMountProviderCollection {
+ /**
+ * Get all configured mount points for the user
+ *
+ * @param \OCP\IUser $user
+ * @return \OCP\Files\Mount\IMountPoint[]
+ * @since 8.0.0
+ */
+ public function getMountsForUser(IUser $user);
+
+ /**
+ * Get the configured mount points for the user from a specific mount provider
+ *
+ * @param \OCP\IUser $user
+ * @param class-string<IMountProvider>[] $mountProviderClasses
+ * @return \OCP\Files\Mount\IMountPoint[]
+ * @since 24.0.0
+ */
+ public function getUserMountsForProviderClasses(IUser $user, array $mountProviderClasses): array;
+
+ /**
+ * Get the configured home mount for this user
+ *
+ * @param \OCP\IUser $user
+ * @return \OCP\Files\Mount\IMountPoint
+ * @since 9.1.0
+ */
+ public function getHomeMountForUser(IUser $user);
+
+ /**
+ * Add a provider for mount points
+ *
+ * @param \OCP\Files\Config\IMountProvider $provider
+ * @since 8.0.0
+ */
+ public function registerProvider(IMountProvider $provider);
+
+ /**
+ * Add a filter for mounts
+ *
+ * @param callable $filter (IMountPoint $mountPoint, IUser $user) => boolean
+ * @since 14.0.0
+ */
+ public function registerMountFilter(callable $filter);
+
+ /**
+ * Add a provider for home mount points
+ *
+ * @param \OCP\Files\Config\IHomeMountProvider $provider
+ * @since 9.1.0
+ */
+ public function registerHomeProvider(IHomeMountProvider $provider);
+
+ /**
+ * Get the mount cache which can be used to search for mounts without setting up the filesystem
+ *
+ * @return IUserMountCache
+ * @since 9.0.0
+ */
+ public function getMountCache();
+
+ /**
+ * Get all root mountpoints
+ *
+ * @return \OCP\Files\Mount\IMountPoint[]
+ * @since 20.0.0
+ */
+ public function getRootMounts(): array;
+}