Merge pull request #25912 from nextcloud/techdept/psalm/sharedstorage_some_types

Add some typing to SharedStorage
This commit is contained in:
Christoph Wurst 2021-03-04 12:31:17 +01:00 committed by GitHub
commit cdc9a1efd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 27 deletions

View File

@ -45,6 +45,7 @@ use OCP\Files\NotFoundException;
use OCP\Files\Storage\IDisableEncryptionStorage;
use OCP\Files\Storage\IStorage;
use OCP\Lock\ILockingProvider;
use OCP\Share\IShare;
/**
* Convert target path to source path and pass the function call to the correct storage provider
@ -159,7 +160,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
/**
* @inheritdoc
*/
public function instanceOfStorage($class) {
public function instanceOfStorage($class): bool {
if ($class === '\OC\Files\Storage\Common') {
return true;
}
@ -176,7 +177,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return $this->superShare->getId();
}
private function isValid() {
private function isValid(): bool {
return $this->getSourceRootInfo() && ($this->getSourceRootInfo()->getPermissions() & Constants::PERMISSION_SHARE) === Constants::PERMISSION_SHARE;
}
@ -185,7 +186,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
*
* @return string
*/
public function getId() {
public function getId(): string {
return 'shared::' . $this->getMountPoint();
}
@ -195,7 +196,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
* @param string $target Shared target file path
* @return int CRUDS permissions granted
*/
public function getPermissions($target = '') {
public function getPermissions($target = ''): int {
if (!$this->isValid()) {
return 0;
}
@ -213,11 +214,11 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return $permissions;
}
public function isCreatable($path) {
return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_CREATE);
public function isCreatable($path): bool {
return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_CREATE);
}
public function isReadable($path) {
public function isReadable($path): bool {
if (!$this->isValid()) {
return false;
}
@ -230,19 +231,19 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return $storage->isReadable($internalPath);
}
public function isUpdatable($path) {
return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_UPDATE);
public function isUpdatable($path): bool {
return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_UPDATE);
}
public function isDeletable($path) {
return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_DELETE);
public function isDeletable($path): bool {
return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_DELETE);
}
public function isSharable($path) {
public function isSharable($path): bool {
if (\OCP\Util::isSharingDisabledForUser() || !\OC\Share\Share::isResharingAllowed()) {
return false;
}
return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_SHARE);
return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_SHARE);
}
public function fopen($path, $mode) {
@ -304,7 +305,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
* @param string $path2
* @return bool
*/
public function rename($path1, $path2) {
public function rename($path1, $path2): bool {
$this->init();
$isPartFile = pathinfo($path1, PATHINFO_EXTENSION) === 'part';
$targetExists = $this->file_exists($path2);
@ -328,14 +329,14 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
*
* @return string
*/
public function getMountPoint() {
public function getMountPoint(): string {
return $this->superShare->getTarget();
}
/**
* @param string $path
*/
public function setMountPoint($path) {
public function setMountPoint($path): void {
$this->superShare->setTarget($path);
foreach ($this->groupedShares as $share) {
@ -348,14 +349,14 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
*
* @return string
*/
public function getSharedFrom() {
public function getSharedFrom(): string {
return $this->superShare->getShareOwner();
}
/**
* @return \OCP\Share\IShare
*/
public function getShare() {
public function getShare(): IShare {
return $this->superShare;
}
@ -364,7 +365,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
*
* @return string
*/
public function getItemType() {
public function getItemType(): string {
return $this->superShare->getNodeType();
}
@ -396,11 +397,11 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return new \OCA\Files_Sharing\Scanner($storage);
}
public function getOwner($path) {
public function getOwner($path): string {
return $this->superShare->getShareOwner();
}
public function getWatcher($path = '', $storage = null) {
public function getWatcher($path = '', $storage = null): NullWatcher {
// cache updating is handled by the share source
return new NullWatcher();
}
@ -410,7 +411,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
*
* @return bool
*/
public function unshareStorage() {
public function unshareStorage(): bool {
foreach ($this->groupedShares as $share) {
\OC::$server->getShareManager()->deleteFromSelf($share, $this->user);
}

View File

@ -197,11 +197,10 @@ class ScannerTest extends \Test\TestCase {
$sharedMount = new MountPoint($sharedStorage, '/share');
Filesystem::getMountManager()->addMount($sharedMount);
$sharedStorage->expects($this->any())
->method('instanceOfStorage')
->willReturnMap([
[SharedStorage::class, true],
]);
$sharedStorage->method('instanceOfStorage')
->willReturnCallback(function (string $c) {
return $c === SharedStorage::class;
});
$sharedStorage->expects($this->never())
->method('getScanner');