mirror of
https://github.com/nextcloud/server.git
synced 2026-05-25 02:34:12 -04:00
Merge pull request #30469 from nextcloud/work/cleanup-external-share-apidoc
Improve api documentation/type hinting for file sharing external storage
This commit is contained in:
commit
2ad566af63
2 changed files with 24 additions and 31 deletions
52
apps/files_sharing/lib/External/Storage.php
vendored
52
apps/files_sharing/lib/External/Storage.php
vendored
|
|
@ -37,6 +37,7 @@ use GuzzleHttp\Exception\RequestException;
|
|||
use OC\Files\Storage\DAV;
|
||||
use OC\ForbiddenException;
|
||||
use OCA\Files_Sharing\ISharedStorage;
|
||||
use OCA\Files_Sharing\External\Manager as ExternalShareManager;
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\Constants;
|
||||
use OCP\Federation\ICloudId;
|
||||
|
|
@ -45,6 +46,7 @@ use OCP\Files\Storage\IDisableEncryptionStorage;
|
|||
use OCP\Files\StorageInvalidException;
|
||||
use OCP\Files\StorageNotAvailableException;
|
||||
use OCP\Http\Client\LocalServerException;
|
||||
use OCP\Http\Client\IClientService;
|
||||
|
||||
class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage {
|
||||
/** @var ICloudId */
|
||||
|
|
@ -60,11 +62,12 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage {
|
|||
/** @var bool */
|
||||
private $updateChecked = false;
|
||||
|
||||
/**
|
||||
* @var \OCA\Files_Sharing\External\Manager
|
||||
*/
|
||||
/** @var ExternalShareManager */
|
||||
private $manager;
|
||||
|
||||
/**
|
||||
* @param array{HttpClientService: IClientService, manager: ExternalShareManager, cloudId: ICloudId, mountpoint: string, token: string, password: ?string}|array $options
|
||||
*/
|
||||
public function __construct($options) {
|
||||
$this->memcacheFactory = \OC::$server->getMemCacheFactory();
|
||||
$this->httpClient = $options['HttpClientService'];
|
||||
|
|
@ -107,28 +110,28 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage {
|
|||
return $this->watcher;
|
||||
}
|
||||
|
||||
public function getRemoteUser() {
|
||||
public function getRemoteUser(): string {
|
||||
return $this->cloudId->getUser();
|
||||
}
|
||||
|
||||
public function getRemote() {
|
||||
public function getRemote(): string {
|
||||
return $this->cloudId->getRemote();
|
||||
}
|
||||
|
||||
public function getMountPoint() {
|
||||
public function getMountPoint(): string {
|
||||
return $this->mountPoint;
|
||||
}
|
||||
|
||||
public function getToken() {
|
||||
public function getToken(): string {
|
||||
return $this->token;
|
||||
}
|
||||
|
||||
public function getPassword() {
|
||||
public function getPassword(): ?string {
|
||||
return $this->password;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief get id of the mount point
|
||||
* Get id of the mount point.
|
||||
* @return string
|
||||
*/
|
||||
public function getId() {
|
||||
|
|
@ -158,7 +161,7 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage {
|
|||
}
|
||||
|
||||
/**
|
||||
* check if a file or folder has been updated since $time
|
||||
* Check if a file or folder has been updated since $time
|
||||
*
|
||||
* @param string $path
|
||||
* @param int $time
|
||||
|
|
@ -247,11 +250,11 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage {
|
|||
}
|
||||
|
||||
/**
|
||||
* check if the configured remote is a valid federated share provider
|
||||
* Check if the configured remote is a valid federated share provider
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function testRemote() {
|
||||
protected function testRemote(): bool {
|
||||
try {
|
||||
return $this->testRemoteUrl($this->getRemote() . '/ocs-provider/index.php')
|
||||
|| $this->testRemoteUrl($this->getRemote() . '/ocs-provider/')
|
||||
|
|
@ -261,11 +264,7 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $url
|
||||
* @return bool
|
||||
*/
|
||||
private function testRemoteUrl($url) {
|
||||
private function testRemoteUrl(string $url): bool {
|
||||
$cache = $this->memcacheFactory->createDistributed('files_sharing_remote_url');
|
||||
if ($cache->hasKey($url)) {
|
||||
return (bool)$cache->get($url);
|
||||
|
|
@ -292,12 +291,12 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage {
|
|||
}
|
||||
|
||||
/**
|
||||
* Whether the remote is an ownCloud/Nextcloud, used since some sharing features are not
|
||||
* standardized. Let's use this to detect whether to use it.
|
||||
* Check whether the remote is an ownCloud/Nextcloud. This is needed since some sharing
|
||||
* features are not standardized.
|
||||
*
|
||||
* @return bool
|
||||
* @throws LocalServerException
|
||||
*/
|
||||
public function remoteIsOwnCloud() {
|
||||
public function remoteIsOwnCloud(): bool {
|
||||
if (defined('PHPUNIT_RUN') || !$this->testRemoteUrl($this->getRemote() . '/status.php')) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -385,13 +384,13 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage {
|
|||
}
|
||||
|
||||
/**
|
||||
* translate OCM Permissions to Nextcloud permissions
|
||||
* Translate OCM Permissions to Nextcloud permissions
|
||||
*
|
||||
* @param string $ocmPermissions json encoded OCM permissions
|
||||
* @param string $path path to file
|
||||
* @return int
|
||||
*/
|
||||
protected function ocmPermissions2ncPermissions($ocmPermissions, $path) {
|
||||
protected function ocmPermissions2ncPermissions(string $ocmPermissions, string $path): int {
|
||||
try {
|
||||
$ocmPermissions = json_decode($ocmPermissions);
|
||||
$ncPermissions = 0;
|
||||
|
|
@ -418,12 +417,9 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage {
|
|||
}
|
||||
|
||||
/**
|
||||
* calculate default permissions in case no permissions are provided
|
||||
*
|
||||
* @param $path
|
||||
* @return int
|
||||
* Calculate the default permissions in case no permissions are provided
|
||||
*/
|
||||
protected function getDefaultPermissions($path) {
|
||||
protected function getDefaultPermissions(string $path): int {
|
||||
if ($this->is_dir($path)) {
|
||||
$permissions = Constants::PERMISSION_ALL;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -2200,9 +2200,6 @@
|
|||
<code>registerProvider</code>
|
||||
</UndefinedInterfaceMethod>
|
||||
</file>
|
||||
<file src="apps/user_status/lib/Db/UserStatusMapper.php">
|
||||
<MoreSpecificImplementedParamType occurrences="1"/>
|
||||
</file>
|
||||
<file src="apps/workflowengine/lib/Check/AbstractStringCheck.php">
|
||||
<NullArgument occurrences="1">
|
||||
<code>null</code>
|
||||
|
|
|
|||
Loading…
Reference in a new issue