浏览代码

setup for current user when finding mounts in the root

Signed-off-by: Robin Appelman <robin@icewind.nl>
tags/v24.0.0beta1
Robin Appelman 2 年前
父节点
当前提交
577b1fa856
没有帐户链接到提交者的电子邮件
共有 2 个文件被更改,包括 28 次插入4 次删除
  1. 13
    2
      lib/private/Files/SetupManager.php
  2. 15
    2
      lib/private/Files/SetupManagerFactory.php

+ 13
- 2
lib/private/Files/SetupManager.php 查看文件

@@ -48,6 +48,7 @@ use OCP\Files\Mount\IMountPoint;
use OCP\Files\Storage\IStorage;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Lockdown\ILockdownManager;

class SetupManager {
@@ -60,6 +61,7 @@ class SetupManager {
private IEventDispatcher $eventDispatcher;
private IUserMountCache $userMountCache;
private ILockdownManager $lockdownManager;
private IUserSession $userSession;
private bool $listeningForProviders;

public function __construct(
@@ -69,7 +71,8 @@ class SetupManager {
IUserManager $userManager,
IEventDispatcher $eventDispatcher,
IUserMountCache $userMountCache,
ILockdownManager $lockdownManager
ILockdownManager $lockdownManager,
IUserSession $userSession
) {
$this->eventLogger = $eventLogger;
$this->mountProviderCollection = $mountProviderCollection;
@@ -78,6 +81,7 @@ class SetupManager {
$this->eventDispatcher = $eventDispatcher;
$this->userMountCache = $userMountCache;
$this->lockdownManager = $lockdownManager;
$this->userSession = $userSession;
$this->listeningForProviders = false;
}

@@ -239,7 +243,14 @@ class SetupManager {
* Set up the filesystem for the specified path
*/
public function setupForPath(string $path): void {
if (substr_count($path, '/') < 2 || strpos($path, '/appdata_' . \OC_Util::getInstanceId()) === 0 || strpos($path, '/files_external/') === 0) {
if (substr_count($path, '/') < 2) {
if ($user = $this->userSession->getUser()) {
$this->setupForUser($user);
} else {
$this->setupRoot();
}
return;
} elseif (strpos($path, '/appdata_' . \OC_Util::getInstanceId()) === 0 || strpos($path, '/files_external/') === 0) {
$this->setupRoot();
return;
} else {

+ 15
- 2
lib/private/Files/SetupManagerFactory.php 查看文件

@@ -29,6 +29,7 @@ use OCP\Files\Config\IMountProviderCollection;
use OCP\Files\Config\IUserMountCache;
use OCP\Files\Mount\IMountManager;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Lockdown\ILockdownManager;

class SetupManagerFactory {
@@ -38,6 +39,7 @@ class SetupManagerFactory {
private IEventDispatcher $eventDispatcher;
private IUserMountCache $userMountCache;
private ILockdownManager $lockdownManager;
private IUserSession $userSession;
private ?SetupManager $setupManager;

public function __construct(
@@ -46,7 +48,8 @@ class SetupManagerFactory {
IUserManager $userManager,
IEventDispatcher $eventDispatcher,
IUserMountCache $userMountCache,
ILockdownManager $lockdownManager
ILockdownManager $lockdownManager,
IUserSession $userSession
) {
$this->eventLogger = $eventLogger;
$this->mountProviderCollection = $mountProviderCollection;
@@ -54,12 +57,22 @@ class SetupManagerFactory {
$this->eventDispatcher = $eventDispatcher;
$this->userMountCache = $userMountCache;
$this->lockdownManager = $lockdownManager;
$this->userSession = $userSession;
$this->setupManager = null;
}

public function create(IMountManager $mountManager): SetupManager {
if (!$this->setupManager) {
$this->setupManager = new SetupManager($this->eventLogger, $this->mountProviderCollection, $mountManager, $this->userManager, $this->eventDispatcher, $this->userMountCache, $this->lockdownManager);
$this->setupManager = new SetupManager(
$this->eventLogger,
$this->mountProviderCollection,
$mountManager,
$this->userManager,
$this->eventDispatcher,
$this->userMountCache,
$this->lockdownManager,
$this->userSession,
);
}
return $this->setupManager;
}

正在加载...
取消
保存