aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Files/Config
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/Files/Config')
-rw-r--r--lib/private/Files/Config/MountProviderCollection.php11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/private/Files/Config/MountProviderCollection.php b/lib/private/Files/Config/MountProviderCollection.php
index efbb54edba5..a3c20bdbfbb 100644
--- a/lib/private/Files/Config/MountProviderCollection.php
+++ b/lib/private/Files/Config/MountProviderCollection.php
@@ -104,14 +104,19 @@ class MountProviderCollection implements IMountProviderCollection, Emitter {
return $this->getMountsForFromProviders($user, $providers);
}
- public function addMountForUser(IUser $user, IMountManager $mountManager) {
+ public function addMountForUser(IUser $user, IMountManager $mountManager, callable $providerFilter = null) {
// shared mount provider gets to go last since it needs to know existing files
// to check for name collisions
$firstMounts = [];
- $firstProviders = array_filter($this->providers, function (IMountProvider $provider) {
+ if ($providerFilter) {
+ $providers = array_filter($this->providers, $providerFilter);
+ } else {
+ $providers = $this->providers;
+ }
+ $firstProviders = array_filter($providers, function (IMountProvider $provider) {
return (get_class($provider) !== 'OCA\Files_Sharing\MountProvider');
});
- $lastProviders = array_filter($this->providers, function (IMountProvider $provider) {
+ $lastProviders = array_filter($providers, function (IMountProvider $provider) {
return (get_class($provider) === 'OCA\Files_Sharing\MountProvider');
});
foreach ($firstProviders as $provider) {