Merge pull request #34628 from nextcloud/fix/files_sharing_psalm

Various psalm fixes in files_sharing
This commit is contained in:
Carl Schwan 2022-10-18 14:44:28 +02:00 committed by GitHub
commit 0270068fed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 28 additions and 96 deletions

View file

@ -109,7 +109,7 @@ class Cache extends CacheJail {
if (isset($this->numericId)) {
return $this->numericId;
} else {
return false;
return -1;
}
}

View file

@ -116,7 +116,7 @@ class Capabilities implements ICapability {
$res['group'] = [];
$res['group']['enabled'] = $this->shareManager->allowGroupSharing();
$res['group']['expire_date']['enabled'] = true;
$res['default_permissions'] = (int)$this->config->getAppValue('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL);
$res['default_permissions'] = (int)$this->config->getAppValue('core', 'shareapi_default_permissions', (string)Constants::PERMISSION_ALL);
}
//Federated sharing

View file

@ -32,12 +32,9 @@ use OCP\Share\IManager;
class ShareRecipientSorter implements ISorter {
/** @var IManager */
private $shareManager;
/** @var Folder */
private $rootFolder;
/** @var IUserSession */
private $userSession;
private IManager $shareManager;
private IRootFolder $rootFolder;
private IUserSession $userSession;
public function __construct(IManager $shareManager, IRootFolder $rootFolder, IUserSession $userSession) {
$this->shareManager = $shareManager;
@ -45,7 +42,7 @@ class ShareRecipientSorter implements ISorter {
$this->userSession = $userSession;
}
public function getId() {
public function getId(): string {
return 'share-recipients';
}

View file

@ -478,7 +478,7 @@ class ShareAPIController extends OCSController {
$share = $this->shareManager->newShare();
if ($permissions === null) {
$permissions = $this->config->getAppValue('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL);
$permissions = (int)$this->config->getAppValue('core', 'shareapi_default_permissions', (string)Constants::PERMISSION_ALL);
}
// Verify path
@ -581,7 +581,7 @@ class ShareAPIController extends OCSController {
}
// TODO: It might make sense to have a dedicated setting to allow/deny converting link shares into federated ones
if (($permissions & Constants::PERMISSION_READ) && $this->shareManager->outgoingServer2ServerSharesAllowed()) {
if ($this->shareManager->outgoingServer2ServerSharesAllowed()) {
$permissions |= Constants::PERMISSION_SHARE;
}
@ -1271,7 +1271,7 @@ class ShareAPIController extends OCSController {
$share = $this->shareManager->updateShare($share);
} catch (GenericShareException $e) {
$code = $e->getCode() === 0 ? 403 : $e->getCode();
throw new OCSException($e->getHint(), $code);
throw new OCSException($e->getHint(), (int)$code);
} catch (\Exception $e) {
throw new OCSBadRequestException($e->getMessage(), $e);
}
@ -1353,7 +1353,7 @@ class ShareAPIController extends OCSController {
$this->shareManager->acceptShare($share, $this->currentUser);
} catch (GenericShareException $e) {
$code = $e->getCode() === 0 ? 403 : $e->getCode();
throw new OCSException($e->getHint(), $code);
throw new OCSException($e->getHint(), (int)$code);
} catch (\Exception $e) {
throw new OCSBadRequestException($e->getMessage(), $e);
}

View file

@ -429,7 +429,7 @@ class ShareController extends AuthPublicShareController {
*/
$freeSpace = $share->getNode()->getStorage()->free_space($share->getNode()->getInternalPath());
if ($freeSpace < \OCP\Files\FileInfo::SPACE_UNLIMITED) {
$freeSpace = max($freeSpace, 0);
$freeSpace = (int)max($freeSpace, 0);
} else {
$freeSpace = (INF > 0) ? INF: PHP_INT_MAX; // work around https://bugs.php.net/bug.php?id=69188
}

View file

@ -61,11 +61,11 @@ class ShareInfoController extends ApiController {
* @BruteForceProtection(action=shareinfo)
*
* @param string $t
* @param null $password
* @param null $dir
* @param ?string $password
* @param ?string $dir
* @return JSONResponse
*/
public function info($t, $password = null, $dir = null) {
public function info(string $t, ?string $password = null, ?string $dir = null) {
try {
$share = $this->shareManager->getShareByToken($t);
} catch (ShareNotFound $e) {

View file

@ -58,8 +58,8 @@ class Cache extends \OC\Files\Cache\Cache {
return $result;
}
public function getFolderContentsById($id) {
$results = parent::getFolderContentsById($id);
public function getFolderContentsById($fileId) {
$results = parent::getFolderContentsById($fileId);
foreach ($results as &$file) {
$file['displayname_owner'] = $this->cloudId->getDisplayId();
}

View file

@ -447,14 +447,11 @@ class Manager {
return $result;
}
/**
* @param int $remoteShare
*/
public function processNotification($remoteShare) {
public function processNotification(int $remoteShare): void {
$filter = $this->notificationManager->createNotification();
$filter->setApp('files_sharing')
->setUser($this->uid)
->setObject('remote_share', (int) $remoteShare);
->setObject('remote_share', (string)$remoteShare);
$this->notificationManager->markProcessed($filter);
}

View file

@ -61,11 +61,8 @@ class Mount extends MountPoint implements MoveableMount {
/**
* Remove the mount points
*
* @return mixed
* @return bool
*/
public function removeMount() {
public function removeMount(): bool {
return $this->manager->removeShare($this->mountPoint);
}

View file

@ -355,18 +355,18 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
return $this->cloudId->getDisplayId();
}
public function isSharable($path) {
public function isSharable($path): bool {
if (\OCP\Util::isSharingDisabledForUser() || !\OC\Share\Share::isResharingAllowed()) {
return false;
}
return ($this->getPermissions($path) & Constants::PERMISSION_SHARE);
return (bool)($this->getPermissions($path) & Constants::PERMISSION_SHARE);
}
public function getPermissions($path) {
public function getPermissions($path): int {
$response = $this->propfind($path);
// old federated sharing permissions
if (isset($response['{http://open-collaboration-services.org/ns}share-permissions'])) {
$permissions = $response['{http://open-collaboration-services.org/ns}share-permissions'];
$permissions = (int)$response['{http://open-collaboration-services.org/ns}share-permissions'];
} elseif (isset($response['{http://open-cloud-mesh.org/ns}share-permissions'])) {
// permissions provided by the OCM API
$permissions = $this->ocmPermissions2ncPermissions($response['{http://open-collaboration-services.org/ns}share-permissions'], $path);

View file

@ -829,7 +829,6 @@
</RedundantCondition>
<TypeDoesNotContainType occurrences="2">
<code>get_class($res) === 'OpenSSLAsymmetricKey'</code>
<code>is_object($res)</code>
</TypeDoesNotContainType>
</file>
<file src="apps/encryption/lib/Crypto/EncryptAll.php">
@ -1286,36 +1285,7 @@
<code>addServiceListener</code>
</InvalidArgument>
</file>
<file src="apps/files_sharing/lib/Cache.php">
<FalsableReturnStatement occurrences="1">
<code>false</code>
</FalsableReturnStatement>
<NullArgument occurrences="1">
<code>null</code>
</NullArgument>
</file>
<file src="apps/files_sharing/lib/Capabilities.php">
<InvalidScalarArgument occurrences="1">
<code>Constants::PERMISSION_ALL</code>
</InvalidScalarArgument>
</file>
<file src="apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php">
<UndefinedInterfaceMethod occurrences="1">
<code>getUserFolder</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/files_sharing/lib/Controller/ShareAPIController.php">
<InvalidOperand occurrences="1">
<code>$permissions</code>
</InvalidOperand>
<InvalidScalarArgument occurrences="3">
<code>$code</code>
<code>$code</code>
<code>Constants::PERMISSION_ALL</code>
</InvalidScalarArgument>
<RedundantCondition occurrences="1">
<code>$permissions &amp; Constants::PERMISSION_READ</code>
</RedundantCondition>
<UndefinedClass occurrences="2">
<code>\OCA\Circles\Api\v1\Circles</code>
<code>\OCA\Circles\Api\v1\Circles</code>
@ -1331,8 +1301,7 @@
<InvalidArgument occurrences="1">
<code>$files_list</code>
</InvalidArgument>
<InvalidScalarArgument occurrences="3">
<code>$freeSpace</code>
<InvalidScalarArgument occurrences="1">
<code>$maxUploadFilesize</code>
<code>$maxUploadFilesize</code>
</InvalidScalarArgument>
@ -1340,39 +1309,11 @@
<code>null</code>
</NullArgument>
</file>
<file src="apps/files_sharing/lib/Controller/ShareInfoController.php">
<NullArgument occurrences="1">
<code>$password</code>
</NullArgument>
</file>
<file src="apps/files_sharing/lib/External/Cache.php">
<ParamNameMismatch occurrences="1">
<code>$id</code>
</ParamNameMismatch>
</file>
<file src="apps/files_sharing/lib/External/Manager.php">
<InvalidScalarArgument occurrences="1">
<code>(int) $remoteShare</code>
</InvalidScalarArgument>
</file>
<file src="apps/files_sharing/lib/External/Mount.php">
<InvalidDocblock occurrences="1">
<code>public function removeMount() {</code>
</InvalidDocblock>
</file>
<file src="apps/files_sharing/lib/External/Scanner.php">
<MoreSpecificImplementedParamType occurrences="1">
<code>$cacheData</code>
</MoreSpecificImplementedParamType>
</file>
<file src="apps/files_sharing/lib/External/Storage.php">
<InvalidReturnStatement occurrences="1">
<code>$this-&gt;getPermissions($path) &amp; Constants::PERMISSION_SHARE</code>
</InvalidReturnStatement>
<InvalidReturnType occurrences="1">
<code>isSharable</code>
</InvalidReturnType>
</file>
<file src="apps/files_sharing/lib/Listener/LegacyBeforeTemplateRenderedListener.php">
<InvalidArgument occurrences="1">
<code>$legacyEvent</code>

View file

@ -46,7 +46,7 @@ class CacheJail extends CacheWrapper {
protected $unjailedRoot;
/**
* @param \OCP\Files\Cache\ICache $cache
* @param ?\OCP\Files\Cache\ICache $cache
* @param string $root
*/
public function __construct($cache, $root) {

View file

@ -1562,7 +1562,7 @@ class Manager implements IManager {
* Verify the password of a public share
*
* @param IShare $share
* @param string $password
* @param ?string $password
* @return bool
*/
public function checkPassword(IShare $share, $password) {

View file

@ -92,7 +92,7 @@ class Base {
/**
* Assign variables
* @param string $key key
* @param array|bool|integer|string|Throwable $value value
* @param float|array|bool|integer|string|Throwable $value value
* @return bool
*
* This function assigns a variable. It can be accessed via $_[$key] in

View file

@ -211,7 +211,7 @@ interface IManager {
* Verify the password of a public share
*
* @param IShare $share
* @param string $password
* @param ?string $password
* @return bool
* @since 9.0.0
*/