mirror of
https://github.com/nextcloud/server.git
synced 2025-01-30 22:37:01 +00:00
801733e523
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
49 lines
1.5 KiB
PHP
49 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
|
|
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
namespace OCA\Files_External\Lib;
|
|
|
|
use OCP\Files\Storage\IStorage;
|
|
use OCP\Files\StorageNotAvailableException;
|
|
use OCP\IUser;
|
|
|
|
/**
|
|
* Trait for objects that can modify StorageConfigs and wrap Storages
|
|
*
|
|
* When a storage implementation is being prepared for use, the StorageConfig
|
|
* is passed through manipulateStorageConfig() to update any parameters as
|
|
* necessary. After the storage implementation has been constructed, it is
|
|
* passed through wrapStorage(), potentially replacing the implementation with
|
|
* a wrapped storage that changes its behaviour.
|
|
*
|
|
* Certain configuration options need to be set before the implementation is
|
|
* constructed, while others are retrieved directly from the storage
|
|
* implementation and so need a wrapper to be modified.
|
|
*/
|
|
trait StorageModifierTrait {
|
|
|
|
/**
|
|
* Modify a StorageConfig parameters
|
|
*
|
|
* @param StorageConfig &$storage
|
|
* @param ?IUser $user User the storage is being used as
|
|
* @return void
|
|
* @throws InsufficientDataForMeaningfulAnswerException
|
|
* @throws StorageNotAvailableException
|
|
*/
|
|
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) {
|
|
}
|
|
|
|
/**
|
|
* Wrap a storage if necessary
|
|
*
|
|
* @throws InsufficientDataForMeaningfulAnswerException
|
|
* @throws StorageNotAvailableException
|
|
*/
|
|
public function wrapStorage(IStorage $storage): IStorage {
|
|
return $storage;
|
|
}
|
|
}
|