*/
private function prepareStorageConfig(StorageConfig &$storage, IUser $user) {
foreach ($storage->getBackendOptions() as $option => $value) {
- $storage->setBackendOption($option, \OC_Mount_Config::substitutePlaceholdersInConfig($value));
+ $storage->setBackendOption($option, \OC_Mount_Config::substitutePlaceholdersInConfig($value, $user->getUID()));
}
$objectStore = $storage->getBackendOption('objectstore');
/** @var IRequest */
private $request;
+ private $user;
+
public function __construct(IUserSession $session, ShareManager $manager, IRequest $request) {
$this->session = $session;
$this->shareManager = $manager;
return $this->session;
}
+ public function setUser($user): void {
+ $this->user = $user;
+ }
protected function getUserId(): ?string {
+ if ($this->user !== null) {
+ return $this->user;
+ }
if($this->session && $this->session->getUser() !== null) {
return $this->session->getUser()->getUID();
}
use OCP\IUserManager;
use OCA\Files_External\Service\GlobalStoragesService;
use OCA\Files_External\Service\UserStoragesService;
+use OCA\Files_External\Config\UserContext;
/**
* Class to configure mount.json globally and for users
$mountPoint = '/'.$uid.'/files'.$storage->getMountPoint();
$mountEntry = self::prepareMountPointEntry($storage, false);
foreach ($mountEntry['options'] as &$option) {
- $option = self::substitutePlaceholdersInConfig($option);
+ $option = self::substitutePlaceholdersInConfig($option, $uid);
}
$mountPoints[$mountPoint] = $mountEntry;
}
$mountPoint = '/'.$uid.'/files'.$storage->getMountPoint();
$mountEntry = self::prepareMountPointEntry($storage, true);
foreach ($mountEntry['options'] as &$option) {
- $option = self::substitutePlaceholdersInConfig($uid, $option);
+ $option = self::substitutePlaceholdersInConfig($option, $uid);
}
$mountPoints[$mountPoint] = $mountEntry;
}
* @throws \OCP\AppFramework\QueryException
* @since 16.0.0
*/
- public static function substitutePlaceholdersInConfig($input) {
+ public static function substitutePlaceholdersInConfig($input, $user = null) {
/** @var BackendService $backendService */
$backendService = self::$app->getContainer()->query(BackendService::class);
/** @var IConfigHandler[] $handlers */
$handlers = $backendService->getConfigHandlers();
foreach ($handlers as $handler) {
+ if ($handler instanceof UserContext) {
+ $handler->setUser($user);
+ }
$input = $handler->handle($input);
}
return $input;