// Add plugins
$server->addPlugin(new MaintenancePlugin(\OC::$server->getConfig(), \OC::$server->getL10N('dav')));
-$server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend, 'ownCloud'));
+$server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend));
$server->addPlugin(new \Sabre\CalDAV\Plugin());
$server->addPlugin(new LegacyDAVACL());
use OCP\App\IAppManager;
use Psr\Log\LoggerInterface;
use Sabre\CardDAV\Plugin;
-use Psr\Log\LoggerInterface;
$authBackend = new Auth(
\OC::$server->getSession(),
$this->timeFactory = $timeFactory;
}
- /**
- * @param $arguments
- */
- public function run($arguments) {
- $offset = (int) $arguments['offset'];
- $stopAt = (int) $arguments['stopAt'];
+ public function run($argument) {
+ $offset = (int) $argument['offset'];
+ $stopAt = (int) $argument['stopAt'];
$this->logger->info('Building calendar reminder index (' . $offset .'/' . $stopAt . ')');
}
/**
- * @param $arg
* @throws \OCA\DAV\CalDAV\Reminder\NotificationProvider\ProviderNotAvailableException
* @throws \OCA\DAV\CalDAV\Reminder\NotificationTypeDoesNotExistException
* @throws \OC\User\NoUserException
*/
- public function run($arg):void {
+ public function run($argument):void {
if ($this->config->getAppValue('dav', 'sendEventReminders', 'yes') !== 'yes') {
return;
}
$this->config = $config;
}
- /**
- * @param array $arguments
- */
- public function run($arguments) {
- $userId = $arguments['userId'];
- $purgeBeforeGenerating = $arguments['purgeBeforeGenerating'] ?? false;
+ public function run($argument) {
+ $userId = $argument['userId'];
+ $purgeBeforeGenerating = $argument['purgeBeforeGenerating'] ?? false;
// make sure admin didn't change his mind
$isGloballyEnabled = $this->config->getAppValue('dav', 'generateBirthdayCalendar', 'yes');
use OCP\BackgroundJob\IJob;
use OCP\BackgroundJob\IJobList;
use OCP\BackgroundJob\TimedJob;
+use OCP\Files\Node;
use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
class UploadCleanup extends TimedJob {
-
- /** @var IRootFolder */
- private $rootFolder;
-
- /** @var IJobList */
- private $jobList;
+ private IRootFolder $rootFolder;
+ private IJobList $jobList;
public function __construct(ITimeFactory $time, IRootFolder $rootFolder, IJobList $jobList) {
parent::__construct($time);
return;
}
+ /** @var File[] $files */
$files = $uploadFolder->getDirectoryListing();
// Remove if all files have an mtime of more than a day
*/
class BirthdayService {
public const BIRTHDAY_CALENDAR_URI = 'contact_birthdays';
-
- /** @var GroupPrincipalBackend */
- private $principalBackend;
-
- /** @var CalDavBackend */
- private $calDavBackEnd;
-
- /** @var CardDavBackend */
- private $cardDavBackEnd;
-
- /** @var IConfig */
- private $config;
-
- /** @var IDBConnection */
- private $dbConnection;
-
- /** @var IL10N */
- private $l10n;
+ private GroupPrincipalBackend $principalBackend;
+ private CalDavBackend $calDavBackEnd;
+ private CardDavBackend $cardDavBackEnd;
+ private IConfig $config;
+ private IDBConnection $dbConnection;
+ private IL10N $l10n;
/**
* BirthdayService constructor.
- *
- * @param CalDavBackend $calDavBackEnd
- * @param CardDavBackend $cardDavBackEnd
- * @param GroupPrincipalBackend $principalBackend
- * @param IConfig $config
- * @param IDBConnection $dbConnection
- * @param IL10N $l10n
*/
public function __construct(CalDavBackend $calDavBackEnd,
CardDavBackend $cardDavBackEnd,
$this->l10n = $l10n;
}
- /**
- * @param int $addressBookId
- * @param string $cardUri
- * @param string $cardData
- */
public function onCardChanged(int $addressBookId,
string $cardUri,
- string $cardData) {
+ string $cardData): void {
if (!$this->isGloballyEnabled()) {
return;
}
}
}
- /**
- * @param int $addressBookId
- * @param string $cardUri
- */
public function onCardDeleted(int $addressBookId,
- string $cardUri) {
+ string $cardUri): void {
if (!$this->isGloballyEnabled()) {
return;
}
}
/**
- * @param string $principal
- * @return array|null
* @throws \Sabre\DAV\Exception\BadRequest
*/
- public function ensureCalendarExists(string $principal):?array {
+ public function ensureCalendarExists(string $principal): ?array {
$calendar = $this->calDavBackEnd->getCalendarByUri($principal, self::BIRTHDAY_CALENDAR_URI);
if (!is_null($calendar)) {
return $calendar;
use Sabre\CalDAV\Backend\BackendInterface;
use Sabre\DAV\Exception\MethodNotAllowed;
use Sabre\DAV\Exception\NotFound;
+use Sabre\DAV\INode;
use Sabre\DAV\PropPatch;
/**
/**
* @return array
*/
- public function getACL():array {
+ public function getACL() {
return [
[
'privilege' => '{DAV:}read',
/**
* @return array
*/
- public function getChildACL():array {
+ public function getChildACL() {
return [
[
'privilege' => '{DAV:}read',
}
/**
- * @return array
+ * @return INode[]
*/
- public function getChildren():array {
+ public function getChildren(): array {
$objs = $this->caldavBackend->getCalendarObjects($this->calendarInfo['id'], CalDavBackend::CALENDAR_TYPE_SUBSCRIPTION);
$children = [];
/**
* @param string $name
- * @param null $calendarData
- * @return null|string|void
+ * @param null|resource|string $calendarData
+ * @return null|string
* @throws MethodNotAllowed
*/
public function createFile($name, $calendarData = null) {
/**
* @param resource|string $calendarData
- * @return string|void
+ * @return string
* @throws MethodNotAllowed
*/
public function put($calendarData) {
namespace OCA\DAV\CalDAV\ICSExportPlugin;
use OCP\IConfig;
+use Psr\Log\LoggerInterface;
use Sabre\HTTP\ResponseInterface;
use Sabre\VObject\DateTimeParser;
use Sabre\VObject\InvalidDataException;
use Sabre\VObject\Property\ICalendar\Duration;
-use Psr\Log\LoggerInterface;
/**
* Class ICSExportPlugin
use OCP\EventDispatcher\IEventDispatcher;
use Psr\Log\LoggerInterface;
use Sabre\VObject\ITip\Message;
-use Psr\Log\LoggerInterface;
class InvitationResponseServer {
$canPublish = (!$node->isSubscription() && $node->canWrite());
if ($this->config->getAppValue('dav', 'limitAddressBookAndCalendarSharingToOwner', 'no') === 'yes') {
- $canShare &= ($node->getOwner() === $node->getPrincipalURI());
- $canPublish &= ($node->getOwner() === $node->getPrincipalURI());
+ $canShare = $canShare && ($node->getOwner() === $node->getPrincipalURI());
+ $canPublish = $canPublish && ($node->getOwner() === $node->getPrincipalURI());
}
return new AllowedSharingModes($canShare, $canPublish);
use OCP\L10N\IFactory as L10NFactory;
use OCP\Mail\IEMailTemplate;
use OCP\Mail\IMailer;
+use OCP\IUser;
use Psr\Log\LoggerInterface;
use Sabre\VObject;
use Sabre\VObject\Component\VEvent;
/** @var string */
public const NOTIFICATION_TYPE = 'EMAIL';
- /** @var IMailer */
- private $mailer;
+ private IMailer $mailer;
public function __construct(IConfig $config,
IMailer $mailer,
}
}
- /**
- * @param string $path
- * @return string
- */
private function getAbsoluteImagePath(string $path):string {
return $this->urlGenerator->getAbsoluteURL(
$this->urlGenerator->imagePath('core', $path)
}
/**
- * @param array $emails
- * @param string $defaultLanguage
- * @return array
+ * @param array<string, array{LANG?: string}> $emails
+ * @return array<string, string[]>
*/
private function sortEMailAddressesByLanguage(array $emails,
string $defaultLanguage):array {
/**
* @param VEvent $vevent
- * @return array
+ * @return array<string, array{LANG?: string}>
*/
private function getAllEMailAddressesFromEvent(VEvent $vevent):array {
$emailAddresses = [];
$properties = [];
$langProp = $attendee->offsetGet('LANG');
- if ($langProp instanceof VObject\Parameter) {
+ if ($langProp instanceof VObject\Parameter && $langProp->getValue() !== null) {
$properties['LANG'] = $langProp->getValue();
}
}
if (isset($vevent->ORGANIZER) && $this->hasAttendeeMailURI($vevent->ORGANIZER)) {
- $emailAddresses[$this->getEMailAddressOfAttendee($vevent->ORGANIZER)] = [];
+ $organizerEmailAddress = $this->getEMailAddressOfAttendee($vevent->ORGANIZER);
+ if ($organizerEmailAddress !== null) {
+ $emailAddresses[$organizerEmailAddress] = [];
+ }
}
return $emailAddresses;
}
-
-
- /**
- * @param VObject\Property $attendee
- * @return string
- */
private function getCUTypeOfAttendee(VObject\Property $attendee):string {
$cuType = $attendee->offsetGet('CUTYPE');
if ($cuType instanceof VObject\Parameter) {
return 'INDIVIDUAL';
}
- /**
- * @param VObject\Property $attendee
- * @return string
- */
private function getPartstatOfAttendee(VObject\Property $attendee):string {
$partstat = $attendee->offsetGet('PARTSTAT');
if ($partstat instanceof VObject\Parameter) {
return 'NEEDS-ACTION';
}
- /**
- * @param VObject\Property $attendee
- * @return bool
- */
- private function hasAttendeeMailURI(VObject\Property $attendee):bool {
+ private function hasAttendeeMailURI(VObject\Property $attendee): bool {
return stripos($attendee->getValue(), 'mailto:') === 0;
}
- /**
- * @param VObject\Property $attendee
- * @return string|null
- */
- private function getEMailAddressOfAttendee(VObject\Property $attendee):?string {
+ private function getEMailAddressOfAttendee(VObject\Property $attendee): ?string {
if (!$this->hasAttendeeMailURI($attendee)) {
return null;
}
}
/**
- * @param array $users
- * @return array
+ * @param IUser[] $users
+ * @return array<string, array{LANG?: string}>
*/
private function getEMailAddressesOfAllUsersWithWriteAccessToCalendar(array $users):array {
$emailAddresses = [];
}
/**
- * @param IL10N $l10n
- * @param VEvent $vevent
- * @return string
* @throws \Exception
*/
- private function generateDateString(IL10N $l10n, VEvent $vevent):string {
+ private function generateDateString(IL10N $l10n, VEvent $vevent): string {
$isAllDay = $vevent->DTSTART instanceof Property\ICalendar\Date;
/** @var Property\ICalendar\Date | Property\ICalendar\DateTime $dtstart */
. ' (' . $startTimezone . ')';
}
- /**
- * @param DateTime $dtStart
- * @param DateTime $dtEnd
- * @return bool
- */
private function isDayEqual(DateTime $dtStart,
DateTime $dtEnd):bool {
return $dtStart->format('Y-m-d') === $dtEnd->format('Y-m-d');
}
- /**
- * @param IL10N $l10n
- * @param DateTime $dt
- * @return string
- */
private function getWeekDayName(IL10N $l10n, DateTime $dt):string {
- return $l10n->l('weekdayName', $dt, ['width' => 'abbreviated']);
+ return (string)$l10n->l('weekdayName', $dt, ['width' => 'abbreviated']);
}
- /**
- * @param IL10N $l10n
- * @param DateTime $dt
- * @return string
- */
private function getDateString(IL10N $l10n, DateTime $dt):string {
- return $l10n->l('date', $dt, ['width' => 'medium']);
+ return (string)$l10n->l('date', $dt, ['width' => 'medium']);
}
- /**
- * @param IL10N $l10n
- * @param DateTime $dt
- * @return string
- */
private function getDateTimeString(IL10N $l10n, DateTime $dt):string {
- return $l10n->l('datetime', $dt, ['width' => 'medium|short']);
+ return (string)$l10n->l('datetime', $dt, ['width' => 'medium|short']);
}
- /**
- * @param IL10N $l10n
- * @param DateTime $dt
- * @return string
- */
private function getTimeString(IL10N $l10n, DateTime $dt):string {
- return $l10n->l('time', $dt, ['width' => 'short']);
+ return (string)$l10n->l('time', $dt, ['width' => 'short']);
}
- /**
- * @param VEvent $vevent
- * @param IL10N $l10n
- * @return string
- */
private function getTitleFromVEvent(VEvent $vevent, IL10N $l10n):string {
if (isset($vevent->SUMMARY)) {
return (string)$vevent->SUMMARY;
}
/**
- * @var VEvent $vevent
- * @return array
* @throws \Exception
*/
protected function extractEventDetails(VEvent $vevent):array {
* @return string
*/
private function getWeekDayName(DateTime $dt):string {
- return $this->l10n->l('weekdayName', $dt, ['width' => 'abbreviated']);
+ return (string)$this->l10n->l('weekdayName', $dt, ['width' => 'abbreviated']);
}
/**
* @return string
*/
private function getDateString(DateTime $dt):string {
- return $this->l10n->l('date', $dt, ['width' => 'medium']);
+ return (string)$this->l10n->l('date', $dt, ['width' => 'medium']);
}
/**
* @return string
*/
private function getDateTimeString(DateTime $dt):string {
- return $this->l10n->l('datetime', $dt, ['width' => 'medium|short']);
+ return (string)$this->l10n->l('datetime', $dt, ['width' => 'medium|short']);
}
/**
* @return string
*/
private function getTimeString(DateTime $dt):string {
- return $this->l10n->l('time', $dt, ['width' => 'short']);
+ return (string)$this->l10n->l('time', $dt, ['width' => 'short']);
}
}
/**
* @param int $addressBookId
*/
- public function getAddressBookById($addressBookId) {
+ public function getAddressBookById(int $addressBookId): ?array {
$query = $this->db->getQueryBuilder();
$result = $query->select(['id', 'uri', 'displayname', 'principaluri', 'description', 'synctoken'])
->from('addressbooks')
- ->where($query->expr()->eq('id', $query->createNamedParameter($addressBookId)))
- ->execute();
-
+ ->where($query->expr()->eq('id', $query->createNamedParameter($addressBookId, IQueryBuilder::PARAM_INT)))
+ ->executeQuery();
$row = $result->fetch();
$result->closeCursor();
- if ($row === false) {
+ if (!$row) {
return null;
}
$addressBookId = $query->getLastInsertId();
$addressBookRow = $this->getAddressBookById($addressBookId);
- $this->dispatcher->dispatchTyped(new AddressBookCreatedEvent((int)$addressBookId, $addressBookRow));
+ $this->dispatcher->dispatchTyped(new AddressBookCreatedEvent($addressBookId, $addressBookRow));
return $addressBookId;
}
->execute();
if ($addressBookData) {
- $this->dispatcher->dispatchTyped(new AddressBookDeletedEvent((int) $addressBookId, $addressBookData, $shares));
+ $this->dispatcher->dispatchTyped(new AddressBookDeletedEvent($addressBookId, $addressBookData, $shares));
}
}
* calculating them. If they are specified, you can also ommit carddata.
* This may speed up certain requests, especially with large cards.
*
- * @param mixed $addressBookId
+ * @param mixed $addressbookId
* @return array
*/
- public function getCards($addressBookId) {
+ public function getCards($addressbookId) {
$query = $this->db->getQueryBuilder();
$query->select(['id', 'uri', 'lastmodified', 'etag', 'size', 'carddata', 'uid'])
->from($this->dbCardsTable)
- ->where($query->expr()->eq('addressbookid', $query->createNamedParameter($addressBookId)));
+ ->where($query->expr()->eq('addressbookid', $query->createNamedParameter($addressbookId)));
$cards = [];
* If the backend supports this, it may allow for some speed-ups.
*
* @param mixed $addressBookId
- * @param string[] $uris
+ * @param array $uris
* @return array
*/
public function getMultipleCards($addressBookId, array $uris) {
$addressBookData = $this->getAddressBookById($addressBookId);
$shares = $this->getShares($addressBookId);
$objectRow = $this->getCard($addressBookId, $cardUri);
- $this->dispatcher->dispatchTyped(new CardCreatedEvent((int)$addressBookId, $addressBookData, $shares, $objectRow));
+ $this->dispatcher->dispatchTyped(new CardCreatedEvent($addressBookId, $addressBookData, $shares, $objectRow));
$this->legacyDispatcher->dispatch('\OCA\DAV\CardDAV\CardDavBackend::createCard',
new GenericEvent(null, [
'addressBookId' => $addressBookId,
$addressBookData = $this->getAddressBookById($addressBookId);
$shares = $this->getShares($addressBookId);
$objectRow = $this->getCard($addressBookId, $cardUri);
- $this->dispatcher->dispatchTyped(new CardUpdatedEvent((int)$addressBookId, $addressBookData, $shares, $objectRow));
+ $this->dispatcher->dispatchTyped(new CardUpdatedEvent($addressBookId, $addressBookData, $shares, $objectRow));
$this->legacyDispatcher->dispatch('\OCA\DAV\CardDAV\CardDavBackend::updateCard',
new GenericEvent(null, [
'addressBookId' => $addressBookId,
$ret = $query->delete($this->dbCardsTable)
->where($query->expr()->eq('addressbookid', $query->createNamedParameter($addressBookId)))
->andWhere($query->expr()->eq('uri', $query->createNamedParameter($cardUri)))
- ->execute();
+ ->executeStatement();
$this->addChange($addressBookId, $cardUri, 3);
if ($ret === 1) {
if ($cardId !== null) {
- $this->dispatcher->dispatchTyped(new CardDeletedEvent((int)$addressBookId, $addressBookData, $shares, $objectRow));
+ $this->dispatcher->dispatchTyped(new CardDeletedEvent($addressBookId, $addressBookData, $shares, $objectRow));
$this->legacyDispatcher->dispatch('\OCA\DAV\CardDAV\CardDavBackend::deleteCard',
new GenericEvent(null, [
'addressBookId' => $addressBookId,
->where(
$qb->expr()->eq('id', $qb->createNamedParameter($addressBookId))
);
- $stmt = $qb->execute();
+ $stmt = $qb->executeQuery();
$currentToken = $stmt->fetchOne();
$stmt->closeCursor();
if (is_null($currentToken)) {
- return null;
+ return [];
}
$result = [
}
// Fetching all changes
- $stmt = $qb->execute();
+ $stmt = $qb->executeQuery();
$changes = [];
$qb->expr()->eq('addressbookid', $qb->createNamedParameter($addressBookId))
);
// No synctoken supplied, this is the initial sync.
- $stmt = $qb->execute();
+ $stmt = $qb->executeQuery();
$result['added'] = $stmt->fetchAll(\PDO::FETCH_COLUMN);
$stmt->closeCursor();
}
}
/**
- * @param int $addressBookId
- * @param string $cardUri
- * @param int $size
- * @param Card $card
- *
- * @return ISimpleFile
* @throws NotFoundException
*/
- public function get($addressBookId, $cardUri, $size, Card $card) {
+ public function get(int $addressBookId, string $cardUri, int $size, Card $card): ISimpleFile {
$folder = $this->getFolder($addressBookId, $cardUri);
if ($this->isEmpty($folder)) {
return !$folder->fileExists('nophoto');
}
- private function getFile(ISimpleFolder $folder, int $size): ISimpleFile {
+ /**
+ * @param float|-1 $size
+ */
+ private function getFile(ISimpleFolder $folder, $size): ISimpleFile {
$ext = $this->getExtension($folder);
if ($size === -1) {
*/
public function syncRemoteAddressBook($url, $userName, $addressBookUrl, $sharedSecret, $syncToken, $targetBookId, $targetPrincipal, $targetProperties) {
// 1. create addressbook
- $book = $this->ensureSystemAddressBookExists($targetPrincipal, $targetBookId, $targetProperties);
+ $book = $this->ensureSystemAddressBookExists($targetPrincipal, (string)$targetBookId, $targetProperties);
$addressBookId = $book['id'];
// 2. query changes
*/
class PublicAuth extends AbstractBasic {
private const BRUTEFORCE_ACTION = 'public_webdav_auth';
- private IShare $share;
+ private ?IShare $share = null;
private IManager $shareManager;
private ISession $session;
private IRequest $request;
}
public function getShare(): IShare {
+ assert($this->share !== null);
return $this->share;
}
}
private ISession $session;
private Session $userSession;
private IRequest $request;
- private string $currentUser;
+ private ?string $currentUser = null;
private Manager $twoFactorManager;
private Throttler $throttler;
* @package OCA\DAV\Connector\Sabre
*/
class BlockLegacyClientPlugin extends ServerPlugin {
- protected Server $server;
+ protected ?Server $server = null;
protected IConfig $config;
public function __construct(IConfig $config) {
use Sabre\DAV\Server;
class ChecksumUpdatePlugin extends ServerPlugin {
- protected Server $server;
+ protected ?Server $server = null;
public function initialize(Server $server) {
$this->server = $server;
public const PROPERTY_NAME_COUNT = '{http://owncloud.org/ns}comments-count';
public const PROPERTY_NAME_UNREAD = '{http://owncloud.org/ns}comments-unread';
- protected Server $server;
+ protected ?Server $server = null;
private ICommentsManager $commentsManager;
private IUserSession $userSession;
private array $cachedUnreadCount = [];
* or mangle Etag headers.
*/
class CopyEtagHeaderPlugin extends \Sabre\DAV\ServerPlugin {
- private Server $server;
+ private ?Server $server = null;
/**
* This initializes the plugin.
* @package OCA\DAV\Connector\Sabre
*/
class DummyGetResponsePlugin extends \Sabre\DAV\ServerPlugin {
- protected Server $server;
+ protected ?Server $server = null;
/**
* @param \Sabre\DAV\Server $server
/**
* Log exception
*/
- public function logException(\Throwable $ex): void {
+ public function logException(\Throwable $ex) {
$exceptionClass = get_class($ex);
if (isset($this->nonFatalExceptions[$exceptionClass]) ||
(
public const FILE_METADATA_SIZE = '{http://nextcloud.org/ns}file-metadata-size';
/** Reference to main server object */
- private Server $server;
+ private ?Server $server = null;
private Tree $tree;
private IUserSession $userSession;
$propFind->handle(self::HAS_PREVIEW_PROPERTYNAME, function () use ($node) {
return json_encode($this->previewManager->isAvailable($node->getFileInfo()));
});
- $propFind->handle(self::SIZE_PROPERTYNAME, function () use ($node): int {
+ $propFind->handle(self::SIZE_PROPERTYNAME, function () use ($node): ?int {
return $node->getSize();
});
$propFind->handle(self::MOUNT_TYPE_PROPERTYNAME, function () use ($node) {
use OC\Files\Search\SearchComparison;
use OC\Files\Search\SearchQuery;
use OC\Files\View;
-use OCA\DAV\Connector\Sabre\CachingTree;
+use OCA\DAV\Connector\Sabre\ObjectTree;
use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Connector\Sabre\File;
use OCA\DAV\Connector\Sabre\FilesPlugin;
use Test\TestCase;
class FileSearchBackendTest extends TestCase {
- /** @var CachingTree|\PHPUnit\Framework\MockObject\MockObject */
+ /** @var ObjectTree|\PHPUnit\Framework\MockObject\MockObject */
private $tree;
/** @var IUser */
->method('getUID')
->willReturn('test');
- $this->tree = $this->getMockBuilder(CachingTree::class)
+ $this->tree = $this->getMockBuilder(ObjectTree::class)
->disableOriginalConstructor()
->getMock();
</UndefinedFunction>
</file>
<file src="apps/dav/appinfo/v1/caldav.php">
- <TooManyArguments occurrences="1">
- <code>new \Sabre\DAV\Auth\Plugin($authBackend, 'ownCloud')</code>
- </TooManyArguments>
<UndefinedGlobalVariable occurrences="1">
<code>$baseuri</code>
</UndefinedGlobalVariable>
<code>Uri\split($this->principalInfo['uri'])</code>
</UndefinedFunction>
</file>
- <file src="apps/dav/lib/BackgroundJob/BuildReminderIndexBackgroundJob.php">
- <ParamNameMismatch occurrences="1">
- <code>$arguments</code>
- </ParamNameMismatch>
- </file>
- <file src="apps/dav/lib/BackgroundJob/EventReminderJob.php">
- <ParamNameMismatch occurrences="1">
- <code>$arg</code>
- </ParamNameMismatch>
- </file>
- <file src="apps/dav/lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php">
- <ParamNameMismatch occurrences="1">
- <code>$arguments</code>
- </ParamNameMismatch>
- </file>
- <file src="apps/dav/lib/BackgroundJob/UploadCleanup.php">
- <InvalidArgument occurrences="1">
- <code>File</code>
- </InvalidArgument>
- </file>
<file src="apps/dav/lib/CalDAV/BirthdayService.php">
<UndefinedMethod occurrences="2">
<code>setDateTime</code>
</UndefinedPropertyFetch>
</file>
<file src="apps/dav/lib/CalDAV/CachedSubscription.php">
- <LessSpecificImplementedReturnType occurrences="1">
- <code>array</code>
- </LessSpecificImplementedReturnType>
- <MoreSpecificImplementedParamType occurrences="1">
- <code>$calendarData</code>
- </MoreSpecificImplementedParamType>
<ParamNameMismatch occurrences="1">
<code>$calendarData</code>
</ParamNameMismatch>
</file>
<file src="apps/dav/lib/CalDAV/CachedSubscriptionObject.php">
- <ImplementedReturnTypeMismatch occurrences="1">
- <code>string|void</code>
- </ImplementedReturnTypeMismatch>
<NullableReturnStatement occurrences="1">
<code>$this->objectData['calendardata']</code>
</NullableReturnStatement>
<code>$paths</code>
</MoreSpecificImplementedParamType>
</file>
- <file src="apps/dav/lib/CalDAV/Publishing/PublishPlugin.php">
- <InvalidOperand occurrences="2">
- <code>$canPublish</code>
- <code>$canShare</code>
- </InvalidOperand>
- <InvalidScalarArgument occurrences="2">
- <code>$canPublish</code>
- <code>$canShare</code>
- </InvalidScalarArgument>
- </file>
<file src="apps/dav/lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php">
<UndefinedMethod occurrences="3">
<code>hasTime</code>
</UndefinedMethod>
</file>
<file src="apps/dav/lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php">
- <FalsableReturnStatement occurrences="4">
- <code>$l10n->l('date', $dt, ['width' => 'medium'])</code>
- <code>$l10n->l('datetime', $dt, ['width' => 'medium|short'])</code>
- <code>$l10n->l('time', $dt, ['width' => 'short'])</code>
- <code>$l10n->l('weekdayName', $dt, ['width' => 'abbreviated'])</code>
- </FalsableReturnStatement>
- <InvalidReturnStatement occurrences="4">
- <code>$l10n->l('date', $dt, ['width' => 'medium'])</code>
- <code>$l10n->l('datetime', $dt, ['width' => 'medium|short'])</code>
- <code>$l10n->l('time', $dt, ['width' => 'short'])</code>
- <code>$l10n->l('weekdayName', $dt, ['width' => 'abbreviated'])</code>
- </InvalidReturnStatement>
- <InvalidReturnType occurrences="4">
- <code>string</code>
- <code>string</code>
- <code>string</code>
- <code>string</code>
- </InvalidReturnType>
<UndefinedMethod occurrences="3">
<code>getDateTime</code>
<code>getDateTime</code>
<code>isFloating</code>
</UndefinedMethod>
</file>
- <file src="apps/dav/lib/CalDAV/Reminder/NotificationProvider/PushProvider.php">
- <PossiblyInvalidDocblockTag occurrences="1">
- <code>@var VEvent $vevent</code>
- </PossiblyInvalidDocblockTag>
- </file>
<file src="apps/dav/lib/CalDAV/Reminder/NotificationProviderManager.php">
<UndefinedConstant occurrences="1">
<code>$provider::NOTIFICATION_TYPE</code>
</UndefinedConstant>
</file>
- <file src="apps/dav/lib/CalDAV/Reminder/Notifier.php">
- <FalsableReturnStatement occurrences="4">
- <code>$this->l10n->l('date', $dt, ['width' => 'medium'])</code>
- <code>$this->l10n->l('datetime', $dt, ['width' => 'medium|short'])</code>
- <code>$this->l10n->l('time', $dt, ['width' => 'short'])</code>
- <code>$this->l10n->l('weekdayName', $dt, ['width' => 'abbreviated'])</code>
- </FalsableReturnStatement>
- <InvalidReturnStatement occurrences="4">
- <code>$this->l10n->l('date', $dt, ['width' => 'medium'])</code>
- <code>$this->l10n->l('datetime', $dt, ['width' => 'medium|short'])</code>
- <code>$this->l10n->l('time', $dt, ['width' => 'short'])</code>
- <code>$this->l10n->l('weekdayName', $dt, ['width' => 'abbreviated'])</code>
- </InvalidReturnStatement>
- <InvalidReturnType occurrences="4">
- <code>string</code>
- <code>string</code>
- <code>string</code>
- <code>string</code>
- </InvalidReturnType>
- </file>
<file src="apps/dav/lib/CalDAV/Reminder/ReminderService.php">
<UndefinedMethod occurrences="3">
<code>getDateInterval</code>
<code>'\OCA\DAV\CardDAV\CardDavBackend::deleteCard'</code>
<code>'\OCA\DAV\CardDAV\CardDavBackend::updateCard'</code>
</InvalidArgument>
- <InvalidNullableReturnType occurrences="1">
- <code>array</code>
- </InvalidNullableReturnType>
- <MoreSpecificImplementedParamType occurrences="1">
- <code>$uris</code>
- </MoreSpecificImplementedParamType>
- <NullableReturnStatement occurrences="1">
- <code>null</code>
- </NullableReturnStatement>
- <ParamNameMismatch occurrences="1">
- <code>$addressBookId</code>
- </ParamNameMismatch>
- <RedundantCast occurrences="1">
- <code>(int)$addressBookId</code>
- </RedundantCast>
<TooManyArguments occurrences="3">
<code>dispatch</code>
<code>dispatch</code>
<code>\Sabre\Uri\split($principal)</code>
</UndefinedFunction>
</file>
- <file src="apps/dav/lib/CardDAV/SyncService.php">
- <InvalidScalarArgument occurrences="1">
- <code>$targetBookId</code>
- </InvalidScalarArgument>
- </file>
<file src="apps/dav/lib/CardDAV/UserAddressBooks.php">
<InvalidArgument occurrences="2">
<code>$this->principalUri</code>