Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>pull/44534/head
@@ -49,39 +49,39 @@ class AuditLogger implements IAuditLogger { | |||
$this->parentLogger = $logFactory->getCustomPsrLogger($logFile, $auditType, $auditTag); | |||
} | |||
public function emergency($message, array $context = array()): void { | |||
public function emergency($message, array $context = []): void { | |||
$this->parentLogger->emergency($message, $context); | |||
} | |||
public function alert($message, array $context = array()): void { | |||
public function alert($message, array $context = []): void { | |||
$this->parentLogger->alert($message, $context); | |||
} | |||
public function critical($message, array $context = array()): void { | |||
public function critical($message, array $context = []): void { | |||
$this->parentLogger->critical($message, $context); | |||
} | |||
public function error($message, array $context = array()): void { | |||
public function error($message, array $context = []): void { | |||
$this->parentLogger->error($message, $context); | |||
} | |||
public function warning($message, array $context = array()): void { | |||
public function warning($message, array $context = []): void { | |||
$this->parentLogger->warning($message, $context); | |||
} | |||
public function notice($message, array $context = array()): void { | |||
public function notice($message, array $context = []): void { | |||
$this->parentLogger->notice($message, $context); | |||
} | |||
public function info($message, array $context = array()): void { | |||
public function info($message, array $context = []): void { | |||
$this->parentLogger->info($message, $context); | |||
} | |||
public function debug($message, array $context = array()): void { | |||
public function debug($message, array $context = []): void { | |||
$this->parentLogger->debug($message, $context); | |||
} | |||
public function log($level, $message, array $context = array()): void { | |||
public function log($level, $message, array $context = []): void { | |||
$this->parentLogger->log($level, $message, $context); | |||
} | |||
} |
@@ -66,7 +66,7 @@ class Capabilities implements ICapability { | |||
$this->provider->setApiVersion(self::API_VERSION); | |||
$pos = strrpos($url, '/'); | |||
if (false === $pos) { | |||
if ($pos === false) { | |||
throw new OCMArgumentException('generated route should contains a slash character'); | |||
} | |||
@@ -54,7 +54,7 @@ class Provider implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null): IEvent { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null): IEvent { | |||
if ($event->getApp() !== 'comments') { | |||
throw new \InvalidArgumentException(); | |||
} |
@@ -107,7 +107,7 @@ class RecentContactMapperTest extends TestCase { | |||
$this->assertCount(0, $this->recentContactMapper->findAll('admin')); | |||
} | |||
protected function createRecentContact(string $email = null, string $federatedCloudId = null): RecentContact { | |||
protected function createRecentContact(?string $email = null, ?string $federatedCloudId = null): RecentContact { | |||
$props = [ | |||
'URI' => UUIDUtil::getUUID(), | |||
'FN' => 'Foo Bar', |
@@ -24,7 +24,7 @@ declare(strict_types=1); | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
use \OCA\DAV\Direct\ServerFactory; | |||
use OCA\DAV\Direct\ServerFactory; | |||
// no php execution timeout for webdav | |||
if (!str_contains(@ini_get('disable_functions'), 'set_time_limit')) { |
@@ -83,7 +83,7 @@ class Calendar extends Base { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null) { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getApp() !== 'dav' || $event->getType() !== 'calendar') { | |||
throw new \InvalidArgumentException(); | |||
} |
@@ -121,7 +121,7 @@ class Event extends Base { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null) { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getApp() !== 'dav' || $event->getType() !== 'calendar_event') { | |||
throw new \InvalidArgumentException(); | |||
} |
@@ -36,7 +36,7 @@ class Todo extends Event { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null) { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getApp() !== 'dav' || $event->getType() !== 'calendar_todo') { | |||
throw new \InvalidArgumentException(); | |||
} |
@@ -470,7 +470,7 @@ class BirthdayService { | |||
*/ | |||
private function formatTitle(string $field, | |||
string $name, | |||
int $year = null, | |||
?int $year = null, | |||
bool $supports4Byte = true):string { | |||
if ($supports4Byte) { | |||
switch ($field) { |
@@ -2169,7 +2169,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription | |||
->andWhere($searchOr) | |||
->andWhere($calendarObjectIdQuery->expr()->isNull('deleted_at')); | |||
if ('' !== $pattern) { | |||
if ($pattern !== '') { | |||
if (!$escapePattern) { | |||
$calendarObjectIdQuery->andWhere($calendarObjectIdQuery->expr()->ilike('cob.value', $calendarObjectIdQuery->createNamedParameter($pattern))); | |||
} else { |
@@ -392,8 +392,8 @@ class ReminderService { | |||
private function getRemindersForVAlarm(VAlarm $valarm, | |||
array $objectData, | |||
DateTimeZone $calendarTimeZone, | |||
string $eventHash = null, | |||
string $alarmHash = null, | |||
?string $eventHash = null, | |||
?string $alarmHash = null, | |||
bool $isRecurring = false, | |||
bool $isRecurrenceException = false):array { | |||
if ($eventHash === null) { |
@@ -57,7 +57,7 @@ use Sabre\VObject\ITip\SameOrganizerForAllComponentsException; | |||
use Sabre\VObject\Parameter; | |||
use Sabre\VObject\Property; | |||
use Sabre\VObject\Reader; | |||
use function \Sabre\Uri\split; | |||
use function Sabre\Uri\split; | |||
class Plugin extends \Sabre\CalDAV\Schedule\Plugin { | |||
@@ -457,7 +457,7 @@ EOF; | |||
* @param Property|null $attendee | |||
* @return bool | |||
*/ | |||
private function getAttendeeRSVP(Property $attendee = null):bool { | |||
private function getAttendeeRSVP(?Property $attendee = null):bool { | |||
if ($attendee !== null) { | |||
$rsvp = $attendee->offsetGet('RSVP'); | |||
if (($rsvp instanceof Parameter) && (strcasecmp($rsvp->getValue(), 'TRUE') === 0)) { |
@@ -154,7 +154,7 @@ class StatusService { | |||
} | |||
$sct = $calendarObject->getSchedulingTransparency(); | |||
if ($sct !== null && ScheduleCalendarTransp::TRANSPARENT == strtolower($sct->getValue())) { | |||
if ($sct !== null && strtolower($sct->getValue()) == ScheduleCalendarTransp::TRANSPARENT) { | |||
// If a calendar is marked as 'transparent', it means we must | |||
// ignore it for free-busy purposes. | |||
continue; |
@@ -71,7 +71,7 @@ class Addressbook extends Base { | |||
* @return IEvent | |||
* @throws \InvalidArgumentException | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null): IEvent { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null): IEvent { | |||
if ($event->getApp() !== 'dav' || $event->getType() !== 'contacts') { | |||
throw new \InvalidArgumentException(); | |||
} |
@@ -73,7 +73,7 @@ class Card extends Base { | |||
* @return IEvent | |||
* @throws \InvalidArgumentException | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null): IEvent { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null): IEvent { | |||
if ($event->getApp() !== 'dav' || $event->getType() !== 'contacts') { | |||
throw new \InvalidArgumentException(); | |||
} |
@@ -1151,7 +1151,7 @@ class CardDavBackend implements BackendInterface, SyncSupport { | |||
->andWhere($query2->expr()->in('cp.name', $query2->createNamedParameter($searchProperties, IQueryBuilder::PARAM_STR_ARRAY))); | |||
// No need for like when the pattern is empty | |||
if ('' !== $pattern) { | |||
if ($pattern !== '') { | |||
if (!$useWildcards) { | |||
$query2->andWhere($query2->expr()->eq('cp.value', $query2->createNamedParameter($pattern))); | |||
} elseif (!$escapePattern) { |
@@ -271,7 +271,7 @@ class SyncService { | |||
return $this->localSystemAddressBook; | |||
} | |||
public function syncInstance(\Closure $progressCallback = null) { | |||
public function syncInstance(?\Closure $progressCallback = null) { | |||
$systemAddressBook = $this->getLocalSystemAddressBook(); | |||
$this->userManager->callForAllUsers(function ($user) use ($systemAddressBook, $progressCallback) { | |||
$this->updateUser($user); |
@@ -93,7 +93,7 @@ class MoveCalendar extends Command { | |||
$calendar = $this->calDav->getCalendarByUri(self::URI_USERS . $userOrigin, $name); | |||
if (null === $calendar) { | |||
if ($calendar === null) { | |||
throw new \InvalidArgumentException("User <$userOrigin> has no calendar named <$name>. You can run occ dav:list-calendars to list calendars URIs for this user."); | |||
} | |||
@@ -133,7 +133,7 @@ class MoveCalendar extends Command { | |||
* Check if the calendar exists for user | |||
*/ | |||
protected function calendarExists(string $userDestination, string $name): bool { | |||
return null !== $this->calDav->getCalendarByUri(self::URI_USERS . $userDestination, $name); | |||
return $this->calDav->getCalendarByUri(self::URI_USERS . $userDestination, $name) !== null; | |||
} | |||
/** | |||
@@ -172,7 +172,7 @@ class MoveCalendar extends Command { | |||
* Check that user destination is member of the groups which whom the calendar was shared | |||
* If we ask to force the migration, the share with the group is dropped | |||
*/ | |||
if ($this->shareManager->shareWithGroupMembersOnly() === true && 'groups' === $prefix && !$this->groupManager->isInGroup($userDestination, $userOrGroup)) { | |||
if ($this->shareManager->shareWithGroupMembersOnly() === true && $prefix === 'groups' && !$this->groupManager->isInGroup($userDestination, $userOrGroup)) { | |||
if ($force) { | |||
$this->calDav->updateShares(new Calendar($this->calDav, $calendar, $this->l10n, $this->config, $this->logger), [], ['principal:principals/groups/' . $userOrGroup]); | |||
} else { |
@@ -130,7 +130,7 @@ class EntityCollection extends RootCollection implements IProperties { | |||
* @param \DateTime|null $datetime | |||
* @return CommentNode[] | |||
*/ | |||
public function findChildren($limit = 0, $offset = 0, \DateTime $datetime = null) { | |||
public function findChildren($limit = 0, $offset = 0, ?\DateTime $datetime = null) { | |||
$comments = $this->commentsManager->getForObject($this->name, $this->id, $limit, $offset, $datetime); | |||
$result = []; | |||
foreach ($comments as $comment) { |
@@ -46,7 +46,7 @@ class CachingTree extends Tree { | |||
$path = trim($path, '/'); | |||
foreach ($this->cache as $nodePath => $node) { | |||
$nodePath = (string) $nodePath; | |||
if ('' === $path || $nodePath == $path || str_starts_with($nodePath, $path . '/')) { | |||
if ($path === '' || $nodePath == $path || str_starts_with($nodePath, $path . '/')) { | |||
unset($this->cache[$nodePath]); | |||
} | |||
} |
@@ -72,7 +72,7 @@ class Directory extends \OCA\DAV\Connector\Sabre\Node implements \Sabre\DAV\ICol | |||
/** | |||
* Sets up the node, expects a full path name | |||
*/ | |||
public function __construct(View $view, FileInfo $info, ?CachingTree $tree = null, IShareManager $shareManager = null) { | |||
public function __construct(View $view, FileInfo $info, ?CachingTree $tree = null, ?IShareManager $shareManager = null) { | |||
parent::__construct($view, $info, $shareManager); | |||
$this->tree = $tree; | |||
} | |||
@@ -202,7 +202,7 @@ class Directory extends \OCA\DAV\Connector\Sabre\Node implements \Sabre\DAV\ICol | |||
* @throws \Sabre\DAV\Exception\NotFound | |||
* @throws \Sabre\DAV\Exception\ServiceUnavailable | |||
*/ | |||
public function getChild($name, $info = null, IRequest $request = null, IL10N $l10n = null) { | |||
public function getChild($name, $info = null, ?IRequest $request = null, ?IL10N $l10n = null) { | |||
if (!$this->info->isReadable()) { | |||
// avoid detecting files through this way | |||
throw new NotFound(); |
@@ -29,7 +29,7 @@ namespace OCA\DAV\Connector\Sabre\Exception; | |||
use Exception; | |||
class FileLocked extends \Sabre\DAV\Exception { | |||
public function __construct($message = "", $code = 0, Exception $previous = null) { | |||
public function __construct($message = "", $code = 0, ?Exception $previous = null) { | |||
if ($previous instanceof \OCP\Files\LockNotAcquiredException) { | |||
$message = sprintf('Target file %s is locked by another process.', $previous->path); | |||
} |
@@ -35,7 +35,7 @@ class Forbidden extends \Sabre\DAV\Exception\Forbidden { | |||
* @param bool $retry | |||
* @param \Exception $previous | |||
*/ | |||
public function __construct($message, $retry = false, \Exception $previous = null) { | |||
public function __construct($message, $retry = false, ?\Exception $previous = null) { | |||
parent::__construct($message, 0, $previous); | |||
$this->retry = $retry; | |||
} |
@@ -38,7 +38,7 @@ class InvalidPath extends Exception { | |||
* @param bool $retry | |||
* @param \Exception|null $previous | |||
*/ | |||
public function __construct($message, $retry = false, \Exception $previous = null) { | |||
public function __construct($message, $retry = false, ?\Exception $previous = null) { | |||
parent::__construct($message, 0, $previous); | |||
$this->retry = $retry; | |||
} |
@@ -89,7 +89,7 @@ class File extends Node implements IFile { | |||
* @param ?IRequest $request | |||
* @param ?IL10N $l10n | |||
*/ | |||
public function __construct(View $view, FileInfo $info, IManager $shareManager = null, IRequest $request = null, IL10N $l10n = null) { | |||
public function __construct(View $view, FileInfo $info, ?IManager $shareManager = null, ?IRequest $request = null, ?IL10N $l10n = null) { | |||
parent::__construct($view, $info, $shareManager); | |||
if ($l10n) { |
@@ -563,7 +563,7 @@ class FilesPlugin extends ServerPlugin { | |||
*/ | |||
private function handleUpdatePropertiesMetadata(PropPatch $propPatch, Node $node): void { | |||
$userId = $this->userSession->getUser()?->getUID(); | |||
if (null === $userId) { | |||
if ($userId === null) { | |||
return; | |||
} | |||
@@ -667,7 +667,7 @@ class FilesPlugin extends ServerPlugin { | |||
* @param \Sabre\DAV\INode $node | |||
* @throws \Sabre\DAV\Exception\BadRequest | |||
*/ | |||
public function sendFileIdHeader($filePath, \Sabre\DAV\INode $node = null) { | |||
public function sendFileIdHeader($filePath, ?\Sabre\DAV\INode $node = null) { | |||
// chunked upload handling | |||
if (isset($_SERVER['HTTP_OC_CHUNKED'])) { | |||
[$path, $name] = \Sabre\Uri\split($filePath); |
@@ -79,7 +79,7 @@ abstract class Node implements \Sabre\DAV\INode { | |||
/** | |||
* Sets up the node, expects a full path name | |||
*/ | |||
public function __construct(View $view, FileInfo $info, IManager $shareManager = null) { | |||
public function __construct(View $view, FileInfo $info, ?IManager $shareManager = null) { | |||
$this->fileView = $view; | |||
$this->path = $this->fileView->getRelativePath($info->getPath()); | |||
$this->info = $info; |
@@ -85,7 +85,7 @@ class Invite implements XmlSerializable { | |||
* | |||
* @param array $users | |||
*/ | |||
public function __construct(array $users, array $organizer = null) { | |||
public function __construct(array $users, ?array $organizer = null) { | |||
$this->users = $users; | |||
$this->organizer = $organizer; | |||
} |
@@ -163,7 +163,7 @@ class HookManager { | |||
} | |||
} | |||
public function firstLogin(IUser $user = null) { | |||
public function firstLogin(?IUser $user = null) { | |||
if (!is_null($user)) { | |||
$principal = 'principals/users/' . $user->getUID(); | |||
if ($this->calDav->getCalendarsForUserCount($principal) === 0) { |
@@ -367,7 +367,7 @@ class EmailProviderTest extends AbstractNotificationProviderTest { | |||
* @param array|null $replyTo | |||
* @return IMessage | |||
*/ | |||
private function getMessageMock(string $toMail, IEMailTemplate $templateMock, array $replyTo = null):IMessage { | |||
private function getMessageMock(string $toMail, IEMailTemplate $templateMock, ?array $replyTo = null):IMessage { | |||
$message = $this->createMock(IMessage::class); | |||
$i = 0; | |||
@@ -99,35 +99,35 @@ class CardDavBackendTest extends TestCase { | |||
public const UNIT_TEST_GROUP = 'principals/groups/carddav-unit-test-group'; | |||
private $vcardTest0 = 'BEGIN:VCARD'.PHP_EOL. | |||
'VERSION:3.0'.PHP_EOL. | |||
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. | |||
'UID:Test'.PHP_EOL. | |||
'FN:Test'.PHP_EOL. | |||
'N:Test;;;;'.PHP_EOL. | |||
'END:VCARD'; | |||
'VERSION:3.0'.PHP_EOL. | |||
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. | |||
'UID:Test'.PHP_EOL. | |||
'FN:Test'.PHP_EOL. | |||
'N:Test;;;;'.PHP_EOL. | |||
'END:VCARD'; | |||
private $vcardTest1 = 'BEGIN:VCARD'.PHP_EOL. | |||
'VERSION:3.0'.PHP_EOL. | |||
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. | |||
'UID:Test2'.PHP_EOL. | |||
'FN:Test2'.PHP_EOL. | |||
'N:Test2;;;;'.PHP_EOL. | |||
'END:VCARD'; | |||
'VERSION:3.0'.PHP_EOL. | |||
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. | |||
'UID:Test2'.PHP_EOL. | |||
'FN:Test2'.PHP_EOL. | |||
'N:Test2;;;;'.PHP_EOL. | |||
'END:VCARD'; | |||
private $vcardTest2 = 'BEGIN:VCARD'.PHP_EOL. | |||
'VERSION:3.0'.PHP_EOL. | |||
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. | |||
'UID:Test3'.PHP_EOL. | |||
'FN:Test3'.PHP_EOL. | |||
'N:Test3;;;;'.PHP_EOL. | |||
'END:VCARD'; | |||
'VERSION:3.0'.PHP_EOL. | |||
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. | |||
'UID:Test3'.PHP_EOL. | |||
'FN:Test3'.PHP_EOL. | |||
'N:Test3;;;;'.PHP_EOL. | |||
'END:VCARD'; | |||
private $vcardTestNoUID = 'BEGIN:VCARD'.PHP_EOL. | |||
'VERSION:3.0'.PHP_EOL. | |||
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. | |||
'FN:TestNoUID'.PHP_EOL. | |||
'N:TestNoUID;;;;'.PHP_EOL. | |||
'END:VCARD'; | |||
'VERSION:3.0'.PHP_EOL. | |||
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. | |||
'FN:TestNoUID'.PHP_EOL. | |||
'N:TestNoUID;;;;'.PHP_EOL. | |||
'END:VCARD'; | |||
protected function setUp(): void { | |||
parent::setUp(); |
@@ -318,7 +318,7 @@ class FileTest extends TestCase { | |||
* | |||
* @return null|string of the PUT operation which is usually the etag | |||
*/ | |||
private function doPut($path, $viewRoot = null, Request $request = null) { | |||
private function doPut($path, $viewRoot = null, ?Request $request = null) { | |||
$view = \OC\Files\Filesystem::getView(); | |||
if (!is_null($viewRoot)) { | |||
$view = new \OC\Files\View($viewRoot); | |||
@@ -1124,7 +1124,7 @@ class FileTest extends TestCase { | |||
* | |||
* @return array list of part files | |||
*/ | |||
private function listPartFiles(\OC\Files\View $userView = null, $path = '') { | |||
private function listPartFiles(?\OC\Files\View $userView = null, $path = '') { | |||
if ($userView === null) { | |||
$userView = \OC\Files\Filesystem::getView(); | |||
} | |||
@@ -1150,7 +1150,7 @@ class FileTest extends TestCase { | |||
* @param View $userView | |||
* @return array | |||
*/ | |||
private function getFileInfos($path = '', View $userView = null) { | |||
private function getFileInfos($path = '', ?View $userView = null) { | |||
if ($userView === null) { | |||
$userView = Filesystem::getView(); | |||
} |
@@ -22,7 +22,7 @@ | |||
namespace OCA\DAV\Tests\unit\DAV; | |||
use \OCA\DAV\BulkUpload\MultipartRequestParser; | |||
use OCA\DAV\BulkUpload\MultipartRequestParser; | |||
use Psr\Log\LoggerInterface; | |||
use Test\TestCase; | |||
@@ -210,9 +210,9 @@ class UserHooks implements IHook { | |||
$this->logger->error('Encryption could not update users encryption password'); | |||
} | |||
// NOTE: Session does not need to be updated as the | |||
// private key has not changed, only the passphrase | |||
// used to decrypt it has changed | |||
// NOTE: Session does not need to be updated as the | |||
// private key has not changed, only the passphrase | |||
// used to decrypt it has changed | |||
} else { // admin changed the password for a different user, create new keys and re-encrypt file keys | |||
$userId = $params['uid']; | |||
$this->initMountPoints($userId); |
@@ -71,7 +71,7 @@ class FavoriteProvider implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null) { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getApp() !== 'files' || $event->getType() !== 'favorite') { | |||
throw new \InvalidArgumentException(); | |||
} | |||
@@ -125,7 +125,7 @@ class FavoriteProvider implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) { | |||
public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getSubject() === self::SUBJECT_ADDED) { | |||
$subject = $this->l->t('You added {file} to your favorites'); | |||
if ($this->activityManager->getRequirePNG()) { |
@@ -102,7 +102,7 @@ class Provider implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null) { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getApp() !== 'files') { | |||
throw new \InvalidArgumentException(); | |||
} | |||
@@ -136,7 +136,7 @@ class Provider implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parseShortVersion(IEvent $event, IEvent $previousEvent = null) { | |||
public function parseShortVersion(IEvent $event, ?IEvent $previousEvent = null) { | |||
$parsedParameters = $this->getParameters($event); | |||
if ($event->getSubject() === 'created_by') { | |||
@@ -178,7 +178,7 @@ class Provider implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) { | |||
public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) { | |||
$this->fileIsEncrypted = false; | |||
$parsedParameters = $this->getParameters($event); | |||
@@ -368,7 +368,7 @@ class Provider implements IProvider { | |||
* @return array | |||
* @throws \InvalidArgumentException | |||
*/ | |||
protected function getFile($parameter, IEvent $event = null) { | |||
protected function getFile($parameter, ?IEvent $event = null) { | |||
if (is_array($parameter)) { | |||
$path = reset($parameter); | |||
$id = (string) key($parameter); |
@@ -107,7 +107,7 @@ class ResourceProvider implements IProvider { | |||
* @return bool | |||
* @since 16.0.0 | |||
*/ | |||
public function canAccessResource(IResource $resource, IUser $user = null): bool { | |||
public function canAccessResource(IResource $resource, ?IUser $user = null): bool { | |||
if (!$user instanceof IUser) { | |||
return false; | |||
} |
@@ -79,7 +79,7 @@ class DirectEditingController extends OCSController { | |||
* 200: URL for direct editing returned | |||
* 403: Opening file is not allowed | |||
*/ | |||
public function create(string $path, string $editorId, string $creatorId, string $templateId = null): DataResponse { | |||
public function create(string $path, string $editorId, string $creatorId, ?string $templateId = null): DataResponse { | |||
if (!$this->directEditingManager->isEnabled()) { | |||
return new DataResponse(['message' => 'Direct editing is not enabled'], Http::STATUS_INTERNAL_SERVER_ERROR); | |||
} | |||
@@ -115,7 +115,7 @@ class DirectEditingController extends OCSController { | |||
* 200: URL for direct editing returned | |||
* 403: Opening file is not allowed | |||
*/ | |||
public function open(string $path, string $editorId = null, ?int $fileId = null): DataResponse { | |||
public function open(string $path, ?string $editorId = null, ?int $fileId = null): DataResponse { | |||
if (!$this->directEditingManager->isEnabled()) { | |||
return new DataResponse(['message' => 'Direct editing is not enabled'], Http::STATUS_INTERNAL_SERVER_ERROR); | |||
} |
@@ -135,7 +135,7 @@ class ViewController extends Controller { | |||
* @param string $fileid | |||
* @return TemplateResponse|RedirectResponse | |||
*/ | |||
public function showFile(string $fileid = null): Response { | |||
public function showFile(?string $fileid = null): Response { | |||
if (!$fileid) { | |||
return new RedirectResponse($this->urlGenerator->linkToRoute('files.view.index')); | |||
} |
@@ -70,7 +70,7 @@ class GlobalAuth extends AuthMechanism { | |||
]); | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
if ($storage->getType() === StorageConfig::MOUNT_TYPE_ADMIN) { | |||
$uid = ''; | |||
} elseif (is_null($user)) { |
@@ -112,7 +112,7 @@ class LoginCredentials extends AuthMechanism { | |||
return $credentials; | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
if (!isset($user)) { | |||
throw new InsufficientDataForMeaningfulAnswerException('No login credentials saved'); | |||
} |
@@ -51,7 +51,7 @@ class SessionCredentials extends AuthMechanism { | |||
->addParameters([]); | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
try { | |||
$credentials = $this->credentialsStore->getLoginCredentials(); | |||
} catch (CredentialsUnavailableException $e) { |
@@ -69,7 +69,7 @@ class UserGlobalAuth extends AuthMechanism { | |||
$this->credentialsManager->store($user->getUID(), self::CREDENTIALS_IDENTIFIER, $credentials); | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
if ($user === null) { | |||
throw new InsufficientDataForMeaningfulAnswerException('No credentials saved'); | |||
} |
@@ -71,7 +71,7 @@ class UserProvided extends AuthMechanism implements IUserProvided { | |||
]); | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
if (!isset($user)) { | |||
throw new InsufficientDataForMeaningfulAnswerException('No credentials saved'); | |||
} |
@@ -56,7 +56,7 @@ class RSA extends AuthMechanism { | |||
; | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
$auth = new RSACrypt(); | |||
$auth->setPassword($this->config->getSystemValue('secret', '')); | |||
if (!$auth->loadKey($storage->getBackendOption('private_key'))) { |
@@ -54,7 +54,7 @@ class RSAPrivateKey extends AuthMechanism { | |||
]); | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
$auth = new RSACrypt(); | |||
$auth->setPassword($this->config->getSystemValue('secret', '')); | |||
if (!$auth->loadKey($storage->getBackendOption('private_key'))) { |
@@ -60,7 +60,7 @@ class InvalidBackend extends Backend { | |||
return $this->invalidId; | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
$storage->setBackendOption('exception', new \Exception('Unknown storage backend "' . $this->invalidId . '"', StorageNotAvailableException::STATUS_ERROR)); | |||
} | |||
} |
@@ -48,7 +48,7 @@ class Local extends Backend { | |||
; | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null): void { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null): void { | |||
$storage->setBackendOption('isExternal', true); | |||
} | |||
} |
@@ -77,7 +77,7 @@ class SMB extends Backend { | |||
->setLegacyAuthMechanism($legacyAuth); | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
$auth = $storage->getAuthMechanism(); | |||
if ($auth->getScheme() === AuthMechanism::SCHEME_PASSWORD) { | |||
if (!is_string($storage->getBackendOption('user')) || !is_string($storage->getBackendOption('password'))) { |
@@ -60,7 +60,7 @@ class SMB_OC extends Backend { | |||
; | |||
} | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
$username_as_share = ($storage->getBackendOption('username_as_share') === true); | |||
if ($username_as_share) { |
@@ -38,7 +38,7 @@ class InsufficientDataForMeaningfulAnswerException extends StorageNotAvailableEx | |||
* @param \Exception|null $previous | |||
* @since 6.0.0 | |||
*/ | |||
public function __construct($message = '', $code = self::STATUS_INDETERMINATE, \Exception $previous = null) { | |||
public function __construct($message = '', $code = self::STATUS_INDETERMINATE, ?\Exception $previous = null) { | |||
parent::__construct($message, $code, $previous); | |||
} | |||
} |
@@ -301,7 +301,7 @@ class FTP extends Common { | |||
return false; | |||
} | |||
public function writeStream(string $path, $stream, int $size = null): int { | |||
public function writeStream(string $path, $stream, ?int $size = null): int { | |||
if ($size === null) { | |||
$stream = CountWrapper::wrap($stream, function ($writtenSize) use (&$size) { | |||
$size = $writtenSize; |
@@ -500,7 +500,7 @@ class SFTP extends Common { | |||
} | |||
} | |||
public function writeStream(string $path, $stream, int $size = null): int { | |||
public function writeStream(string $path, $stream, ?int $size = null): int { | |||
if ($size === null) { | |||
$stream = CountWrapper::wrap($stream, function (int $writtenSize) use (&$size) { | |||
$size = $writtenSize; |
@@ -49,7 +49,7 @@ trait StorageModifierTrait { | |||
* @throws InsufficientDataForMeaningfulAnswerException | |||
* @throws StorageNotAvailableException | |||
*/ | |||
public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { | |||
public function manipulateStorageConfig(StorageConfig &$storage, ?IUser $user = null) { | |||
} | |||
/** |
@@ -88,7 +88,7 @@ class MountConfig { | |||
* @throws \OCP\AppFramework\QueryException | |||
* @since 16.0.0 | |||
*/ | |||
public static function substitutePlaceholdersInConfig($input, string $userId = null) { | |||
public static function substitutePlaceholdersInConfig($input, ?string $userId = null) { | |||
/** @var BackendService $backendService */ | |||
$backendService = \OC::$server->get(BackendService::class); | |||
/** @var IConfigHandler[] $handlers */ |
@@ -183,7 +183,7 @@ class UserGlobalStoragesService extends GlobalStoragesService { | |||
* @param IUser|null $user user to get the storages for, if not set the currently logged in user will be used | |||
* @return StorageConfig[] array of storage configs | |||
*/ | |||
public function getAllStoragesForUser(IUser $user = null) { | |||
public function getAllStoragesForUser(?IUser $user = null) { | |||
if (is_null($user)) { | |||
$user = $this->getUser(); | |||
} |
@@ -1,8 +1,8 @@ | |||
<?php | |||
use \OCA\Files_External\Lib\Auth\AuthMechanism; | |||
use \OCA\Files_External\Lib\Backend\Backend; | |||
use \OCA\Files_External\Lib\DefinitionParameter; | |||
use \OCA\Files_External\Service\BackendService; | |||
use OCA\Files_External\Lib\Auth\AuthMechanism; | |||
use OCA\Files_External\Lib\Backend\Backend; | |||
use OCA\Files_External\Lib\DefinitionParameter; | |||
use OCA\Files_External\Service\BackendService; | |||
/** @var array $_ */ | |||
@@ -86,7 +86,7 @@ abstract class Base implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null) { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getApp() !== 'files_sharing') { | |||
throw new \InvalidArgumentException(); | |||
} | |||
@@ -119,7 +119,7 @@ abstract class Base implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
abstract protected function parseLongVersion(IEvent $event, IEvent $previousEvent = null); | |||
abstract protected function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null); | |||
/** | |||
* @throws \InvalidArgumentException | |||
@@ -134,7 +134,7 @@ abstract class Base implements IProvider { | |||
* @return array | |||
* @throws \InvalidArgumentException | |||
*/ | |||
protected function getFile($parameter, IEvent $event = null) { | |||
protected function getFile($parameter, ?IEvent $event = null) { | |||
if (is_array($parameter)) { | |||
$path = reset($parameter); | |||
$id = (string) key($parameter); |
@@ -68,7 +68,7 @@ class Downloads extends Base { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) { | |||
public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) { | |||
$parsedParameters = $this->getParsedParameters($event); | |||
if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED || |
@@ -102,7 +102,7 @@ class Groups extends Base { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) { | |||
public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) { | |||
$parsedParameters = $this->getParsedParameters($event); | |||
if ($event->getSubject() === self::SUBJECT_SHARED_GROUP_SELF) { |
@@ -75,7 +75,7 @@ class PublicLinks extends Base { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) { | |||
public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) { | |||
$parsedParameters = $this->getParsedParameters($event); | |||
if ($event->getSubject() === self::SUBJECT_SHARED_LINK_SELF) { |
@@ -83,7 +83,7 @@ class RemoteShares extends Base { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) { | |||
public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) { | |||
$parsedParameters = $this->getParsedParameters($event); | |||
if ($event->getSubject() === self::SUBJECT_REMOTE_SHARE_RECEIVED) { |
@@ -91,7 +91,7 @@ class Users extends Base { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) { | |||
public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) { | |||
$parsedParameters = $this->getParsedParameters($event); | |||
if ($event->getSubject() === self::SUBJECT_SHARED_USER_SELF) { |
@@ -134,7 +134,7 @@ class ShareAPIController extends OCSController { | |||
IUserManager $userManager, | |||
IRootFolder $rootFolder, | |||
IURLGenerator $urlGenerator, | |||
string $userId = null, | |||
?string $userId = null, | |||
IL10N $l10n, | |||
IConfig $config, | |||
IAppManager $appManager, | |||
@@ -170,7 +170,7 @@ class ShareAPIController extends OCSController { | |||
* | |||
* @suppress PhanUndeclaredClassMethod | |||
*/ | |||
protected function formatShare(IShare $share, Node $recipientNode = null): array { | |||
protected function formatShare(IShare $share, ?Node $recipientNode = null): array { | |||
$sharedBy = $this->userManager->get($share->getSharedBy()); | |||
$shareOwner = $this->userManager->get($share->getShareOwner()); | |||
@@ -600,17 +600,17 @@ class ShareAPIController extends OCSController { | |||
* 200: Share created | |||
*/ | |||
public function createShare( | |||
string $path = null, | |||
int $permissions = null, | |||
?string $path = null, | |||
?int $permissions = null, | |||
int $shareType = -1, | |||
string $shareWith = null, | |||
?string $shareWith = null, | |||
string $publicUpload = 'false', | |||
string $password = '', | |||
string $sendPasswordByTalk = null, | |||
?string $sendPasswordByTalk = null, | |||
string $expireDate = '', | |||
string $note = '', | |||
string $label = '', | |||
string $attributes = null | |||
?string $attributes = null | |||
): DataResponse { | |||
$share = $this->shareManager->newShare(); | |||
@@ -1209,15 +1209,15 @@ class ShareAPIController extends OCSController { | |||
*/ | |||
public function updateShare( | |||
string $id, | |||
int $permissions = null, | |||
string $password = null, | |||
string $sendPasswordByTalk = null, | |||
string $publicUpload = null, | |||
string $expireDate = null, | |||
string $note = null, | |||
string $label = null, | |||
string $hideDownload = null, | |||
string $attributes = null | |||
?int $permissions = null, | |||
?string $password = null, | |||
?string $sendPasswordByTalk = null, | |||
?string $publicUpload = null, | |||
?string $expireDate = null, | |||
?string $note = null, | |||
?string $label = null, | |||
?string $hideDownload = null, | |||
?string $attributes = null | |||
): DataResponse { | |||
try { | |||
$share = $this->getShareById($id); |
@@ -131,7 +131,7 @@ class ShareesAPIController extends OCSController { | |||
* | |||
* 200: Sharees search result returned | |||
*/ | |||
public function search(string $search = '', string $itemType = null, int $page = 1, int $perPage = 200, $shareType = null, bool $lookup = false): DataResponse { | |||
public function search(string $search = '', ?string $itemType = null, int $page = 1, int $perPage = 200, $shareType = null, bool $lookup = false): DataResponse { | |||
// only search for string larger than a given threshold | |||
$threshold = $this->config->getSystemValueInt('sharing.minSearchStringLength', 0); |
@@ -95,7 +95,7 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage, | |||
$host = parse_url($remote, PHP_URL_HOST); | |||
$port = parse_url($remote, PHP_URL_PORT); | |||
$host .= (null === $port) ? '' : ':' . $port; // we add port if available | |||
$host .= ($port === null) ? '' : ':' . $port; // we add port if available | |||
// in case remote NC is on a sub folder and using deprecated ocm provider | |||
$tmpPath = rtrim(parse_url($this->cloudId->getRemote(), PHP_URL_PATH) ?? '', '/'); |
@@ -68,7 +68,7 @@ class Helper { | |||
* @param string|null $userId | |||
* @return string | |||
*/ | |||
public static function getShareFolder(View $view = null, string $userId = null): string { | |||
public static function getShareFolder(?View $view = null, ?string $userId = null): string { | |||
if ($view === null) { | |||
$view = Filesystem::getView(); | |||
} |
@@ -51,7 +51,7 @@ class File implements \OCP\Share_Backend_File_Dependent { | |||
/** @var FederatedShareProvider */ | |||
private $federatedShareProvider; | |||
public function __construct(FederatedShareProvider $federatedShareProvider = null) { | |||
public function __construct(?FederatedShareProvider $federatedShareProvider = null) { | |||
if ($federatedShareProvider) { | |||
$this->federatedShareProvider = $federatedShareProvider; | |||
} else { |
@@ -52,8 +52,8 @@ class ExpireTrash extends Command { | |||
* @param IUserManager|null $userManager | |||
* @param Expiration|null $expiration | |||
*/ | |||
public function __construct(IUserManager $userManager = null, | |||
Expiration $expiration = null) { | |||
public function __construct(?IUserManager $userManager = null, | |||
?Expiration $expiration = null) { | |||
parent::__construct(); | |||
$this->userManager = $userManager; |
@@ -40,7 +40,7 @@ class BeforeNodeRestoredEvent extends AbstractNodesEvent { | |||
/** | |||
* @return never | |||
*/ | |||
public function abortOperation(\Throwable $ex = null) { | |||
public function abortOperation(?\Throwable $ex = null) { | |||
$this->stopPropagation(); | |||
$this->run = false; | |||
if ($ex !== null) { |
@@ -61,11 +61,11 @@ class Storage extends Wrapper { | |||
*/ | |||
public function __construct( | |||
$parameters, | |||
ITrashManager $trashManager = null, | |||
IUserManager $userManager = null, | |||
LoggerInterface $logger = null, | |||
IEventDispatcher $eventDispatcher = null, | |||
IRootFolder $rootFolder = null | |||
?ITrashManager $trashManager = null, | |||
?IUserManager $userManager = null, | |||
?LoggerInterface $logger = null, | |||
?IEventDispatcher $eventDispatcher = null, | |||
?IRootFolder $rootFolder = null | |||
) { | |||
$this->mountPoint = $parameters['mountPoint']; | |||
$this->trashManager = $trashManager; |
@@ -51,7 +51,7 @@ class LegacyTrashBackend implements ITrashBackend { | |||
* @param ITrashItem $parent | |||
* @return ITrashItem[] | |||
*/ | |||
private function mapTrashItems(array $items, IUser $user, ITrashItem $parent = null): array { | |||
private function mapTrashItems(array $items, IUser $user, ?ITrashItem $parent = null): array { | |||
$parentTrashPath = ($parent instanceof ITrashItem) ? $parent->getTrashPath() : ''; | |||
$isRoot = $parent === null; | |||
return array_map(function (FileInfo $file) use ($parent, $parentTrashPath, $isRoot, $user) { |
@@ -117,7 +117,7 @@ class GroupsController extends AUserData { | |||
* | |||
* 200: Groups details returned | |||
*/ | |||
public function getGroupsDetails(string $search = '', int $limit = null, int $offset = 0): DataResponse { | |||
public function getGroupsDetails(string $search = '', ?int $limit = null, int $offset = 0): DataResponse { | |||
$groups = $this->groupManager->search($search, $limit, $offset); | |||
$groups = array_map(function ($group) { | |||
/** @var IGroup $group */ | |||
@@ -209,7 +209,7 @@ class GroupsController extends AUserData { | |||
* | |||
* 200: Group users details returned | |||
*/ | |||
public function getGroupUsersDetails(string $groupId, string $search = '', int $limit = null, int $offset = 0): DataResponse { | |||
public function getGroupUsersDetails(string $groupId, string $search = '', ?int $limit = null, int $offset = 0): DataResponse { | |||
$groupId = urldecode($groupId); | |||
$currentUser = $this->userSession->getUser(); | |||
@@ -129,7 +129,7 @@ class UsersController extends AUserData { | |||
* | |||
* 200: Users returned | |||
*/ | |||
public function getUsers(string $search = '', int $limit = null, int $offset = 0): DataResponse { | |||
public function getUsers(string $search = '', ?int $limit = null, int $offset = 0): DataResponse { | |||
$user = $this->userSession->getUser(); | |||
$users = []; | |||
@@ -170,7 +170,7 @@ class UsersController extends AUserData { | |||
* | |||
* 200: Users details returned | |||
*/ | |||
public function getUsersDetails(string $search = '', int $limit = null, int $offset = 0): DataResponse { | |||
public function getUsersDetails(string $search = '', ?int $limit = null, int $offset = 0): DataResponse { | |||
$currentUser = $this->userSession->getUser(); | |||
$users = []; | |||
@@ -64,7 +64,7 @@ class GroupProvider implements IProvider { | |||
$this->groupManager = $groupManager; | |||
} | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null) { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getType() !== 'group_settings') { | |||
throw new InvalidArgumentException(); | |||
} |
@@ -83,7 +83,7 @@ class Provider implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null): IEvent { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null): IEvent { | |||
if ($event->getApp() !== 'settings') { | |||
throw new \InvalidArgumentException('Unknown app'); | |||
} |
@@ -51,7 +51,7 @@ class SecurityProvider implements IProvider { | |||
$this->activityManager = $activityManager; | |||
} | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null) { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getType() !== 'security') { | |||
throw new InvalidArgumentException(); | |||
} |
@@ -79,7 +79,7 @@ class ChangePasswordController extends Controller { | |||
* @NoSubAdminRequired | |||
* @BruteForceProtection(action=changePersonalPassword) | |||
*/ | |||
public function changePersonalPassword(string $oldpassword = '', string $newpassword = null): JSONResponse { | |||
public function changePersonalPassword(string $oldpassword = '', ?string $newpassword = null): JSONResponse { | |||
$loginName = $this->userSession->getLoginName(); | |||
/** @var IUser $user */ | |||
$user = $this->userManager->checkPassword($loginName, $oldpassword); | |||
@@ -127,7 +127,7 @@ class ChangePasswordController extends Controller { | |||
* @NoAdminRequired | |||
* @PasswordConfirmationRequired | |||
*/ | |||
public function changeUserPassword(string $username = null, string $password = null, string $recoveryPassword = null): JSONResponse { | |||
public function changeUserPassword(?string $username = null, ?string $password = null, ?string $recoveryPassword = null): JSONResponse { | |||
if ($username === null) { | |||
return new JSONResponse([ | |||
'status' => 'error', |
@@ -391,10 +391,10 @@ class UsersController extends Controller { | |||
continue; | |||
} | |||
$property = $userAccount->getProperty($property); | |||
if (null !== $data['value']) { | |||
if ($data['value'] !== null) { | |||
$property->setValue($data['value']); | |||
} | |||
if (null !== $data['scope']) { | |||
if ($data['scope'] !== null) { | |||
$property->setScope($data['scope']); | |||
} | |||
} |
@@ -108,7 +108,7 @@ class NewUserMailHelper { | |||
ISecureRandom::CHAR_ALPHANUMERIC | |||
); | |||
$tokenValue = $this->timeFactory->getTime() . ':' . $token; | |||
$mailAddress = (null !== $user->getEMailAddress()) ? $user->getEMailAddress() : ''; | |||
$mailAddress = ($user->getEMailAddress() !== null) ? $user->getEMailAddress() : ''; | |||
$encryptedValue = $this->crypto->encrypt($tokenValue, $mailAddress . $this->config->getSystemValue('secret')); | |||
$this->config->setUserValue($user->getUID(), 'core', 'lostpassword', $encryptedValue); | |||
$link = $this->urlGenerator->linkToRouteAbsolute('core.lost.resetform', ['userId' => $user->getUID(), 'token' => $token]); |
@@ -104,7 +104,7 @@ class PhpOpcacheSetup implements ISetupCheck { | |||
if ( | |||
// Do not recommend to raise the interned strings buffer size above a quarter of the total OPcache size | |||
($this->iniGetWrapper->getNumeric('opcache.interned_strings_buffer') ?? 0 < $this->iniGetWrapper->getNumeric('opcache.memory_consumption') ?? 0 / 4) && | |||
($this->iniGetWrapper->getNumeric('opcache.interned_strings_buffer') ?? $this->iniGetWrapper->getNumeric('opcache.memory_consumption') > 0 ?? 0 / 4) && | |||
( | |||
empty($status['interned_strings_usage']['free_memory']) || | |||
($status['interned_strings_usage']['used_memory'] / $status['interned_strings_usage']['free_memory'] > 9) |
@@ -41,7 +41,7 @@ declare(strict_types=1); | |||
//Handle 2FA provider icons and theme | |||
if ($provider instanceof \OCP\Authentication\TwoFactorAuth\IProvidesIcons) { | |||
$icon = $provider->getDarkIcon(); | |||
//fallback icon if the 2factor provider doesn't provide an icon. | |||
//fallback icon if the 2factor provider doesn't provide an icon. | |||
} else { | |||
$icon = image_path('core', 'actions/password.svg'); | |||
} | |||
@@ -57,4 +57,3 @@ declare(strict_types=1); | |||
<?php } ?> | |||
</ul> | |||
</div> | |||
@@ -85,7 +85,7 @@ class Activity implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null) { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getApp() !== 'sharebymail') { | |||
throw new \InvalidArgumentException(); | |||
} |
@@ -75,7 +75,7 @@ class Provider implements IProvider { | |||
* @throws \InvalidArgumentException | |||
* @since 11.0.0 | |||
*/ | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null) { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { | |||
if ($event->getApp() !== 'systemtags') { | |||
throw new \InvalidArgumentException(); | |||
} |
@@ -199,7 +199,7 @@ class LockingController extends OCSController { | |||
throw new OCSException('', Http::STATUS_LOCKED); | |||
} | |||
public function releaseAll(int $type = null): DataResponse { | |||
public function releaseAll(?int $type = null): DataResponse { | |||
$lockingProvider = $this->getLockingProvider(); | |||
foreach ($this->config->getAppKeys('testing') as $lock) { |
@@ -204,7 +204,7 @@ class UserThemeController extends OCSController { | |||
* 200: Background set successfully | |||
* 400: Setting background is not possible | |||
*/ | |||
public function setBackground(string $type = BackgroundService::BACKGROUND_DEFAULT, string $value = '', string $color = null): JSONResponse { | |||
public function setBackground(string $type = BackgroundService::BACKGROUND_DEFAULT, string $value = '', ?string $color = null): JSONResponse { | |||
$currentVersion = (int)$this->config->getUserValue($this->userId, Application::APP_ID, 'userCacheBuster', '0'); | |||
// Set color if provided |
@@ -93,7 +93,7 @@ class ThemeInjectionService { | |||
* @param bool $plain request the :root syntax | |||
* @param string $media media query to use in the <link> element | |||
*/ | |||
private function addThemeHeaders(ITheme $theme, bool $plain = true, string $media = null): void { | |||
private function addThemeHeaders(ITheme $theme, bool $plain = true, ?string $media = null): void { | |||
$linkToCSS = $this->urlGenerator->linkToRoute('theming.Theming.getThemeStylesheet', [ | |||
'themeId' => $theme->getId(), | |||
'plain' => $plain, |
@@ -121,7 +121,7 @@ class UserThemeControllerTest extends TestCase { | |||
* @param string $themeId | |||
* @param string $exception | |||
*/ | |||
public function testEnableTheme($themeId, string $exception = null) { | |||
public function testEnableTheme($themeId, ?string $exception = null) { | |||
$this->themesService | |||
->expects($this->any()) | |||
->method('getThemes') | |||
@@ -141,7 +141,7 @@ class UserThemeControllerTest extends TestCase { | |||
* @param string $themeId | |||
* @param string $exception | |||
*/ | |||
public function testDisableTheme($themeId, string $exception = null) { | |||
public function testDisableTheme($themeId, ?string $exception = null) { | |||
$this->themesService | |||
->expects($this->any()) | |||
->method('getThemes') |
@@ -56,7 +56,7 @@ class Provider implements IProvider { | |||
$this->l10n = $l10n; | |||
} | |||
public function parse($language, IEvent $event, IEvent $previousEvent = null): IEvent { | |||
public function parse($language, IEvent $event, ?IEvent $previousEvent = null): IEvent { | |||
if ($event->getApp() !== 'twofactor_backupcodes') { | |||
throw new InvalidArgumentException(); | |||
} |
@@ -108,7 +108,7 @@ class BackupCodeStorage { | |||
$total = count($codes); | |||
$used = 0; | |||
array_walk($codes, function (BackupCode $code) use (&$used) { | |||
if (1 === (int)$code->getUsed()) { | |||
if ((int)$code->getUsed() === 1) { | |||
$used++; | |||
} | |||
}); | |||
@@ -128,7 +128,7 @@ class BackupCodeStorage { | |||
$dbCodes = $this->mapper->getBackupCodes($user); | |||
foreach ($dbCodes as $dbCode) { | |||
if (0 === (int)$dbCode->getUsed() && $this->hasher->verify($code, $dbCode->getCode())) { | |||
if ((int)$dbCode->getUsed() === 0 && $this->hasher->verify($code, $dbCode->getCode())) { | |||
$dbCode->setUsed(1); | |||
$this->mapper->update($dbCode); | |||
return true; |
@@ -492,7 +492,7 @@ class Access extends LDAPUtility { | |||
* @return false|string with with the name to use in Nextcloud | |||
* @throws \Exception | |||
*/ | |||
public function dn2ocname($fdn, $ldapName = null, $isUser = true, &$newlyMapped = null, array $record = null) { | |||
public function dn2ocname($fdn, $ldapName = null, $isUser = true, &$newlyMapped = null, ?array $record = null) { | |||
static $intermediates = []; | |||
if (isset($intermediates[($isUser ? 'user-' : 'group-') . $fdn])) { | |||
return false; // is a known intermediate | |||
@@ -865,7 +865,7 @@ class Access extends LDAPUtility { | |||
/** | |||
* @throws \Exception | |||
*/ | |||
public function fetchListOfUsers(string $filter, array $attr, int $limit = null, int $offset = null, bool $forceApplyAttributes = false): array { | |||
public function fetchListOfUsers(string $filter, array $attr, ?int $limit = null, ?int $offset = null, bool $forceApplyAttributes = false): array { | |||
$ldapRecords = $this->searchUsers($filter, $attr, $limit, $offset); | |||
$recordsToUpdate = $ldapRecords; | |||
if (!$forceApplyAttributes) { | |||
@@ -926,7 +926,7 @@ class Access extends LDAPUtility { | |||
/** | |||
* @return array[] | |||
*/ | |||
public function fetchListOfGroups(string $filter, array $attr, int $limit = null, int $offset = null): array { | |||
public function fetchListOfGroups(string $filter, array $attr, ?int $limit = null, ?int $offset = null): array { | |||
$cacheKey = 'fetchListOfGroups_' . $filter . '_' . implode('-', $attr) . '_' . (string)$limit . '_' . (string)$offset; | |||
$listOfGroups = $this->connection->getFromCache($cacheKey); | |||
if (!is_null($listOfGroups)) { | |||
@@ -971,7 +971,7 @@ class Access extends LDAPUtility { | |||
/** | |||
* @throws ServerNotAvailableException | |||
*/ | |||
public function searchUsers(string $filter, array $attr = null, int $limit = null, int $offset = null): array { | |||
public function searchUsers(string $filter, ?array $attr = null, ?int $limit = null, ?int $offset = null): array { | |||
$result = []; | |||
foreach ($this->connection->ldapBaseUsers as $base) { | |||
$result = array_merge($result, $this->search($filter, $base, $attr, $limit, $offset)); | |||
@@ -984,7 +984,7 @@ class Access extends LDAPUtility { | |||
* @return false|int | |||
* @throws ServerNotAvailableException | |||
*/ | |||
public function countUsers(string $filter, array $attr = ['dn'], int $limit = null, int $offset = null) { | |||
public function countUsers(string $filter, array $attr = ['dn'], ?int $limit = null, ?int $offset = null) { | |||
$result = false; | |||
foreach ($this->connection->ldapBaseUsers as $base) { | |||
$count = $this->count($filter, [$base], $attr, $limit ?? 0, $offset ?? 0); | |||
@@ -1001,7 +1001,7 @@ class Access extends LDAPUtility { | |||
* Executes an LDAP search | |||
* @throws ServerNotAvailableException | |||
*/ | |||
public function searchGroups(string $filter, array $attr = null, int $limit = null, int $offset = null): array { | |||
public function searchGroups(string $filter, ?array $attr = null, ?int $limit = null, ?int $offset = null): array { | |||
$result = []; | |||
foreach ($this->connection->ldapBaseGroups as $base) { | |||
$result = array_merge($result, $this->search($filter, $base, $attr, $limit, $offset)); | |||
@@ -1015,7 +1015,7 @@ class Access extends LDAPUtility { | |||
* @return int|bool | |||
* @throws ServerNotAvailableException | |||
*/ | |||
public function countGroups(string $filter, array $attr = ['dn'], int $limit = null, int $offset = null) { | |||
public function countGroups(string $filter, array $attr = ['dn'], ?int $limit = null, ?int $offset = null) { | |||
$result = false; | |||
foreach ($this->connection->ldapBaseGroups as $base) { | |||
$count = $this->count($filter, [$base], $attr, $limit ?? 0, $offset ?? 0); | |||
@@ -1030,7 +1030,7 @@ class Access extends LDAPUtility { | |||
* @return int|bool | |||
* @throws ServerNotAvailableException | |||
*/ | |||
public function countObjects(int $limit = null, int $offset = null) { | |||
public function countObjects(?int $limit = null, ?int $offset = null) { | |||
$result = false; | |||
foreach ($this->connection->ldapBase as $base) { | |||
$count = $this->count('objectclass=*', [$base], ['dn'], $limit ?? 0, $offset ?? 0); | |||
@@ -1202,7 +1202,7 @@ class Access extends LDAPUtility { | |||
private function count( | |||
string $filter, | |||
array $bases, | |||
array $attr = null, | |||
?array $attr = null, | |||
int $limit = 0, | |||
int $offset = 0, | |||
bool $skipHandling = false | |||
@@ -1730,7 +1730,7 @@ class Access extends LDAPUtility { | |||
* @return false|string | |||
* @throws ServerNotAvailableException | |||
*/ | |||
public function getUUID(string $dn, bool $isUser = true, array $ldapRecord = null) { | |||
public function getUUID(string $dn, bool $isUser = true, ?array $ldapRecord = null) { | |||
if ($isUser) { | |||
$uuidAttr = 'ldapUuidUserAttribute'; | |||
$uuidOverride = $this->connection->ldapExpertUUIDUserAttr; | |||
@@ -2014,12 +2014,12 @@ class Access extends LDAPUtility { | |||
} | |||
$this->logger->debug('Ready for a paged search', ['app' => 'user_ldap']); | |||
return [true, $pageSize, $this->lastCookie]; | |||
/* ++ Fixing RHDS searches with pages with zero results ++ | |||
* We couldn't get paged searches working with our RHDS for login ($limit = 0), | |||
* due to pages with zero results. | |||
* So we added "&& !empty($this->lastCookie)" to this test to ignore pagination | |||
* if we don't have a previous paged search. | |||
*/ | |||
/* ++ Fixing RHDS searches with pages with zero results ++ | |||
* We couldn't get paged searches working with our RHDS for login ($limit = 0), | |||
* due to pages with zero results. | |||
* So we added "&& !empty($this->lastCookie)" to this test to ignore pagination | |||
* if we don't have a previous paged search. | |||
*/ | |||
} elseif ($this->lastCookie !== '') { | |||
// a search without limit was requested. However, if we do use | |||
// Paged Search once, we always must do it. This requires us to |
@@ -177,7 +177,7 @@ class Configuration { | |||
* array | |||
* @param array &$applied optional; array where the set fields will be given to | |||
*/ | |||
public function setConfiguration(array $config, array &$applied = null): void { | |||
public function setConfiguration(array $config, ?array &$applied = null): void { | |||
$cta = $this->getConfigTranslationArray(); | |||
foreach ($config as $inputKey => $val) { | |||
if (str_contains($inputKey, '_') && array_key_exists($inputKey, $cta)) { |
@@ -307,7 +307,7 @@ class Connection extends LDAPUtility { | |||
* @param string $key | |||
* @param mixed $value | |||
*/ | |||
public function writeToCache($key, $value, int $ttlOverride = null): void { | |||
public function writeToCache($key, $value, ?int $ttlOverride = null): void { | |||
if (!$this->configured) { | |||
$this->readConfiguration(); | |||
} |
@@ -48,6 +48,6 @@ class LdapDataCollector extends AbstractDataCollector { | |||
return 'ldap'; | |||
} | |||
public function collect(Request $request, Response $response, \Throwable $exception = null): void { | |||
public function collect(Request $request, Response $response, ?\Throwable $exception = null): void { | |||
} | |||
} |
@@ -224,7 +224,7 @@ class Sync extends TimedJob { | |||
* @param array|null $cycleData the old cycle | |||
* @return array|null | |||
*/ | |||
public function determineNextCycle(array $cycleData = null) { | |||
public function determineNextCycle(?array $cycleData = null) { | |||
$prefixes = $this->ldapHelper->getServerConfigurationPrefixes(true); | |||
if (count($prefixes) === 0) { | |||
return null; |
@@ -322,7 +322,7 @@ abstract class AbstractMapping { | |||
return $this->getXbyY('directory_uuid', 'ldap_dn_hash', $this->getDNHash($dn)); | |||
} | |||
public function getList(int $offset = 0, int $limit = null, bool $invalidatedOnly = false): array { | |||
public function getList(int $offset = 0, ?int $limit = null, bool $invalidatedOnly = false): array { | |||
$select = $this->dbc->getQueryBuilder(); | |||
$select->selectAlias('ldap_dn', 'dn') | |||
->selectAlias('owncloud_name', 'name') |
@@ -244,7 +244,7 @@ class User { | |||
($profileCached === null) && // no cache or TTL not expired | |||
!$this->wasRefreshed('profile')) { | |||
// check current data | |||
$profileValues = array(); | |||
$profileValues = []; | |||
//User Profile Field - Phone number | |||
$attr = strtolower($this->connection->ldapAttributePhone); | |||
if (!empty($attr)) { // attribute configured | |||
@@ -316,7 +316,7 @@ class User { | |||
if (str_contains($ldapEntry[$attr][0], '\r')) { | |||
// convert line endings | |||
$profileValues[\OCP\Accounts\IAccountManager::PROPERTY_BIOGRAPHY] | |||
= str_replace(array("\r\n","\r"), "\n", $ldapEntry[$attr][0]); | |||
= str_replace(["\r\n","\r"], "\n", $ldapEntry[$attr][0]); | |||
} else { | |||
$profileValues[\OCP\Accounts\IAccountManager::PROPERTY_BIOGRAPHY] | |||
= $ldapEntry[$attr][0]; | |||
@@ -397,9 +397,9 @@ class User { | |||
if ($path !== '') { | |||
//if attribute's value is an absolute path take this, otherwise append it to data dir | |||
//check for / at the beginning or pattern c:\ resp. c:/ | |||
if ('/' !== $path[0] | |||
&& !(3 < strlen($path) && ctype_alpha($path[0]) | |||
&& $path[1] === ':' && ('\\' === $path[2] || '/' === $path[2])) | |||
if ($path[0] !== '/' | |||
&& !(strlen($path) > 3 && ctype_alpha($path[0]) | |||
&& $path[1] === ':' && ($path[2] === '\\' || $path[2] === '/')) | |||
) { | |||
$path = $this->config->getSystemValue('datadirectory', | |||
\OC::$SERVERROOT.'/data') . '/' . $path; | |||
@@ -785,7 +785,7 @@ class User { | |||
* @throws \OCP\PreConditionNotMetException | |||
* @throws \OC\ServerNotAvailableException | |||
*/ | |||
public function updateExtStorageHome(string $valueFromLDAP = null):string { | |||
public function updateExtStorageHome(?string $valueFromLDAP = null):string { | |||
if ($valueFromLDAP === null) { | |||
$extHomeValues = $this->access->readAttribute($this->getDN(), $this->connection->ldapExtStorageHomeAttribute); | |||
} else { |
@@ -1356,7 +1356,7 @@ class Group_LDAPTest extends TestCase { | |||
* @param string[] $expectedMembers | |||
* @dataProvider groupMemberProvider | |||
*/ | |||
public function testGroupMembers(array $expectedResult, array $groupsInfo = null) { | |||
public function testGroupMembers(array $expectedResult, ?array $groupsInfo = null) { | |||
$this->access->expects($this->any()) | |||
->method('readAttribute') | |||
->willReturnCallback(function ($group) use ($groupsInfo) { |
@@ -92,7 +92,7 @@ class IntegrationTestUserCleanUp extends AbstractIntegrationTest { | |||
} | |||
$user->delete(); | |||
return null === \OC::$server->getUserManager()->get($username); | |||
return \OC::$server->getUserManager()->get($username) === null; | |||
} | |||
} | |||