diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
index 05fce89285313..49497b8da4dfe 100644
--- a/.git-blame-ignore-revs
+++ b/.git-blame-ignore-revs
@@ -17,3 +17,5 @@ af6de04e9e141466dc229e444ff3f146f4a34765
49dd79eabb2b8902559a7a4e8f8fcad54f46b604
# @nextcloud/vue import paths
b06f5ba4c47450f355a8903c1a93ac68e8c6cfc2
+# Update to coding-standard 1.4.0
+5981b7eb512aa411f51cad541d01c5c6e93476f0
diff --git a/apps/cloud_federation_api/lib/Config.php b/apps/cloud_federation_api/lib/Config.php
index f7c14a75c37d4..23788c26dc995 100644
--- a/apps/cloud_federation_api/lib/Config.php
+++ b/apps/cloud_federation_api/lib/Config.php
@@ -1,4 +1,5 @@
['users' => ['celia' => 3, 'darius' => 7, 'faruk' => 5, 'gail' => 5], 'bots' => ['r2-d2' => 8]],
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'elena']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'elena']],
+ ],
'bots' => [
['value' => ['shareWith' => 'r2-d2']],
['value' => ['shareWith' => 'c-3po']],
@@ -96,32 +95,30 @@ public static function sortDataProvider(): array {
#2 – no commentors, input equals output
'actors' => [],
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
diff --git a/apps/dav/appinfo/routes.php b/apps/dav/appinfo/routes.php
index 91c1ba58ea2f4..dba7bcbbdf07f 100644
--- a/apps/dav/appinfo/routes.php
+++ b/apps/dav/appinfo/routes.php
@@ -1,4 +1,5 @@
'calendar',
'id' => (string)$data['id'],
diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php
index 898eb2b5cb6f1..8c93ddae4314d 100644
--- a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php
+++ b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php
@@ -1,4 +1,5 @@
VEVENT->DTSTART->getValue() !== $existingBirthday->VEVENT->DTSTART->getValue() ||
- $newCalendarData->VEVENT->SUMMARY->getValue() !== $existingBirthday->VEVENT->SUMMARY->getValue()
+ $newCalendarData->VEVENT->DTSTART->getValue() !== $existingBirthday->VEVENT->DTSTART->getValue()
+ || $newCalendarData->VEVENT->SUMMARY->getValue() !== $existingBirthday->VEVENT->SUMMARY->getValue()
);
}
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php
index 1cbf2a1e4eb44..2775091310590 100644
--- a/apps/dav/lib/CalDAV/CalDavBackend.php
+++ b/apps/dav/lib/CalDAV/CalDavBackend.php
@@ -1,4 +1,5 @@
andWhere($innerQuery->expr()->iLike('op.value',
- $outerQuery->createNamedParameter('%' .
- $this->db->escapeLikeParameter($pattern) . '%')));
+ $outerQuery->createNamedParameter('%'
+ . $this->db->escapeLikeParameter($pattern) . '%')));
}
$start = null;
diff --git a/apps/dav/lib/CalDAV/Calendar.php b/apps/dav/lib/CalDAV/Calendar.php
index 1d88d04a5e3ff..dd3a4cf3f69ac 100644
--- a/apps/dav/lib/CalDAV/Calendar.php
+++ b/apps/dav/lib/CalDAV/Calendar.php
@@ -53,8 +53,8 @@ public function __construct(
if ($this->getName() === BirthdayService::BIRTHDAY_CALENDAR_URI && strcasecmp($this->calendarInfo['{DAV:}displayname'], 'Contact birthdays') === 0) {
$this->calendarInfo['{DAV:}displayname'] = $l10n->t('Contact birthdays');
}
- if ($this->getName() === CalDavBackend::PERSONAL_CALENDAR_URI &&
- $this->calendarInfo['{DAV:}displayname'] === CalDavBackend::PERSONAL_CALENDAR_NAME) {
+ if ($this->getName() === CalDavBackend::PERSONAL_CALENDAR_URI
+ && $this->calendarInfo['{DAV:}displayname'] === CalDavBackend::PERSONAL_CALENDAR_NAME) {
$this->calendarInfo['{DAV:}displayname'] = $l10n->t('Personal');
}
$this->l10n = $l10n;
diff --git a/apps/dav/lib/CalDAV/CalendarManager.php b/apps/dav/lib/CalDAV/CalendarManager.php
index 1baf53ee457c9..a2d2f1cda8aaa 100644
--- a/apps/dav/lib/CalDAV/CalendarManager.php
+++ b/apps/dav/lib/CalDAV/CalendarManager.php
@@ -1,4 +1,5 @@
principalPrefix === 'principals/calendar-resources' ||
- $this->principalPrefix === 'principals/calendar-rooms') {
+ if ($this->principalPrefix === 'principals/calendar-resources'
+ || $this->principalPrefix === 'principals/calendar-rooms') {
$parts = explode('/', $this->principalPrefix);
return $parts[1];
diff --git a/apps/dav/lib/CalDAV/EventReader.php b/apps/dav/lib/CalDAV/EventReader.php
index 7e337f3108a66..b7dd288995612 100644
--- a/apps/dav/lib/CalDAV/EventReader.php
+++ b/apps/dav/lib/CalDAV/EventReader.php
@@ -169,9 +169,9 @@ public function __construct(VCalendar|VEvent|array|string $input, ?string $uid =
if (isset($this->baseEvent->DTEND)) {
$this->baseEventEndDate = $this->baseEvent->DTEND->getDateTime($this->baseEventEndTimeZone);
$this->baseEventEndDateFloating = $this->baseEvent->DTEND->isFloating();
- $this->baseEventDuration =
- $this->baseEvent->DTEND->getDateTime($this->baseEventEndTimeZone)->getTimeStamp() -
- $this->baseEventStartDate->getTimeStamp();
+ $this->baseEventDuration
+ = $this->baseEvent->DTEND->getDateTime($this->baseEventEndTimeZone)->getTimeStamp()
+ - $this->baseEventStartDate->getTimeStamp();
}
// evaluate if duration exists
// extract duration and calculate end date
@@ -362,8 +362,8 @@ public function recurringInterval(): ?int {
public function recurringConcludes(): bool {
// retrieve rrule conclusions
- if ($this->rruleIterator?->concludesOn() !== null ||
- $this->rruleIterator?->concludesAfter() !== null) {
+ if ($this->rruleIterator?->concludesOn() !== null
+ || $this->rruleIterator?->concludesAfter() !== null) {
return true;
}
// retrieve rdate conclusions
diff --git a/apps/dav/lib/CalDAV/Export/ExportService.php b/apps/dav/lib/CalDAV/Export/ExportService.php
index 393c53b92e487..552b9e2b675dc 100644
--- a/apps/dav/lib/CalDAV/Export/ExportService.php
+++ b/apps/dav/lib/CalDAV/Export/ExportService.php
@@ -18,7 +18,7 @@
* Calendar Export Service
*/
class ExportService {
-
+
public const FORMATS = ['ical', 'jcal', 'xcal'];
private string $systemVersion;
@@ -92,7 +92,7 @@ private function exportObject(Component $vobject, string $format, bool $consecut
default => Writer::write($vobject)
};
}
-
+
/**
* Generates serialized content for a component in xml format
*/
diff --git a/apps/dav/lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php b/apps/dav/lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php
index 3f71b1db24c70..08dc10f7bf48d 100644
--- a/apps/dav/lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php
+++ b/apps/dav/lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php
@@ -1,4 +1,5 @@
backend->removeReminder($reminder['id']);
return;
}
diff --git a/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php b/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php
index 236039e489075..68bb337334648 100644
--- a/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php
+++ b/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php
@@ -1,4 +1,5 @@
dbForeignKeyName]] = [];
}
- $metaDataById[$metaDataRow[$this->dbForeignKeyName]][$metaDataRow['key']] =
- $metaDataRow['value'];
+ $metaDataById[$metaDataRow[$this->dbForeignKeyName]][$metaDataRow['key']]
+ = $metaDataRow['value'];
}
while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
@@ -470,9 +471,9 @@ private function rowToPrincipal(array $row, array $metadata = []): array {
* @return bool
*/
private function isAllowedToAccessResource(array $row, array $userGroups): bool {
- if (!isset($row['group_restrictions']) ||
- $row['group_restrictions'] === null ||
- $row['group_restrictions'] === '') {
+ if (!isset($row['group_restrictions'])
+ || $row['group_restrictions'] === null
+ || $row['group_restrictions'] === '') {
return true;
}
diff --git a/apps/dav/lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php b/apps/dav/lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php
index 40396f67ce93c..c70d93daf5229 100644
--- a/apps/dav/lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php
+++ b/apps/dav/lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php
@@ -1,4 +1,5 @@
recurringInterval();
$startTime = null;
@@ -403,7 +403,7 @@ public function generateWhenStringRecurringDaily(EventReader $er): string {
* @return string
*/
public function generateWhenStringRecurringWeekly(EventReader $er): string {
-
+
// initialize
$interval = (int)$er->recurringInterval();
$startTime = null;
@@ -456,15 +456,15 @@ public function generateWhenStringRecurringWeekly(EventReader $er): string {
* @return string
*/
public function generateWhenStringRecurringMonthly(EventReader $er): string {
-
+
// initialize
$interval = (int)$er->recurringInterval();
$startTime = null;
$conclusion = null;
// days of month
if ($er->recurringPattern() === 'R') {
- $days = implode(', ', array_map(function ($value) { return $this->localizeRelativePositionName($value); }, $er->recurringRelativePositionNamed())) . ' ' .
- implode(', ', array_map(function ($value) { return $this->localizeDayName($value); }, $er->recurringDaysOfWeekNamed()));
+ $days = implode(', ', array_map(function ($value) { return $this->localizeRelativePositionName($value); }, $er->recurringRelativePositionNamed())) . ' '
+ . implode(', ', array_map(function ($value) { return $this->localizeDayName($value); }, $er->recurringDaysOfWeekNamed()));
} else {
$days = implode(', ', $er->recurringDaysOfMonth());
}
@@ -521,7 +521,7 @@ public function generateWhenStringRecurringMonthly(EventReader $er): string {
* @return string
*/
public function generateWhenStringRecurringYearly(EventReader $er): string {
-
+
// initialize
$interval = (int)$er->recurringInterval();
$startTime = null;
@@ -530,8 +530,8 @@ public function generateWhenStringRecurringYearly(EventReader $er): string {
$months = implode(', ', array_map(function ($value) { return $this->localizeMonthName($value); }, $er->recurringMonthsOfYearNamed()));
// days of month
if ($er->recurringPattern() === 'R') {
- $days = implode(', ', array_map(function ($value) { return $this->localizeRelativePositionName($value); }, $er->recurringRelativePositionNamed())) . ' ' .
- implode(', ', array_map(function ($value) { return $this->localizeDayName($value); }, $er->recurringDaysOfWeekNamed()));
+ $days = implode(', ', array_map(function ($value) { return $this->localizeRelativePositionName($value); }, $er->recurringRelativePositionNamed())) . ' '
+ . implode(', ', array_map(function ($value) { return $this->localizeDayName($value); }, $er->recurringDaysOfWeekNamed()));
} else {
$days = $er->startDateTime()->format('jS');
}
@@ -610,7 +610,7 @@ public function generateWhenStringRecurringFixed(EventReader $er): string {
true => $this->l10n->t('On specific dates between %1$s - %2$s until %3$s', [$startTime, $endTime, $conclusion]),
};
}
-
+
/**
* generates a occurring next string for a recurring event
*
@@ -1108,8 +1108,8 @@ public function createInvitationToken(Message $iTipMessage, VEvent $vevent, int
$attendee = $iTipMessage->recipient;
$organizer = $iTipMessage->sender;
$sequence = $iTipMessage->sequence;
- $recurrenceId = isset($vevent->{'RECURRENCE-ID'}) ?
- $vevent->{'RECURRENCE-ID'}->serialize() : null;
+ $recurrenceId = isset($vevent->{'RECURRENCE-ID'})
+ ? $vevent->{'RECURRENCE-ID'}->serialize() : null;
$uid = $vevent->{'UID'};
$query = $this->db->getQueryBuilder();
diff --git a/apps/dav/lib/CalDAV/Schedule/Plugin.php b/apps/dav/lib/CalDAV/Schedule/Plugin.php
index da0f9ea56375c..a001df8b2a86a 100644
--- a/apps/dav/lib/CalDAV/Schedule/Plugin.php
+++ b/apps/dav/lib/CalDAV/Schedule/Plugin.php
@@ -372,8 +372,8 @@ public function propFindDefaultCalendarUrl(PropFind $propFind, INode $node) {
return null;
}
- $isResourceOrRoom = str_starts_with($principalUrl, 'principals/calendar-resources') ||
- str_starts_with($principalUrl, 'principals/calendar-rooms');
+ $isResourceOrRoom = str_starts_with($principalUrl, 'principals/calendar-resources')
+ || str_starts_with($principalUrl, 'principals/calendar-rooms');
if (str_starts_with($principalUrl, 'principals/users')) {
[, $userId] = split($principalUrl);
diff --git a/apps/dav/lib/CalDAV/Search/SearchPlugin.php b/apps/dav/lib/CalDAV/Search/SearchPlugin.php
index 602ce151e12f8..27e39a763054d 100644
--- a/apps/dav/lib/CalDAV/Search/SearchPlugin.php
+++ b/apps/dav/lib/CalDAV/Search/SearchPlugin.php
@@ -1,4 +1,5 @@
on('report', [$this, 'report']);
- $server->xml->elementMap['{' . self::NS_Nextcloud . '}calendar-search'] =
- CalendarSearchReport::class;
+ $server->xml->elementMap['{' . self::NS_Nextcloud . '}calendar-search']
+ = CalendarSearchReport::class;
}
/**
diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php
index 8a13086584246..21a4fff1caf80 100644
--- a/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php
+++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php
@@ -1,4 +1,5 @@
method = $icalMsg->METHOD = 'CANCEL';
$message->significantChange = true;
// clone base event
@@ -108,7 +108,7 @@ protected function parseEventForOrganizer(VCalendar $calendar, array $eventInfo,
$event->DTSTAMP = gmdate('Ymd\\THis\\Z');
$event->SEQUENCE = $message->sequence;
$icalMsg->add($event);
-
+
} else {
// The attendee gets the updated event body
$message->method = $icalMsg->METHOD = 'REQUEST';
@@ -124,11 +124,11 @@ protected function parseEventForOrganizer(VCalendar $calendar, array $eventInfo,
$oldAttendeeInstances = array_keys($attendee['oldInstances']);
$newAttendeeInstances = array_keys($attendee['newInstances']);
- $message->significantChange =
- $attendee['forceSend'] === 'REQUEST' ||
- count($oldAttendeeInstances) !== count($newAttendeeInstances) ||
- count(array_diff($oldAttendeeInstances, $newAttendeeInstances)) > 0 ||
- $oldEventInfo['significantChangeHash'] !== $eventInfo['significantChangeHash'];
+ $message->significantChange
+ = $attendee['forceSend'] === 'REQUEST'
+ || count($oldAttendeeInstances) !== count($newAttendeeInstances)
+ || count(array_diff($oldAttendeeInstances, $newAttendeeInstances)) > 0
+ || $oldEventInfo['significantChangeHash'] !== $eventInfo['significantChangeHash'];
foreach ($attendee['newInstances'] as $instanceId => $instanceInfo) {
$currentEvent = clone $eventInfo['instances'][$instanceId];
diff --git a/apps/dav/lib/Capabilities.php b/apps/dav/lib/Capabilities.php
index f321222b28546..f9bad25bf3176 100644
--- a/apps/dav/lib/Capabilities.php
+++ b/apps/dav/lib/Capabilities.php
@@ -1,4 +1,5 @@
'addressbook',
'id' => (string)$data['id'],
diff --git a/apps/dav/lib/CardDAV/AddressBook.php b/apps/dav/lib/CardDAV/AddressBook.php
index 2ec645f04d231..67c0b7167fa79 100644
--- a/apps/dav/lib/CardDAV/AddressBook.php
+++ b/apps/dav/lib/CardDAV/AddressBook.php
@@ -38,8 +38,8 @@ public function __construct(BackendInterface $carddavBackend, array $addressBook
parent::__construct($carddavBackend, $addressBookInfo);
- if ($this->addressBookInfo['{DAV:}displayname'] === CardDavBackend::PERSONAL_ADDRESSBOOK_NAME &&
- $this->getName() === CardDavBackend::PERSONAL_ADDRESSBOOK_URI) {
+ if ($this->addressBookInfo['{DAV:}displayname'] === CardDavBackend::PERSONAL_ADDRESSBOOK_NAME
+ && $this->getName() === CardDavBackend::PERSONAL_ADDRESSBOOK_URI) {
$this->addressBookInfo['{DAV:}displayname'] = $l10n->t('Contacts');
}
}
diff --git a/apps/dav/lib/CardDAV/AddressBookImpl.php b/apps/dav/lib/CardDAV/AddressBookImpl.php
index 8657460d0c6b5..6bb8e24f628f8 100644
--- a/apps/dav/lib/CardDAV/AddressBookImpl.php
+++ b/apps/dav/lib/CardDAV/AddressBookImpl.php
@@ -307,8 +307,8 @@ public function isShared(): bool {
*/
public function isSystemAddressBook(): bool {
return $this->addressBookInfo['principaluri'] === 'principals/system/system' && (
- $this->addressBookInfo['uri'] === 'system' ||
- $this->addressBookInfo['{DAV:}displayname'] === $this->urlGenerator->getBaseUrl()
+ $this->addressBookInfo['uri'] === 'system'
+ || $this->addressBookInfo['{DAV:}displayname'] === $this->urlGenerator->getBaseUrl()
);
}
@@ -324,7 +324,7 @@ public function isEnabled(): bool {
$user = str_replace('principals/users/', '', $this->addressBookInfo['principaluri']);
$uri = $this->addressBookInfo['uri'];
}
-
+
$path = 'addressbooks/users/' . $user . '/' . $uri;
$properties = $this->propertyMapper->findPropertyByPathAndName($user, $path, '{http://owncloud.org/ns}enabled');
if (count($properties) > 0) {
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php
index d874ca2ce2bb1..06f6bf9448e4a 100644
--- a/apps/dav/lib/CardDAV/CardDavBackend.php
+++ b/apps/dav/lib/CardDAV/CardDavBackend.php
@@ -159,8 +159,8 @@ public function getAddressBooksForUser($principalUri) {
// New share can not have more permissions then the old one.
continue;
}
- if (isset($addressBooks[$row['id']][$readOnlyPropertyName]) &&
- $addressBooks[$row['id']][$readOnlyPropertyName] === 0) {
+ if (isset($addressBooks[$row['id']][$readOnlyPropertyName])
+ && $addressBooks[$row['id']][$readOnlyPropertyName] === 0) {
// Old share is already read-write, no more permissions can be gained
continue;
}
diff --git a/apps/dav/lib/CardDAV/PhotoCache.php b/apps/dav/lib/CardDAV/PhotoCache.php
index 29f1b0240efd9..03c71f7e4a3fe 100644
--- a/apps/dav/lib/CardDAV/PhotoCache.php
+++ b/apps/dav/lib/CardDAV/PhotoCache.php
@@ -1,4 +1,5 @@
is not valid. Can not open location for write operation.");
}
-
+
foreach ($this->exportService->export($calendar, $options) as $chunk) {
fwrite($handle, $chunk);
}
diff --git a/apps/dav/lib/Command/ListCalendars.php b/apps/dav/lib/Command/ListCalendars.php
index 06a1f7397c409..408a7e5247f71 100644
--- a/apps/dav/lib/Command/ListCalendars.php
+++ b/apps/dav/lib/Command/ListCalendars.php
@@ -1,4 +1,5 @@
session->get(self::DAV_AUTHENTICATED)) &&
- $this->session->get(self::DAV_AUTHENTICATED) === $username;
+ return !is_null($this->session->get(self::DAV_AUTHENTICATED))
+ && $this->session->get(self::DAV_AUTHENTICATED) === $username;
}
/**
@@ -71,8 +71,8 @@ public function isDavAuthenticated(string $username): bool {
* @throws PasswordLoginForbidden
*/
protected function validateUserPass($username, $password) {
- if ($this->userSession->isLoggedIn() &&
- $this->isDavAuthenticated($this->userSession->getUser()->getUID())
+ if ($this->userSession->isLoggedIn()
+ && $this->isDavAuthenticated($this->userSession->getUser()->getUID())
) {
$this->session->close();
return true;
@@ -118,7 +118,7 @@ public function check(RequestInterface $request, ResponseInterface $response) {
* Checks whether a CSRF check is required on the request
*/
private function requiresCSRFCheck(): bool {
-
+
$methodsWithoutCsrf = ['GET', 'HEAD', 'OPTIONS'];
if (in_array($this->request->getMethod(), $methodsWithoutCsrf)) {
return false;
@@ -144,8 +144,8 @@ private function requiresCSRFCheck(): bool {
}
// If logged-in AND DAV authenticated no check is required
- if ($this->userSession->isLoggedIn() &&
- $this->isDavAuthenticated($this->userSession->getUser()->getUID())) {
+ if ($this->userSession->isLoggedIn()
+ && $this->isDavAuthenticated($this->userSession->getUser()->getUID())) {
return false;
}
@@ -159,8 +159,8 @@ private function requiresCSRFCheck(): bool {
private function auth(RequestInterface $request, ResponseInterface $response): array {
$forcedLogout = false;
- if (!$this->request->passesCSRFCheck() &&
- $this->requiresCSRFCheck()) {
+ if (!$this->request->passesCSRFCheck()
+ && $this->requiresCSRFCheck()) {
// In case of a fail with POST we need to recheck the credentials
if ($this->request->getMethod() === 'POST') {
$forcedLogout = true;
@@ -178,10 +178,10 @@ private function auth(RequestInterface $request, ResponseInterface $response): a
}
if (
//Fix for broken webdav clients
- ($this->userSession->isLoggedIn() && is_null($this->session->get(self::DAV_AUTHENTICATED))) ||
+ ($this->userSession->isLoggedIn() && is_null($this->session->get(self::DAV_AUTHENTICATED)))
//Well behaved clients that only send the cookie are allowed
- ($this->userSession->isLoggedIn() && $this->session->get(self::DAV_AUTHENTICATED) === $this->userSession->getUser()->getUID() && empty($request->getHeader('Authorization'))) ||
- \OC_User::handleApacheAuth()
+ || ($this->userSession->isLoggedIn() && $this->session->get(self::DAV_AUTHENTICATED) === $this->userSession->getUser()->getUID() && empty($request->getHeader('Authorization')))
+ || \OC_User::handleApacheAuth()
) {
$user = $this->userSession->getUser()->getUID();
$this->currentUser = $user;
diff --git a/apps/dav/lib/Connector/Sabre/BearerAuth.php b/apps/dav/lib/Connector/Sabre/BearerAuth.php
index e189d8fa12868..23453ae8efbab 100644
--- a/apps/dav/lib/Connector/Sabre/BearerAuth.php
+++ b/apps/dav/lib/Connector/Sabre/BearerAuth.php
@@ -1,4 +1,5 @@
timeout = 1800;
$body = $this->server->xml->write('{DAV:}prop', [
- '{DAV:}lockdiscovery' =>
- new LockDiscovery([$lockInfo])
+ '{DAV:}lockdiscovery'
+ => new LockDiscovery([$lockInfo])
]);
$response->setStatus(Http::STATUS_OK);
diff --git a/apps/dav/lib/Connector/Sabre/FilesPlugin.php b/apps/dav/lib/Connector/Sabre/FilesPlugin.php
index 5364b7cff41b8..843383a0452a5 100644
--- a/apps/dav/lib/Connector/Sabre/FilesPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/FilesPlugin.php
@@ -257,8 +257,8 @@ public function httpGet(RequestInterface $request, ResponseInterface $response)
// adds a 'Content-Disposition: attachment' header in case no disposition
// header has been set before
- if ($this->downloadAttachment &&
- $response->getHeader('Content-Disposition') === null) {
+ if ($this->downloadAttachment
+ && $response->getHeader('Content-Disposition') === null) {
$filename = $node->getName();
if ($this->request->isUserAgent(
[
@@ -541,8 +541,8 @@ protected function ncPermissions2ocmPermissions($ncPermissions) {
$ocmPermissions[] = 'read';
}
- if (($ncPermissions & Constants::PERMISSION_CREATE) ||
- ($ncPermissions & Constants::PERMISSION_UPDATE)) {
+ if (($ncPermissions & Constants::PERMISSION_CREATE)
+ || ($ncPermissions & Constants::PERMISSION_UPDATE)) {
$ocmPermissions[] = 'write';
}
diff --git a/apps/dav/lib/Connector/Sabre/MtimeSanitizer.php b/apps/dav/lib/Connector/Sabre/MtimeSanitizer.php
index efed6ce09f80b..e18ef58149a2b 100644
--- a/apps/dav/lib/Connector/Sabre/MtimeSanitizer.php
+++ b/apps/dav/lib/Connector/Sabre/MtimeSanitizer.php
@@ -1,4 +1,5 @@
getDepth() !== 0
&& (
- !is_null($propFind->getStatus(self::SHARETYPES_PROPERTYNAME)) ||
- !is_null($propFind->getStatus(self::SHAREES_PROPERTYNAME))
+ !is_null($propFind->getStatus(self::SHARETYPES_PROPERTYNAME))
+ || !is_null($propFind->getStatus(self::SHAREES_PROPERTYNAME))
)
) {
$folderNode = $sabreNode->getNode();
diff --git a/apps/dav/lib/Connector/Sabre/TagsPlugin.php b/apps/dav/lib/Connector/Sabre/TagsPlugin.php
index 2159adbda3154..25c1633df364e 100644
--- a/apps/dav/lib/Connector/Sabre/TagsPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/TagsPlugin.php
@@ -281,8 +281,8 @@ public function handleUpdateProperties($path, PropPatch $propPatch) {
public function handlePreloadProperties(array $nodes, array $requestProperties): void {
if (
- !in_array(self::FAVORITE_PROPERTYNAME, $requestProperties, true) &&
- !in_array(self::TAGS_PROPERTYNAME, $requestProperties, true)
+ !in_array(self::FAVORITE_PROPERTYNAME, $requestProperties, true)
+ && !in_array(self::TAGS_PROPERTYNAME, $requestProperties, true)
) {
return;
}
diff --git a/apps/dav/lib/Controller/BirthdayCalendarController.php b/apps/dav/lib/Controller/BirthdayCalendarController.php
index d3a9239dd22fb..f6bfb229a9c1e 100644
--- a/apps/dav/lib/Controller/BirthdayCalendarController.php
+++ b/apps/dav/lib/Controller/BirthdayCalendarController.php
@@ -1,4 +1,5 @@
connection->prepare(
- 'UPDATE `*PREFIX*properties` SET `propertypath` = ?' .
- ' WHERE `userid` = ? AND `propertypath` = ?'
+ 'UPDATE `*PREFIX*properties` SET `propertypath` = ?'
+ . ' WHERE `userid` = ? AND `propertypath` = ?'
);
$statement->execute([$this->formatPath($destination), $this->user->getUID(), $this->formatPath($source)]);
$statement->closeCursor();
diff --git a/apps/dav/lib/DAV/GroupPrincipalBackend.php b/apps/dav/lib/DAV/GroupPrincipalBackend.php
index 70a0099330c05..77ba45182c983 100644
--- a/apps/dav/lib/DAV/GroupPrincipalBackend.php
+++ b/apps/dav/lib/DAV/GroupPrincipalBackend.php
@@ -1,4 +1,5 @@
userManager->userExists($principalparts[2])) ||
- ($principalparts[1] === 'groups' && !$this->groupManager->groupExists($principalparts[2]))) {
+ if (($principalparts[1] === 'users' && !$this->userManager->userExists($principalparts[2]))
+ || ($principalparts[1] === 'groups' && !$this->groupManager->groupExists($principalparts[2]))) {
// User or group does not exist
continue;
}
@@ -199,7 +199,7 @@ public function applyShareAcl(array $shares, array $acl): array {
public function unshare(IShareable $shareable, string $principalUri): bool {
$this->shareCache->clear();
-
+
$principal = $this->principalBackend->findByUri($principalUri, '');
if (empty($principal)) {
return false;
diff --git a/apps/dav/lib/Exception/UnsupportedLimitOnInitialSyncException.php b/apps/dav/lib/Exception/UnsupportedLimitOnInitialSyncException.php
index 1022625c23b28..c6b7f8564c51d 100644
--- a/apps/dav/lib/Exception/UnsupportedLimitOnInitialSyncException.php
+++ b/apps/dav/lib/Exception/UnsupportedLimitOnInitialSyncException.php
@@ -1,4 +1,5 @@
handleSetValue($event);
return;
}
-
+
}
private function handleGetValue(DeclarativeSettingsGetValueEvent $event): void {
-
+
if ($event->getFieldId() === 'system_addressbook_enabled') {
$event->setValue((int)$this->config->getValueBool('dav', 'system_addressbook_exposed', true));
}
diff --git a/apps/dav/lib/Migration/BuildCalendarSearchIndex.php b/apps/dav/lib/Migration/BuildCalendarSearchIndex.php
index b157934a1ff95..d8f906f22eecf 100644
--- a/apps/dav/lib/Migration/BuildCalendarSearchIndex.php
+++ b/apps/dav/lib/Migration/BuildCalendarSearchIndex.php
@@ -1,4 +1,5 @@
getUrl();
if (
- $request->hasHeader(self::PAGINATE_HEADER) &&
- (!$request->hasHeader(self::PAGINATE_TOKEN_HEADER) || !$this->cache->exists($url, $request->getHeader(self::PAGINATE_TOKEN_HEADER)))
+ $request->hasHeader(self::PAGINATE_HEADER)
+ && (!$request->hasHeader(self::PAGINATE_TOKEN_HEADER) || !$this->cache->exists($url, $request->getHeader(self::PAGINATE_TOKEN_HEADER)))
) {
$pageSize = (int)$request->getHeader(self::PAGINATE_COUNT_HEADER) ?: $this->pageSize;
$offset = (int)$request->getHeader(self::PAGINATE_OFFSET_HEADER);
@@ -68,9 +68,9 @@ public function onMultiStatus(&$fileProperties): void {
public function onMethod(RequestInterface $request, ResponseInterface $response) {
$url = $this->server->httpRequest->getUrl();
if (
- $request->hasHeader(self::PAGINATE_TOKEN_HEADER) &&
- $request->hasHeader(self::PAGINATE_OFFSET_HEADER) &&
- $this->cache->exists($url, $request->getHeader(self::PAGINATE_TOKEN_HEADER))
+ $request->hasHeader(self::PAGINATE_TOKEN_HEADER)
+ && $request->hasHeader(self::PAGINATE_OFFSET_HEADER)
+ && $this->cache->exists($url, $request->getHeader(self::PAGINATE_TOKEN_HEADER))
) {
$token = $request->getHeader(self::PAGINATE_TOKEN_HEADER);
$offset = (int)$request->getHeader(self::PAGINATE_OFFSET_HEADER);
diff --git a/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php b/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php
index 190e6584eb1e6..bb098a0f107b4 100644
--- a/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php
+++ b/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php
@@ -1,4 +1,5 @@
tag->getId() . ' does not exist');
} catch (TagAlreadyExistsException $e) {
throw new Conflict(
- 'Tag with the properties "' . $name . '", ' .
- $userVisible . ', ' . $userAssignable . ' already exists'
+ 'Tag with the properties "' . $name . '", '
+ . $userVisible . ', ' . $userAssignable . ' already exists'
);
}
}
@@ -176,15 +176,15 @@ public function setReferenceFileId(int $referenceFileId): void {
public function createFile($name, $data = null) {
throw new MethodNotAllowed();
}
-
+
public function createDirectory($name) {
throw new MethodNotAllowed();
}
-
+
public function getChild($name) {
return new SystemTagObjectType($this->tag, $name, $this->tagManager, $this->tagMapper);
}
-
+
public function childExists($name) {
$objectTypes = $this->tagMapper->getAvailableObjectTypes();
return in_array($name, $objectTypes);
diff --git a/apps/dav/lib/SystemTag/SystemTagObjectType.php b/apps/dav/lib/SystemTag/SystemTagObjectType.php
index 0e1368854cdd9..0d348cd95f4bb 100644
--- a/apps/dav/lib/SystemTag/SystemTagObjectType.php
+++ b/apps/dav/lib/SystemTag/SystemTagObjectType.php
@@ -1,4 +1,5 @@
createMock(\Sabre\DAVACL\Plugin::class);
- $server =
- $this->createMock(Server::class);
+ $server
+ = $this->createMock(Server::class);
$server->expects($this->any())
->method('getPlugin')
->willReturnMap([
diff --git a/apps/dav/tests/unit/CalDAV/EventReaderTest.php b/apps/dav/tests/unit/CalDAV/EventReaderTest.php
index a5ce3e3f2c24d..3bd4f9d85c2eb 100644
--- a/apps/dav/tests/unit/CalDAV/EventReaderTest.php
+++ b/apps/dav/tests/unit/CalDAV/EventReaderTest.php
@@ -23,7 +23,7 @@ class EventReaderTest extends TestCase {
private VCalendar $vCalendar1e;
private VCalendar $vCalendar2;
private VCalendar $vCalendar3;
-
+
protected function setUp(): void {
parent::setUp();
@@ -151,7 +151,7 @@ protected function setUp(): void {
'ROLE' => 'REQ-PARTICIPANT',
'RSVP' => 'TRUE'
]);
-
+
}
public function testConstructFromCalendarString(): void {
@@ -188,19 +188,19 @@ public function testStartDateTime(): void {
$er = new EventReader($this->vCalendar1a, $this->vCalendar1a->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T080000', (new DateTimeZone('America/Toronto')))), $er->startDateTime());
-
+
/** test day part event with different start/end time zone */
// construct event reader
$er = new EventReader($this->vCalendar1b, $this->vCalendar1b->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T080000', (new DateTimeZone('America/Toronto')))), $er->startDateTime());
-
+
/** test day part event with global time zone */
// construct event reader
$er = new EventReader($this->vCalendar1c, $this->vCalendar1c->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T080000', (new DateTimeZone('America/Toronto')))), $er->startDateTime());
-
+
/** test day part event with no time zone */
// construct event reader
$er = new EventReader($this->vCalendar1d, $this->vCalendar1d->VEVENT[0]->UID->getValue());
@@ -212,13 +212,13 @@ public function testStartDateTime(): void {
$er = new EventReader($this->vCalendar1e, $this->vCalendar1e->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T080000', (new DateTimeZone('America/Toronto')))), $er->startDateTime());
-
+
/** test full day event */
// construct event reader
$er = new EventReader($this->vCalendar2, $this->vCalendar2->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T000000', (new DateTimeZone('America/Toronto')))), $er->startDateTime());
-
+
/** test multi day event */
// construct event reader
$er = new EventReader($this->vCalendar3, $this->vCalendar3->VEVENT[0]->UID->getValue());
@@ -234,7 +234,7 @@ public function testStartTimeZone(): void {
$er = new EventReader($this->vCalendar1a, $this->vCalendar1a->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new DateTimeZone('America/Toronto')), $er->startTimeZone());
-
+
/** test day part event with different start/end time zone */
// construct event reader
$er = new EventReader($this->vCalendar1b, $this->vCalendar1b->VEVENT[0]->UID->getValue());
@@ -264,7 +264,7 @@ public function testStartTimeZone(): void {
$er = new EventReader($this->vCalendar2, $this->vCalendar2->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new DateTimeZone('America/Toronto')), $er->startTimeZone());
-
+
/** test multi day event */
// construct event reader
$er = new EventReader($this->vCalendar3, $this->vCalendar3->VEVENT[0]->UID->getValue());
@@ -280,19 +280,19 @@ public function testEndDate(): void {
$er = new EventReader($this->vCalendar1a, $this->vCalendar1a->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T090000', (new DateTimeZone('America/Toronto')))), $er->endDateTime());
-
+
/** test day part event with different start/end time zone */
// construct event reader
$er = new EventReader($this->vCalendar1b, $this->vCalendar1b->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T090000', (new DateTimeZone('America/Vancouver')))), $er->endDateTime());
-
+
/** test day part event with global time zone */
// construct event reader
$er = new EventReader($this->vCalendar1c, $this->vCalendar1c->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T090000', (new DateTimeZone('America/Toronto')))), $er->endDateTime());
-
+
/** test day part event with no time zone */
// construct event reader
$er = new EventReader($this->vCalendar1d, $this->vCalendar1d->VEVENT[0]->UID->getValue());
@@ -304,13 +304,13 @@ public function testEndDate(): void {
$er = new EventReader($this->vCalendar1e, $this->vCalendar1e->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T090000', (new DateTimeZone('America/Toronto')))), $er->endDateTime());
-
+
/** test full day event */
// construct event reader
$er = new EventReader($this->vCalendar2, $this->vCalendar2->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240702T000000', (new DateTimeZone('America/Toronto')))), $er->endDateTime());
-
+
/** test multi day event */
// construct event reader
$er = new EventReader($this->vCalendar3, $this->vCalendar3->VEVENT[0]->UID->getValue());
@@ -326,7 +326,7 @@ public function testEndTimeZone(): void {
$er = new EventReader($this->vCalendar1a, $this->vCalendar1a->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new DateTimeZone('America/Toronto')), $er->endTimeZone());
-
+
/** test day part event with different start/end time zone */
// construct event reader
$er = new EventReader($this->vCalendar1b, $this->vCalendar1b->VEVENT[0]->UID->getValue());
@@ -356,7 +356,7 @@ public function testEndTimeZone(): void {
$er = new EventReader($this->vCalendar2, $this->vCalendar2->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new DateTimeZone('America/Toronto')), $er->endTimeZone());
-
+
/** test multi day event */
// construct event reader
$er = new EventReader($this->vCalendar3, $this->vCalendar3->VEVENT[0]->UID->getValue());
diff --git a/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php b/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php
index 67b2ff3555a6c..5bf247719f723 100644
--- a/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php
@@ -17,8 +17,8 @@ class ExternalCalendarTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->abstractExternalCalendar =
- $this->getMockForAbstractClass(ExternalCalendar::class, ['example-app-id', 'calendar-uri-in-backend']);
+ $this->abstractExternalCalendar
+ = $this->getMockForAbstractClass(ExternalCalendar::class, ['example-app-id', 'calendar-uri-in-backend']);
}
public function testGetName():void {
diff --git a/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php b/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php
index c66a363904075..ec2ae37a929ec 100644
--- a/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php
+++ b/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php
@@ -42,9 +42,9 @@ protected function setUp(): void {
$root = new SimpleCollection('calendars');
$this->server = new Server($root);
/** @var SimpleCollection $node */
- $this->book = $this->getMockBuilder(Calendar::class)->
- disableOriginalConstructor()->
- getMock();
+ $this->book = $this->getMockBuilder(Calendar::class)
+ ->disableOriginalConstructor()
+ ->getMock();
$this->book->method('getName')->willReturn('cal1');
$root->addChild($this->book);
$this->plugin->initialize($this->server);
diff --git a/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php b/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php
index a7ca6eb8945ee..02ae504bce0e6 100644
--- a/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php
+++ b/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php
@@ -13,8 +13,8 @@
class CalendarSearchReportTest extends TestCase {
private array $elementMap = [
- '{http://nextcloud.com/ns}calendar-search' =>
- 'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport',
+ '{http://nextcloud.com/ns}calendar-search'
+ => 'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport',
];
public function testFoo(): void {
diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
index 8a279d31b02df..735f664a2bb6a 100644
--- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
+++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
@@ -60,36 +60,36 @@ class CardDavBackendTest extends TestCase {
public const UNIT_TEST_USER1 = 'principals/users/carddav-unit-test1';
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';
-
- 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';
-
- 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';
-
- 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';
+ 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';
+
+ 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';
+
+ 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';
+
+ 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';
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php
index 381206e336e78..d4021a662998b 100644
--- a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php
@@ -59,8 +59,8 @@ protected function setUp(): void {
protected function tearDown(): void {
$connection = Server::get(IDBConnection::class);
$deleteStatement = $connection->prepare(
- 'DELETE FROM `*PREFIX*properties`' .
- ' WHERE `userid` = ?'
+ 'DELETE FROM `*PREFIX*properties`'
+ . ' WHERE `userid` = ?'
);
$deleteStatement->execute(
[
diff --git a/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php b/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php
index 742258f4fc6b6..ecb71bb7ae7b9 100644
--- a/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php
+++ b/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php
@@ -156,7 +156,7 @@ public function testCanGet(bool $isVersion, ?bool $attrEnabled, bool $expectCanD
->method('getAttribute')
->with('permissions', 'download')
->willReturn($attrEnabled);
-
+
$share->expects($this->once())
->method('canSeeContent')
->willReturn($allowViewWithoutDownload);
diff --git a/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php b/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
index f0e5a5ea354bd..f4dc13a5c0641 100644
--- a/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
@@ -28,23 +28,23 @@ class ContactsSearchProviderTest extends TestCase {
private CardDavBackend&MockObject $backend;
private ContactsSearchProvider $provider;
- private string $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:FN of Test' . PHP_EOL .
- 'N:Test;;;;' . PHP_EOL .
- 'EMAIL:forrestgump@example.com' . PHP_EOL .
- 'END:VCARD';
+ private string $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:FN of Test' . PHP_EOL
+ . 'N:Test;;;;' . PHP_EOL
+ . 'EMAIL:forrestgump@example.com' . PHP_EOL
+ . 'END:VCARD';
- private string $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL .
- 'VERSION:3.0' . PHP_EOL .
- 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL .
- 'PHOTO;ENCODING=b;TYPE=image/jpeg:' . PHP_EOL .
- 'UID:Test2' . PHP_EOL .
- 'FN:FN of Test2' . PHP_EOL .
- 'N:Test2;;;;' . PHP_EOL .
- 'END:VCARD';
+ private string $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL
+ . 'VERSION:3.0' . PHP_EOL
+ . 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
+ . 'PHOTO;ENCODING=b;TYPE=image/jpeg:' . PHP_EOL
+ . 'UID:Test2' . PHP_EOL
+ . 'FN:FN of Test2' . PHP_EOL
+ . 'N:Test2;;;;' . PHP_EOL
+ . 'END:VCARD';
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Search/EventsSearchProviderTest.php b/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
index 7c0b74e8ff319..fb8d111ad261d 100644
--- a/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
@@ -30,184 +30,184 @@ class EventsSearchProviderTest extends TestCase {
private EventsSearchProvider $provider;
// NO SUMMARY
- private static string $vEvent0 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20161004T144433Z' . PHP_EOL .
- 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL .
- 'DTEND;VALUE=DATE:20161008' . PHP_EOL .
- 'TRANSP:TRANSPARENT' . PHP_EOL .
- 'DTSTART;VALUE=DATE:20161005' . PHP_EOL .
- 'DTSTAMP:20161004T144437Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent0 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20161004T144433Z' . PHP_EOL
+ . 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL
+ . 'DTEND;VALUE=DATE:20161008' . PHP_EOL
+ . 'TRANSP:TRANSPARENT' . PHP_EOL
+ . 'DTSTART;VALUE=DATE:20161005' . PHP_EOL
+ . 'DTSTAMP:20161004T144437Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// TIMED SAME DAY
- private static string $vEvent1 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Tests//' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VTIMEZONE' . PHP_EOL .
- 'TZID:Europe/Berlin' . PHP_EOL .
- 'BEGIN:DAYLIGHT' . PHP_EOL .
- 'TZOFFSETFROM:+0100' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19810329T020000' . PHP_EOL .
- 'TZNAME:GMT+2' . PHP_EOL .
- 'TZOFFSETTO:+0200' . PHP_EOL .
- 'END:DAYLIGHT' . PHP_EOL .
- 'BEGIN:STANDARD' . PHP_EOL .
- 'TZOFFSETFROM:+0200' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19961027T030000' . PHP_EOL .
- 'TZNAME:GMT+1' . PHP_EOL .
- 'TZOFFSETTO:+0100' . PHP_EOL .
- 'END:STANDARD' . PHP_EOL .
- 'END:VTIMEZONE' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20160809T163629Z' . PHP_EOL .
- 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL .
- 'DTEND;TZID=Europe/Berlin:20160816T100000' . PHP_EOL .
- 'TRANSP:OPAQUE' . PHP_EOL .
- 'SUMMARY:Test Europe Berlin' . PHP_EOL .
- 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL .
- 'DTSTAMP:20160809T163632Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent1 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Tests//' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VTIMEZONE' . PHP_EOL
+ . 'TZID:Europe/Berlin' . PHP_EOL
+ . 'BEGIN:DAYLIGHT' . PHP_EOL
+ . 'TZOFFSETFROM:+0100' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19810329T020000' . PHP_EOL
+ . 'TZNAME:GMT+2' . PHP_EOL
+ . 'TZOFFSETTO:+0200' . PHP_EOL
+ . 'END:DAYLIGHT' . PHP_EOL
+ . 'BEGIN:STANDARD' . PHP_EOL
+ . 'TZOFFSETFROM:+0200' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19961027T030000' . PHP_EOL
+ . 'TZNAME:GMT+1' . PHP_EOL
+ . 'TZOFFSETTO:+0100' . PHP_EOL
+ . 'END:STANDARD' . PHP_EOL
+ . 'END:VTIMEZONE' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20160809T163629Z' . PHP_EOL
+ . 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL
+ . 'DTEND;TZID=Europe/Berlin:20160816T100000' . PHP_EOL
+ . 'TRANSP:OPAQUE' . PHP_EOL
+ . 'SUMMARY:Test Europe Berlin' . PHP_EOL
+ . 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL
+ . 'DTSTAMP:20160809T163632Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// TIMED DIFFERENT DAY
- private static string $vEvent2 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Tests//' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VTIMEZONE' . PHP_EOL .
- 'TZID:Europe/Berlin' . PHP_EOL .
- 'BEGIN:DAYLIGHT' . PHP_EOL .
- 'TZOFFSETFROM:+0100' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19810329T020000' . PHP_EOL .
- 'TZNAME:GMT+2' . PHP_EOL .
- 'TZOFFSETTO:+0200' . PHP_EOL .
- 'END:DAYLIGHT' . PHP_EOL .
- 'BEGIN:STANDARD' . PHP_EOL .
- 'TZOFFSETFROM:+0200' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19961027T030000' . PHP_EOL .
- 'TZNAME:GMT+1' . PHP_EOL .
- 'TZOFFSETTO:+0100' . PHP_EOL .
- 'END:STANDARD' . PHP_EOL .
- 'END:VTIMEZONE' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20160809T163629Z' . PHP_EOL .
- 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL .
- 'DTEND;TZID=Europe/Berlin:20160817T100000' . PHP_EOL .
- 'TRANSP:OPAQUE' . PHP_EOL .
- 'SUMMARY:Test Europe Berlin' . PHP_EOL .
- 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL .
- 'DTSTAMP:20160809T163632Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent2 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Tests//' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VTIMEZONE' . PHP_EOL
+ . 'TZID:Europe/Berlin' . PHP_EOL
+ . 'BEGIN:DAYLIGHT' . PHP_EOL
+ . 'TZOFFSETFROM:+0100' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19810329T020000' . PHP_EOL
+ . 'TZNAME:GMT+2' . PHP_EOL
+ . 'TZOFFSETTO:+0200' . PHP_EOL
+ . 'END:DAYLIGHT' . PHP_EOL
+ . 'BEGIN:STANDARD' . PHP_EOL
+ . 'TZOFFSETFROM:+0200' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19961027T030000' . PHP_EOL
+ . 'TZNAME:GMT+1' . PHP_EOL
+ . 'TZOFFSETTO:+0100' . PHP_EOL
+ . 'END:STANDARD' . PHP_EOL
+ . 'END:VTIMEZONE' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20160809T163629Z' . PHP_EOL
+ . 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL
+ . 'DTEND;TZID=Europe/Berlin:20160817T100000' . PHP_EOL
+ . 'TRANSP:OPAQUE' . PHP_EOL
+ . 'SUMMARY:Test Europe Berlin' . PHP_EOL
+ . 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL
+ . 'DTSTAMP:20160809T163632Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// ALL-DAY ONE-DAY
- private static string $vEvent3 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20161004T144433Z' . PHP_EOL .
- 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL .
- 'DTEND;VALUE=DATE:20161006' . PHP_EOL .
- 'TRANSP:TRANSPARENT' . PHP_EOL .
- 'DTSTART;VALUE=DATE:20161005' . PHP_EOL .
- 'DTSTAMP:20161004T144437Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent3 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20161004T144433Z' . PHP_EOL
+ . 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL
+ . 'DTEND;VALUE=DATE:20161006' . PHP_EOL
+ . 'TRANSP:TRANSPARENT' . PHP_EOL
+ . 'DTSTART;VALUE=DATE:20161005' . PHP_EOL
+ . 'DTSTAMP:20161004T144437Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// ALL-DAY MULTIPLE DAYS
- private static string $vEvent4 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20161004T144433Z' . PHP_EOL .
- 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL .
- 'DTEND;VALUE=DATE:20161008' . PHP_EOL .
- 'TRANSP:TRANSPARENT' . PHP_EOL .
- 'DTSTART;VALUE=DATE:20161005' . PHP_EOL .
- 'DTSTAMP:20161004T144437Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent4 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20161004T144433Z' . PHP_EOL
+ . 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL
+ . 'DTEND;VALUE=DATE:20161008' . PHP_EOL
+ . 'TRANSP:TRANSPARENT' . PHP_EOL
+ . 'DTSTART;VALUE=DATE:20161005' . PHP_EOL
+ . 'DTSTAMP:20161004T144437Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// DURATION
- private static string $vEvent5 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20161004T144433Z' . PHP_EOL .
- 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL .
- 'DURATION:P5D' . PHP_EOL .
- 'TRANSP:TRANSPARENT' . PHP_EOL .
- 'DTSTART;VALUE=DATE:20161005' . PHP_EOL .
- 'DTSTAMP:20161004T144437Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent5 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20161004T144433Z' . PHP_EOL
+ . 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL
+ . 'DURATION:P5D' . PHP_EOL
+ . 'TRANSP:TRANSPARENT' . PHP_EOL
+ . 'DTSTART;VALUE=DATE:20161005' . PHP_EOL
+ . 'DTSTAMP:20161004T144437Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// NO DTEND - DATE
- private static string $vEvent6 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20161004T144433Z' . PHP_EOL .
- 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL .
- 'TRANSP:TRANSPARENT' . PHP_EOL .
- 'DTSTART;VALUE=DATE:20161005' . PHP_EOL .
- 'DTSTAMP:20161004T144437Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent6 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20161004T144433Z' . PHP_EOL
+ . 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL
+ . 'TRANSP:TRANSPARENT' . PHP_EOL
+ . 'DTSTART;VALUE=DATE:20161005' . PHP_EOL
+ . 'DTSTAMP:20161004T144437Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// NO DTEND - DATE-TIME
- private static string $vEvent7 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Tests//' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VTIMEZONE' . PHP_EOL .
- 'TZID:Europe/Berlin' . PHP_EOL .
- 'BEGIN:DAYLIGHT' . PHP_EOL .
- 'TZOFFSETFROM:+0100' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19810329T020000' . PHP_EOL .
- 'TZNAME:GMT+2' . PHP_EOL .
- 'TZOFFSETTO:+0200' . PHP_EOL .
- 'END:DAYLIGHT' . PHP_EOL .
- 'BEGIN:STANDARD' . PHP_EOL .
- 'TZOFFSETFROM:+0200' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19961027T030000' . PHP_EOL .
- 'TZNAME:GMT+1' . PHP_EOL .
- 'TZOFFSETTO:+0100' . PHP_EOL .
- 'END:STANDARD' . PHP_EOL .
- 'END:VTIMEZONE' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20160809T163629Z' . PHP_EOL .
- 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL .
- 'TRANSP:OPAQUE' . PHP_EOL .
- 'SUMMARY:Test Europe Berlin' . PHP_EOL .
- 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL .
- 'DTSTAMP:20160809T163632Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent7 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Tests//' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VTIMEZONE' . PHP_EOL
+ . 'TZID:Europe/Berlin' . PHP_EOL
+ . 'BEGIN:DAYLIGHT' . PHP_EOL
+ . 'TZOFFSETFROM:+0100' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19810329T020000' . PHP_EOL
+ . 'TZNAME:GMT+2' . PHP_EOL
+ . 'TZOFFSETTO:+0200' . PHP_EOL
+ . 'END:DAYLIGHT' . PHP_EOL
+ . 'BEGIN:STANDARD' . PHP_EOL
+ . 'TZOFFSETFROM:+0200' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19961027T030000' . PHP_EOL
+ . 'TZNAME:GMT+1' . PHP_EOL
+ . 'TZOFFSETTO:+0100' . PHP_EOL
+ . 'END:STANDARD' . PHP_EOL
+ . 'END:VTIMEZONE' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20160809T163629Z' . PHP_EOL
+ . 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL
+ . 'TRANSP:OPAQUE' . PHP_EOL
+ . 'SUMMARY:Test Europe Berlin' . PHP_EOL
+ . 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL
+ . 'DTSTAMP:20160809T163632Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Search/TasksSearchProviderTest.php b/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
index bd2420805473c..972db0b98baca 100644
--- a/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
@@ -29,68 +29,68 @@ class TasksSearchProviderTest extends TestCase {
private TasksSearchProvider $provider;
// NO DUE NOR COMPLETED NOR SUMMARY
- private static string $vTodo0 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'PRODID:TEST' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'BEGIN:VTODO' . PHP_EOL .
- 'UID:20070313T123432Z-456553@example.com' . PHP_EOL .
- 'DTSTAMP:20070313T123432Z' . PHP_EOL .
- 'STATUS:NEEDS-ACTION' . PHP_EOL .
- 'END:VTODO' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vTodo0 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'PRODID:TEST' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'BEGIN:VTODO' . PHP_EOL
+ . 'UID:20070313T123432Z-456553@example.com' . PHP_EOL
+ . 'DTSTAMP:20070313T123432Z' . PHP_EOL
+ . 'STATUS:NEEDS-ACTION' . PHP_EOL
+ . 'END:VTODO' . PHP_EOL
+ . 'END:VCALENDAR';
// DUE AND COMPLETED
- private static string $vTodo1 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'PRODID:TEST' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'BEGIN:VTODO' . PHP_EOL .
- 'UID:20070313T123432Z-456553@example.com' . PHP_EOL .
- 'DTSTAMP:20070313T123432Z' . PHP_EOL .
- 'COMPLETED:20070707T100000Z' . PHP_EOL .
- 'DUE;VALUE=DATE:20070501' . PHP_EOL .
- 'SUMMARY:Task title' . PHP_EOL .
- 'STATUS:NEEDS-ACTION' . PHP_EOL .
- 'END:VTODO' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vTodo1 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'PRODID:TEST' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'BEGIN:VTODO' . PHP_EOL
+ . 'UID:20070313T123432Z-456553@example.com' . PHP_EOL
+ . 'DTSTAMP:20070313T123432Z' . PHP_EOL
+ . 'COMPLETED:20070707T100000Z' . PHP_EOL
+ . 'DUE;VALUE=DATE:20070501' . PHP_EOL
+ . 'SUMMARY:Task title' . PHP_EOL
+ . 'STATUS:NEEDS-ACTION' . PHP_EOL
+ . 'END:VTODO' . PHP_EOL
+ . 'END:VCALENDAR';
// COMPLETED ONLY
- private static string $vTodo2 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'PRODID:TEST' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'BEGIN:VTODO' . PHP_EOL .
- 'UID:20070313T123432Z-456553@example.com' . PHP_EOL .
- 'DTSTAMP:20070313T123432Z' . PHP_EOL .
- 'COMPLETED:20070707T100000Z' . PHP_EOL .
- 'SUMMARY:Task title' . PHP_EOL .
- 'STATUS:NEEDS-ACTION' . PHP_EOL .
- 'END:VTODO' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vTodo2 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'PRODID:TEST' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'BEGIN:VTODO' . PHP_EOL
+ . 'UID:20070313T123432Z-456553@example.com' . PHP_EOL
+ . 'DTSTAMP:20070313T123432Z' . PHP_EOL
+ . 'COMPLETED:20070707T100000Z' . PHP_EOL
+ . 'SUMMARY:Task title' . PHP_EOL
+ . 'STATUS:NEEDS-ACTION' . PHP_EOL
+ . 'END:VTODO' . PHP_EOL
+ . 'END:VCALENDAR';
// DUE DATE
- private static string $vTodo3 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'PRODID:TEST' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'BEGIN:VTODO' . PHP_EOL .
- 'UID:20070313T123432Z-456553@example.com' . PHP_EOL .
- 'DTSTAMP:20070313T123432Z' . PHP_EOL .
- 'DUE;VALUE=DATE:20070501' . PHP_EOL .
- 'SUMMARY:Task title' . PHP_EOL .
- 'STATUS:NEEDS-ACTION' . PHP_EOL .
- 'END:VTODO' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vTodo3 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'PRODID:TEST' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'BEGIN:VTODO' . PHP_EOL
+ . 'UID:20070313T123432Z-456553@example.com' . PHP_EOL
+ . 'DTSTAMP:20070313T123432Z' . PHP_EOL
+ . 'DUE;VALUE=DATE:20070501' . PHP_EOL
+ . 'SUMMARY:Task title' . PHP_EOL
+ . 'STATUS:NEEDS-ACTION' . PHP_EOL
+ . 'END:VTODO' . PHP_EOL
+ . 'END:VCALENDAR';
// DUE DATETIME
- private static string $vTodo4 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'PRODID:TEST' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'BEGIN:VTODO' . PHP_EOL .
- 'UID:20070313T123432Z-456553@example.com' . PHP_EOL .
- 'DTSTAMP:20070313T123432Z' . PHP_EOL .
- 'DUE:20070709T130000Z' . PHP_EOL .
- 'SUMMARY:Task title' . PHP_EOL .
- 'STATUS:NEEDS-ACTION' . PHP_EOL .
- 'END:VTODO' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vTodo4 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'PRODID:TEST' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'BEGIN:VTODO' . PHP_EOL
+ . 'UID:20070313T123432Z-456553@example.com' . PHP_EOL
+ . 'DTSTAMP:20070313T123432Z' . PHP_EOL
+ . 'DUE:20070709T130000Z' . PHP_EOL
+ . 'SUMMARY:Task title' . PHP_EOL
+ . 'STATUS:NEEDS-ACTION' . PHP_EOL
+ . 'END:VTODO' . PHP_EOL
+ . 'END:VCALENDAR';
protected function setUp(): void {
parent::setUp();
diff --git a/apps/encryption/lib/Command/DisableMasterKey.php b/apps/encryption/lib/Command/DisableMasterKey.php
index 1912d09728d01..0b8b8e39e78b5 100644
--- a/apps/encryption/lib/Command/DisableMasterKey.php
+++ b/apps/encryption/lib/Command/DisableMasterKey.php
@@ -1,4 +1,5 @@
getDisplayName() .
- '" is not able to read ' . $path;
+ $msg = 'Encryption module "' . $this->getDisplayName()
+ . '" is not able to read ' . $path;
$hint = $this->l->t('Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you.');
$this->logger->warning($msg);
throw new DecryptionFailedException($msg, $hint);
diff --git a/apps/encryption/lib/KeyManager.php b/apps/encryption/lib/KeyManager.php
index f694e6550f1f7..f9c1ef9463426 100644
--- a/apps/encryption/lib/KeyManager.php
+++ b/apps/encryption/lib/KeyManager.php
@@ -211,8 +211,8 @@ public function storeKeyPair($uid, $password, $keyPair) {
*/
public function setRecoveryKey($password, $keyPair) {
// Save Public Key
- $this->keyStorage->setSystemUserKey($this->getRecoveryKeyId() .
- '.' . $this->publicKeyId,
+ $this->keyStorage->setSystemUserKey($this->getRecoveryKeyId()
+ . '.' . $this->publicKeyId,
$keyPair['publicKey'],
Encryption::ID);
@@ -633,8 +633,8 @@ public function addSystemKeys(array $accessList, array $publicKeys, $uid) {
$publicKeys[$this->getPublicShareKeyId()] = $publicShareKey;
}
- if ($this->recoveryKeyExists() &&
- $this->util->isRecoveryEnabledForUser($uid)) {
+ if ($this->recoveryKeyExists()
+ && $this->util->isRecoveryEnabledForUser($uid)) {
$publicKeys[$this->getRecoveryKeyId()] = $this->getRecoveryKey();
}
diff --git a/apps/encryption/lib/Migration/SetMasterKeyStatus.php b/apps/encryption/lib/Migration/SetMasterKeyStatus.php
index 9619435129663..5f98308de89e8 100644
--- a/apps/encryption/lib/Migration/SetMasterKeyStatus.php
+++ b/apps/encryption/lib/Migration/SetMasterKeyStatus.php
@@ -1,4 +1,5 @@
1) {
$owner = $parts[1];
if ($this->userManager->userExists($owner) === false) {
- throw new \BadMethodCallException('Unknown user: ' .
- 'method expects path to a user folder relative to the data folder');
+ throw new \BadMethodCallException('Unknown user: '
+ . 'method expects path to a user folder relative to the data folder');
}
}
diff --git a/apps/federatedfilesharing/appinfo/routes.php b/apps/federatedfilesharing/appinfo/routes.php
index 93becd2517bbd..a7e135548c758 100644
--- a/apps/federatedfilesharing/appinfo/routes.php
+++ b/apps/federatedfilesharing/appinfo/routes.php
@@ -1,4 +1,5 @@
getPassword();
- $authenticated = $this->session->get(PublicAuth::DAV_AUTHENTICATED) === $share->getId() ||
- $this->shareManager->checkPassword($share, $password);
+ $authenticated = $this->session->get(PublicAuth::DAV_AUTHENTICATED) === $share->getId()
+ || $this->shareManager->checkPassword($share, $password);
if (!empty($storedPassword) && !$authenticated) {
$response = new JSONResponse(
['message' => 'No permission to access the share'],
@@ -151,12 +152,11 @@ public function askForFederatedShare($token, $remote, $password = '', $owner = '
try {
$response = $httpClient->post($remote . '/index.php/apps/federatedfilesharing/createFederatedShare',
[
- 'body' =>
- [
- 'token' => $token,
- 'shareWith' => rtrim($cloudId->getId(), '/'),
- 'password' => $password
- ],
+ 'body' => [
+ 'token' => $token,
+ 'shareWith' => rtrim($cloudId->getId(), '/'),
+ 'password' => $password
+ ],
'connect_timeout' => 10,
]
);
diff --git a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php
index 90e7f53da80a2..7fdd718cbfe8b 100644
--- a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php
+++ b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php
@@ -145,9 +145,9 @@ public function createShare(
#[NoCSRFRequired]
#[PublicPage]
public function reShare(int $id, ?string $token = null, ?string $shareWith = null, ?int $remoteId = 0) {
- if ($token === null ||
- $shareWith === null ||
- $remoteId === null
+ if ($token === null
+ || $shareWith === null
+ || $remoteId === null
) {
throw new OCSBadRequestException();
}
@@ -370,8 +370,8 @@ protected function ncPermissions2ocmPermissions($ncPermissions) {
$ocmPermissions[] = 'read';
}
- if (($ncPermissions & Constants::PERMISSION_CREATE) ||
- ($ncPermissions & Constants::PERMISSION_UPDATE)) {
+ if (($ncPermissions & Constants::PERMISSION_CREATE)
+ || ($ncPermissions & Constants::PERMISSION_UPDATE)) {
$ocmPermissions[] = 'write';
}
diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php
index 7c95b83a5dd78..e3731ac3ecf02 100644
--- a/apps/federatedfilesharing/lib/FederatedShareProvider.php
+++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php
@@ -88,8 +88,8 @@ public function create(IShare $share) {
$shareType = $share->getShareType();
$expirationDate = $share->getExpirationDate();
- if ($shareType === IShare::TYPE_REMOTE_GROUP &&
- !$this->isOutgoingServer2serverGroupShareEnabled()
+ if ($shareType === IShare::TYPE_REMOTE_GROUP
+ && !$this->isOutgoingServer2serverGroupShareEnabled()
) {
$message = 'It is not allowed to send federated group shares from this server.';
$message_t = $this->l->t('It is not allowed to send federated group shares from this server.');
diff --git a/apps/federatedfilesharing/lib/Notifications.php b/apps/federatedfilesharing/lib/Notifications.php
index 3ba88dad016c4..613c05613efb1 100644
--- a/apps/federatedfilesharing/lib/Notifications.php
+++ b/apps/federatedfilesharing/lib/Notifications.php
@@ -242,10 +242,10 @@ public function sendUpdateToRemote($remote, $remoteId, $token, $action, $data =
$result = $this->tryHttpPostToShareEndpoint(rtrim($remote, '/'), '/' . $remoteId . '/' . $action, $fields, $action);
$status = json_decode($result['result'], true);
- if ($result['success'] &&
- isset($status['ocs']['meta']['statuscode']) &&
- ($status['ocs']['meta']['statuscode'] === 100 ||
- $status['ocs']['meta']['statuscode'] === 200
+ if ($result['success']
+ && isset($status['ocs']['meta']['statuscode'])
+ && ($status['ocs']['meta']['statuscode'] === 100
+ || $status['ocs']['meta']['statuscode'] === 200
)
) {
return true;
diff --git a/apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php b/apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php
index 836b6610199b8..1cdcdbdd6d4f6 100644
--- a/apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php
+++ b/apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php
@@ -1,4 +1,5 @@
getShareType() === IShare::TYPE_REMOTE &&
- $share->getToken() === $token
+ $share->getShareType() === IShare::TYPE_REMOTE
+ && $share->getToken() === $token
) {
return true;
}
diff --git a/apps/federatedfilesharing/lib/Settings/Admin.php b/apps/federatedfilesharing/lib/Settings/Admin.php
index e21c34638adaf..fc685f952c79e 100644
--- a/apps/federatedfilesharing/lib/Settings/Admin.php
+++ b/apps/federatedfilesharing/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
federatedShareProvider->isIncomingServer2serverShareEnabled() ||
- $this->federatedShareProvider->isIncomingServer2serverGroupShareEnabled()) {
+ if ($this->federatedShareProvider->isIncomingServer2serverShareEnabled()
+ || $this->federatedShareProvider->isIncomingServer2serverGroupShareEnabled()) {
return 'sharing';
}
return null;
diff --git a/apps/federatedfilesharing/lib/Settings/PersonalSection.php b/apps/federatedfilesharing/lib/Settings/PersonalSection.php
index 5ef1e180c31a7..eea10e39393b5 100644
--- a/apps/federatedfilesharing/lib/Settings/PersonalSection.php
+++ b/apps/federatedfilesharing/lib/Settings/PersonalSection.php
@@ -1,4 +1,5 @@
httpClient->get(
$url,
[
- 'query' =>
- [
- 'url' => $source,
- 'token' => $token,
- 'format' => 'json',
- ],
+ 'query' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json',
+ ],
'timeout' => 3,
'connect_timeout' => 3,
'verify' => !$this->config->getSystemValue('sharing.federation.allowSelfSignedCertificates', false),
diff --git a/apps/federation/lib/Settings/Admin.php b/apps/federation/lib/Settings/Admin.php
index f9630c4b557f4..5cf5346bb85a3 100644
--- a/apps/federation/lib/Settings/Admin.php
+++ b/apps/federation/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
diff --git a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php
index 7ac68d618a1c1..017a33b49415f 100644
--- a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php
+++ b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php
@@ -155,12 +155,11 @@ public function testRun(int $statusCode): void {
->with(
$target . '/ocs/v2.php/apps/federation/api/v1/shared-secret',
[
- 'query' =>
- [
- 'url' => $source,
- 'token' => $token,
- 'format' => 'json',
- ],
+ 'query' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json',
+ ],
'timeout' => 3,
'connect_timeout' => 3,
'verify' => true,
@@ -247,12 +246,11 @@ public function testRunConnectionError(): void {
->with(
$target . '/ocs/v2.php/apps/federation/api/v1/shared-secret',
[
- 'query' =>
- [
- 'url' => $source,
- 'token' => $token,
- 'format' => 'json',
- ],
+ 'query' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json',
+ ],
'timeout' => 3,
'connect_timeout' => 3,
'verify' => true,
diff --git a/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php b/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php
index 8bec10c11e1a9..8aa83df0b0d4a 100644
--- a/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php
+++ b/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php
@@ -145,12 +145,11 @@ public function testRun(int $statusCode, int $attempt = 0): void {
->with(
$target . '/ocs/v2.php/apps/federation/api/v1/request-shared-secret',
[
- 'body' =>
- [
- 'url' => $source,
- 'token' => $token,
- 'format' => 'json',
- ],
+ 'body' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json',
+ ],
'timeout' => 3,
'connect_timeout' => 3,
'verify' => true,
@@ -231,12 +230,11 @@ public function testRunConnectionError(): void {
->with(
$target . '/ocs/v2.php/apps/federation/api/v1/request-shared-secret',
[
- 'body' =>
- [
- 'url' => $source,
- 'token' => $token,
- 'format' => 'json',
- ],
+ 'body' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json',
+ ],
'timeout' => 3,
'connect_timeout' => 3,
'verify' => true,
diff --git a/apps/federation/tests/SyncFederationAddressbooksTest.php b/apps/federation/tests/SyncFederationAddressbooksTest.php
index aebd4aa2b93f1..8b07520485969 100644
--- a/apps/federation/tests/SyncFederationAddressbooksTest.php
+++ b/apps/federation/tests/SyncFederationAddressbooksTest.php
@@ -35,14 +35,14 @@ public function testSync(): void {
$dbHandler->method('getAllServer')
->willReturn([
[
- 'url' => 'https://cloud.drop.box',
+ 'url' => 'https://cloud.example.org',
'url_hash' => 'sha1',
- 'shared_secret' => 'iloveowncloud',
+ 'shared_secret' => 'ilovenextcloud',
'sync_token' => '0'
]
]);
- $dbHandler->expects($this->once())->method('setServerStatus')->
- with('https://cloud.drop.box', 1, '1');
+ $dbHandler->expects($this->once())->method('setServerStatus')
+ ->with('https://cloud.example.org', 1, '1');
$syncService = $this->createMock(SyncService::class);
$syncService->expects($this->once())->method('syncRemoteAddressBook')
->willReturn('1');
@@ -58,15 +58,15 @@ public function testSync(): void {
public function testException(): void {
/** @var DbHandler&MockObject $dbHandler */
$dbHandler = $this->createMock(DbHandler::class);
- $dbHandler->method('getAllServer')->
- willReturn([
- [
- 'url' => 'https://cloud.drop.box',
- 'url_hash' => 'sha1',
- 'shared_secret' => 'iloveowncloud',
- 'sync_token' => '0'
- ]
- ]);
+ $dbHandler->method('getAllServer')
+ ->willReturn([
+ [
+ 'url' => 'https://cloud.example.org',
+ 'url_hash' => 'sha1',
+ 'shared_secret' => 'ilovenextcloud',
+ 'sync_token' => '0'
+ ]
+ ]);
$syncService = $this->createMock(SyncService::class);
$syncService->expects($this->once())->method('syncRemoteAddressBook')
->willThrowException(new \Exception('something did not work out'));
@@ -85,15 +85,15 @@ public function testSuccessfulSyncWithoutChangesAfterFailure(): void {
$dbHandler->method('getAllServer')
->willReturn([
[
- 'url' => 'https://cloud.drop.box',
+ 'url' => 'https://cloud.example.org',
'url_hash' => 'sha1',
'shared_secret' => 'ilovenextcloud',
'sync_token' => '0'
]
]);
$dbHandler->method('getServerStatus')->willReturn(TrustedServers::STATUS_FAILURE);
- $dbHandler->expects($this->once())->method('setServerStatus')->
- with('https://cloud.drop.box', 1);
+ $dbHandler->expects($this->once())->method('setServerStatus')
+ ->with('https://cloud.example.org', 1);
$syncService = $this->createMock(SyncService::class);
$syncService->expects($this->once())->method('syncRemoteAddressBook')
->willReturn('0');
diff --git a/apps/files/lib/Activity/FavoriteProvider.php b/apps/files/lib/Activity/FavoriteProvider.php
index 7a660287192ae..e56b13b902a7c 100644
--- a/apps/files/lib/Activity/FavoriteProvider.php
+++ b/apps/files/lib/Activity/FavoriteProvider.php
@@ -1,4 +1,5 @@
cleanupOrphanedMounts();
$output->writeln("$deletedMounts orphaned mount entries deleted");
-
+
return self::SUCCESS;
}
@@ -112,7 +112,7 @@ private function cleanupOrphanedFileCache(array $deletedStorages): int {
return $deletedEntries;
}
-
+
/**
* @param array $fileIdsByStorage
* @return int
diff --git a/apps/files/lib/Command/SanitizeFilenames.php b/apps/files/lib/Command/SanitizeFilenames.php
index a06b820ee6c39..88d41d1cb5e45 100644
--- a/apps/files/lib/Command/SanitizeFilenames.php
+++ b/apps/files/lib/Command/SanitizeFilenames.php
@@ -62,7 +62,7 @@ protected function configure(): void {
mode: InputOption::VALUE_REQUIRED,
description: 'Replacement for invalid character (by default space, underscore or dash is used)',
);
-
+
}
protected function execute(InputInterface $input, OutputInterface $output): int {
diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php
index bd99dd28e60cd..b9057139b0e16 100644
--- a/apps/files/lib/Command/Scan.php
+++ b/apps/files/lib/Command/Scan.php
@@ -286,8 +286,8 @@ protected function initTools(OutputInterface $output): void {
$this->execTime = -microtime(true);
// Convert PHP errors to exceptions
set_error_handler(
- fn (int $severity, string $message, string $file, int $line): bool =>
- $this->exceptionErrorHandler($output, $severity, $message, $file, $line),
+ fn (int $severity, string $message, string $file, int $line): bool
+ => $this->exceptionErrorHandler($output, $severity, $message, $file, $line),
E_ALL
);
}
diff --git a/apps/files/lib/Command/ScanAppData.php b/apps/files/lib/Command/ScanAppData.php
index 81c80cab373bf..0e08c6a8cfe41 100644
--- a/apps/files/lib/Command/ScanAppData.php
+++ b/apps/files/lib/Command/ScanAppData.php
@@ -1,4 +1,5 @@
getMountPoint();
// only analyze into folders from main storage,
if (
- $mount->getMountProvider() instanceof IHomeMountProvider ||
- ($includeExternalStorage && $mount->getMountProvider() instanceof ConfigAdapter)
+ $mount->getMountProvider() instanceof IHomeMountProvider
+ || ($includeExternalStorage && $mount->getMountProvider() instanceof ConfigAdapter)
) {
if ($fileInfo->isEncrypted()) {
/* Encrypted folder means e2ee encrypted, we cannot transfer it */
@@ -492,8 +492,8 @@ private function restoreShares(
foreach ($shares as ['share' => $share, 'suffix' => $suffix]) {
try {
$output->writeln('Transfering share ' . $share->getId() . ' of type ' . $share->getShareType(), OutputInterface::VERBOSITY_VERBOSE);
- if ($share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === $destinationUid) {
+ if ($share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === $destinationUid) {
// Unmount the shares before deleting, so we don't try to get the storage later on.
$shareMountPoint = $this->mountManager->find('/' . $destinationUid . '/files' . $share->getTarget());
if ($shareMountPoint) {
@@ -508,8 +508,8 @@ private function restoreShares(
$share->setSharedBy($destinationUid);
}
- if ($share->getShareType() === IShare::TYPE_USER &&
- !$this->userManager->userExists($share->getSharedWith())) {
+ if ($share->getShareType() === IShare::TYPE_USER
+ && !$this->userManager->userExists($share->getSharedWith())) {
// stray share with deleted user
$output->writeln('Share with id ' . $share->getId() . ' points at deleted user "' . $share->getSharedWith() . '", deleting');
$this->shareManager->deleteShare($share);
@@ -574,8 +574,8 @@ private function transferIncomingShares(string $sourceUid,
}
$shareTarget = $share->getTarget();
$shareTarget = $finalShareTarget . $shareTarget;
- if ($share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedBy() === $destinationUid) {
+ if ($share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedBy() === $destinationUid) {
$this->shareManager->deleteShare($share);
} elseif (isset($destinationShares[$share->getNodeId()])) {
$destinationShare = $destinationShares[$share->getNodeId()];
diff --git a/apps/files/lib/Service/UserConfig.php b/apps/files/lib/Service/UserConfig.php
index a2f2f1c1d1484..dee89b990c6e4 100644
--- a/apps/files/lib/Service/UserConfig.php
+++ b/apps/files/lib/Service/UserConfig.php
@@ -1,4 +1,5 @@
getAllowedConfigKeys())) {
throw new \InvalidArgumentException('Unknown config key');
}
-
+
if (!in_array($value, $this->getAllowedConfigValues($key))
&& !empty($this->getAllowedConfigValues($key))) {
throw new \InvalidArgumentException('Invalid config value');
@@ -132,7 +133,7 @@ public function getConfig(string $view): array {
$userId = $this->user->getUID();
$configs = json_decode($this->config->getUserValue($userId, Application::APP_ID, self::CONFIG_KEY, '[]'), true);
-
+
if (!isset($configs[$view])) {
$configs[$view] = [];
}
@@ -158,7 +159,7 @@ public function getConfigs(): array {
$userId = $this->user->getUID();
$configs = json_decode($this->config->getUserValue($userId, Application::APP_ID, self::CONFIG_KEY, '[]'), true);
$views = array_keys($configs);
-
+
return array_reduce($views, function ($carry, $view) use ($configs) {
$carry[$view] = $this->getConfig($view);
return $carry;
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index 9ba105e240dfc..5281220282a16 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -1,4 +1,5 @@
getMountPoint() === $mount->getMountPoint() &&
- $existingMount->getApplicableGroups() === $mount->getApplicableGroups() &&
- $existingMount->getApplicableUsers() === $mount->getApplicableUsers() &&
- $existingMount->getBackendOptions() === $mount->getBackendOptions()
+ $existingMount->getMountPoint() === $mount->getMountPoint()
+ && $existingMount->getApplicableGroups() === $mount->getApplicableGroups()
+ && $existingMount->getApplicableUsers() === $mount->getApplicableUsers()
+ && $existingMount->getBackendOptions() === $mount->getBackendOptions()
) {
$output->writeln('Duplicate mount (' . $mount->getMountPoint() . ')');
return self::FAILURE;
diff --git a/apps/files_external/lib/Command/ListCommand.php b/apps/files_external/lib/Command/ListCommand.php
index 84c1b569e9dd3..350916b6c2c2d 100644
--- a/apps/files_external/lib/Command/ListCommand.php
+++ b/apps/files_external/lib/Command/ListCommand.php
@@ -1,4 +1,5 @@
userMountingAllowed &&
- array_intersect($backend->getIdentifierAliases(), $this->userMountingBackends)
+ if ($this->userMountingAllowed
+ && array_intersect($backend->getIdentifierAliases(), $this->userMountingBackends)
) {
return true;
}
diff --git a/apps/files_external/lib/Service/DBConfigService.php b/apps/files_external/lib/Service/DBConfigService.php
index 3820f6b0d96a2..41ec4512d70fb 100644
--- a/apps/files_external/lib/Service/DBConfigService.php
+++ b/apps/files_external/lib/Service/DBConfigService.php
@@ -1,4 +1,5 @@
getParsedParameters($event);
- if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
+ if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
$subject = $this->l->t('Downloaded via public link');
- } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
+ } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
$subject = $this->l->t('Downloaded by {email}');
} else {
throw new \InvalidArgumentException();
@@ -53,8 +54,8 @@ public function parseShortVersion(IEvent $event) {
public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) {
$parsedParameters = $this->getParsedParameters($event);
- if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
+ if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
if (!isset($parsedParameters['remote-address-hash']['type'])) {
$subject = $this->l->t('{file} downloaded via public link');
$this->setSubjects($event, $subject, $parsedParameters);
@@ -63,8 +64,8 @@ public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) {
$this->setSubjects($event, $subject, $parsedParameters);
$event = $this->eventMerger->mergeEvents('file', $event, $previousEvent);
}
- } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
+ } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
$subject = $this->l->t('{email} downloaded {file}');
$this->setSubjects($event, $subject, $parsedParameters);
} else {
diff --git a/apps/files_sharing/lib/Activity/Providers/Groups.php b/apps/files_sharing/lib/Activity/Providers/Groups.php
index b64104739db45..d0086c05ced72 100644
--- a/apps/files_sharing/lib/Activity/Providers/Groups.php
+++ b/apps/files_sharing/lib/Activity/Providers/Groups.php
@@ -1,4 +1,5 @@
l->t('Wrong or no update parameter given'));
}
@@ -1563,8 +1563,8 @@ protected function canEditShare(IShare $share): bool {
// The owner of the file and the creator of the share
// can always edit the share
- if ($share->getShareOwner() === $this->userId ||
- $share->getSharedBy() === $this->userId
+ if ($share->getShareOwner() === $this->userId
+ || $share->getSharedBy() === $this->userId
) {
return true;
}
@@ -1596,16 +1596,16 @@ protected function canDeleteShare(IShare $share): bool {
// if the user is the recipient, i can unshare
// the share with self
- if ($share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === $this->userId
+ if ($share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === $this->userId
) {
return true;
}
// The owner of the file and the creator of the share
// can always delete the share
- if ($share->getShareOwner() === $this->userId ||
- $share->getSharedBy() === $this->userId
+ if ($share->getShareOwner() === $this->userId
+ || $share->getSharedBy() === $this->userId
) {
return true;
}
@@ -1632,16 +1632,16 @@ protected function canDeleteShare(IShare $share): bool {
* @suppress PhanUndeclaredClassMethod
*/
protected function canDeleteShareFromSelf(IShare $share): bool {
- if ($share->getShareType() !== IShare::TYPE_GROUP &&
- $share->getShareType() !== IShare::TYPE_ROOM &&
- $share->getShareType() !== IShare::TYPE_DECK &&
- $share->getShareType() !== IShare::TYPE_SCIENCEMESH
+ if ($share->getShareType() !== IShare::TYPE_GROUP
+ && $share->getShareType() !== IShare::TYPE_ROOM
+ && $share->getShareType() !== IShare::TYPE_DECK
+ && $share->getShareType() !== IShare::TYPE_SCIENCEMESH
) {
return false;
}
- if ($share->getShareOwner() === $this->userId ||
- $share->getSharedBy() === $this->userId
+ if ($share->getShareOwner() === $this->userId
+ || $share->getSharedBy() === $this->userId
) {
// Delete the whole share, not just for self
return false;
@@ -1874,8 +1874,8 @@ private function getSharesFromNode(string $viewer, $node, bool $reShares): array
continue;
}
- $providerShares =
- $this->shareManager->getSharesBy($viewer, $provider, $node, $reShares, -1, 0);
+ $providerShares
+ = $this->shareManager->getSharesBy($viewer, $provider, $node, $reShares, -1, 0);
$shares = array_merge($shares, $providerShares);
}
diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php
index ad8023ba6bb35..5a776379fce84 100644
--- a/apps/files_sharing/lib/Controller/ShareController.php
+++ b/apps/files_sharing/lib/Controller/ShareController.php
@@ -1,4 +1,5 @@
eventDispatcher->dispatchTyped(new ShareLinkAccessedEvent($share, $step, $errorCode, $errorMessage));
diff --git a/apps/files_sharing/lib/Controller/ShareInfoController.php b/apps/files_sharing/lib/Controller/ShareInfoController.php
index 0a290d69c65f4..b7e79aec8304a 100644
--- a/apps/files_sharing/lib/Controller/ShareInfoController.php
+++ b/apps/files_sharing/lib/Controller/ShareInfoController.php
@@ -1,4 +1,5 @@
externalSharesChecks()) {
+ if ($controller instanceof ExternalSharesController
+ && !$this->externalSharesChecks()) {
throw new S2SException('Federated sharing not allowed');
}
}
@@ -84,13 +84,13 @@ public function afterException($controller, $methodName, \Exception $exception):
* @return bool
*/
private function externalSharesChecks(): bool {
- if (!$this->reflector->hasAnnotation('NoIncomingFederatedSharingRequired') &&
- $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') !== 'yes') {
+ if (!$this->reflector->hasAnnotation('NoIncomingFederatedSharingRequired')
+ && $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') !== 'yes') {
return false;
}
- if (!$this->reflector->hasAnnotation('NoOutgoingFederatedSharingRequired') &&
- $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes') !== 'yes') {
+ if (!$this->reflector->hasAnnotation('NoOutgoingFederatedSharingRequired')
+ && $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes') !== 'yes') {
return false;
}
diff --git a/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php b/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php
index c9511eaa136df..3718306e3807a 100644
--- a/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php
+++ b/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php
@@ -1,4 +1,5 @@
config->getAppValue('files_sharing', 'installed_version', '0.0.0');
- return $appVersion === '0.10.0' ||
- $this->config->getAppValue('core', 'vendor', '') === 'owncloud';
+ return $appVersion === '0.10.0'
+ || $this->config->getAppValue('core', 'vendor', '') === 'owncloud';
}
}
diff --git a/apps/files_sharing/lib/Migration/SetPasswordColumn.php b/apps/files_sharing/lib/Migration/SetPasswordColumn.php
index 647e3bef8d3f2..f60af2817d46c 100644
--- a/apps/files_sharing/lib/Migration/SetPasswordColumn.php
+++ b/apps/files_sharing/lib/Migration/SetPasswordColumn.php
@@ -1,4 +1,5 @@
getStatus() !== IShare::STATUS_ACCEPTED &&
- ($parentShare->getShareType() === IShare::TYPE_GROUP ||
- $parentShare->getShareType() === IShare::TYPE_USERGROUP ||
- $parentShare->getShareType() === IShare::TYPE_USER)) {
+ if ($parentShare->getStatus() !== IShare::STATUS_ACCEPTED
+ && ($parentShare->getShareType() === IShare::TYPE_GROUP
+ || $parentShare->getShareType() === IShare::TYPE_USERGROUP
+ || $parentShare->getShareType() === IShare::TYPE_USER)) {
continue;
}
diff --git a/apps/files_sharing/lib/Notification/Listener.php b/apps/files_sharing/lib/Notification/Listener.php
index c40ad6e8f7b02..1cf0f845e7a51 100644
--- a/apps/files_sharing/lib/Notification/Listener.php
+++ b/apps/files_sharing/lib/Notification/Listener.php
@@ -40,8 +40,8 @@ public function shareNotification(ShareCreatedEvent $event): void {
$group = $this->groupManager->get($share->getSharedWith());
foreach ($group->getUsers() as $user) {
- if ($user->getUID() === $share->getShareOwner() ||
- $user->getUID() === $share->getSharedBy()) {
+ if ($user->getUID() === $share->getShareOwner()
+ || $user->getUID() === $share->getSharedBy()) {
continue;
}
@@ -72,8 +72,8 @@ public function userAddedToGroup(GenericEvent $event): void {
continue;
}
- if ($user->getUID() === $share->getShareOwner() ||
- $user->getUID() === $share->getSharedBy()) {
+ if ($user->getUID() === $share->getShareOwner()
+ || $user->getUID() === $share->getSharedBy()) {
continue;
}
diff --git a/apps/files_sharing/lib/Notification/Notifier.php b/apps/files_sharing/lib/Notification/Notifier.php
index 43f61258395d8..e4434ef0b37e4 100644
--- a/apps/files_sharing/lib/Notification/Notifier.php
+++ b/apps/files_sharing/lib/Notification/Notifier.php
@@ -67,9 +67,9 @@ public function getName(): string {
* @since 9.0.0
*/
public function prepare(INotification $notification, string $languageCode): INotification {
- if ($notification->getApp() !== 'files_sharing' ||
- ($notification->getSubject() !== 'expiresTomorrow' &&
- $notification->getObjectType() !== 'share')) {
+ if ($notification->getApp() !== 'files_sharing'
+ || ($notification->getSubject() !== 'expiresTomorrow'
+ && $notification->getObjectType() !== 'share')) {
throw new UnknownNotificationException('Unhandled app or subject');
}
diff --git a/apps/files_sharing/lib/Scanner.php b/apps/files_sharing/lib/Scanner.php
index 8a695ce953990..28972c1b4628b 100644
--- a/apps/files_sharing/lib/Scanner.php
+++ b/apps/files_sharing/lib/Scanner.php
@@ -1,4 +1,5 @@
getNodeId()] ?? null;
if (
- $shareCacheEntry &&
- str_starts_with($shareCacheEntry->getPath(), $sourceInternalPath . '/')
+ $shareCacheEntry
+ && str_starts_with($shareCacheEntry->getPath(), $sourceInternalPath . '/')
) {
$shares[] = $subShare;
}
@@ -95,9 +96,9 @@ private static function moveShareInOrOutOfShare($path): void {
//Ownership is moved over
foreach ($shares as $share) {
if (
- $share->getShareType() !== IShare::TYPE_USER &&
- $share->getShareType() !== IShare::TYPE_GROUP &&
- $share->getShareType() !== IShare::TYPE_ROOM
+ $share->getShareType() !== IShare::TYPE_USER
+ && $share->getShareType() !== IShare::TYPE_GROUP
+ && $share->getShareType() !== IShare::TYPE_ROOM
) {
continue;
}
diff --git a/apps/files_sharing/lib/ViewOnly.php b/apps/files_sharing/lib/ViewOnly.php
index 2204d26388bf3..e075677248abe 100644
--- a/apps/files_sharing/lib/ViewOnly.php
+++ b/apps/files_sharing/lib/ViewOnly.php
@@ -1,4 +1,5 @@
getData();
$this->assertEquals(
- Constants::PERMISSION_READ |
- Constants::PERMISSION_CREATE |
- Constants::PERMISSION_UPDATE |
- Constants::PERMISSION_DELETE |
- Constants::PERMISSION_SHARE,
+ Constants::PERMISSION_READ
+ | Constants::PERMISSION_CREATE
+ | Constants::PERMISSION_UPDATE
+ | Constants::PERMISSION_DELETE
+ | Constants::PERMISSION_SHARE,
$data['permissions']
);
$this->assertEmpty($data['expiration']);
@@ -1021,11 +1022,11 @@ public function testUpdateShareUpload(): void {
$share1 = $this->shareManager->getShareById($share1->getFullId());
$this->assertEquals(
- Constants::PERMISSION_READ |
- Constants::PERMISSION_CREATE |
- Constants::PERMISSION_UPDATE |
- Constants::PERMISSION_DELETE |
- Constants::PERMISSION_SHARE,
+ Constants::PERMISSION_READ
+ | Constants::PERMISSION_CREATE
+ | Constants::PERMISSION_UPDATE
+ | Constants::PERMISSION_DELETE
+ | Constants::PERMISSION_SHARE,
$share1->getPermissions()
);
diff --git a/apps/files_sharing/tests/ApplicationTest.php b/apps/files_sharing/tests/ApplicationTest.php
index b1a635406b2a7..3ccaedcf56843 100644
--- a/apps/files_sharing/tests/ApplicationTest.php
+++ b/apps/files_sharing/tests/ApplicationTest.php
@@ -1,4 +1,5 @@
['itemType' => 'files', 'itemId' => '42'],
'accessList' => ['users' => ['celia', 'darius', 'faruk', 'gail'], 'bots' => ['r2-d2']],
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'elena']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'elena']],
+ ],
'bots' => [
['value' => ['shareWith' => 'r2-d2']],
['value' => ['shareWith' => 'c-3po']],
@@ -158,32 +157,30 @@ public function sortDataProvider() {
'context' => ['itemType' => 'files', 'itemId' => '42'],
'accessList' => ['users' => false],
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
@@ -195,32 +192,30 @@ public function sortDataProvider() {
'context' => ['itemType' => 'announcements', 'itemId' => '42'],
'accessList' => null, // not needed
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
diff --git a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
index 769516cda851a..33a4403b23c3a 100644
--- a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
+++ b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
@@ -1,4 +1,5 @@
method('getToken')->willReturn($token);
$share->method('getPassword')->willReturn($password);
- if ($shareType === IShare::TYPE_USER ||
- $shareType === IShare::TYPE_GROUP ||
- $shareType === IShare::TYPE_LINK) {
+ if ($shareType === IShare::TYPE_USER
+ || $shareType === IShare::TYPE_GROUP
+ || $shareType === IShare::TYPE_LINK) {
$share->method('getFullId')->willReturn('ocinternal:' . $id);
}
@@ -1897,15 +1898,15 @@ public function testCreateShareUser(): void {
$this->shareManager->method('createShare')
->with($this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === (
- Constants::PERMISSION_ALL &
- ~Constants::PERMISSION_DELETE &
- ~Constants::PERMISSION_CREATE
- ) &&
- $share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === 'validUser' &&
- $share->getSharedBy() === 'currentUser';
+ return $share->getNode() === $path
+ && $share->getPermissions() === (
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE
+ )
+ && $share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === 'validUser'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
@@ -2008,11 +2009,11 @@ public function testCreateShareGroup(): void {
$this->shareManager->method('createShare')
->with($this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getShareType() === IShare::TYPE_GROUP &&
- $share->getSharedWith() === 'validGroup' &&
- $share->getSharedBy() === 'currentUser';
+ return $share->getNode() === $path
+ && $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getShareType() === IShare::TYPE_GROUP
+ && $share->getSharedWith() === 'validGroup'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
@@ -2125,7 +2126,7 @@ public function testCreateShareLinkPublicUploadFile(): void {
$file = $this->createMock(File::class);
$file->method('getId')->willReturn(42);
$file->method('getStorage')->willReturn($storage);
-
+
$this->rootFolder->method('getUserFolder')->with($this->currentUser)->willReturnSelf();
$this->rootFolder->method('get')->with('valid-path')->willReturn($file);
$this->rootFolder->method('getById')
@@ -2161,12 +2162,12 @@ public function testCreateShareLinkPublicUploadFolder(): void {
$this->shareManager->expects($this->once())->method('createShare')->with(
$this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getShareType() === IShare::TYPE_LINK &&
- $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) &&
- $share->getSharedBy() === 'currentUser' &&
- $share->getPassword() === null &&
- $share->getExpirationDate() === null;
+ return $share->getNode() === $path
+ && $share->getShareType() === IShare::TYPE_LINK
+ && $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getSharedBy() === 'currentUser'
+ && $share->getPassword() === null
+ && $share->getExpirationDate() === null;
})
)->willReturnArgument(0);
@@ -2241,13 +2242,13 @@ public function testCreateShareLinkSendPasswordByTalk(): void {
$this->shareManager->expects($this->once())->method('createShare')->with(
$this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getShareType() === IShare::TYPE_LINK &&
- $share->getPermissions() === (Constants::PERMISSION_ALL & ~(Constants::PERMISSION_SHARE)) &&
- $share->getSharedBy() === 'currentUser' &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === null;
+ return $share->getNode() === $path
+ && $share->getShareType() === IShare::TYPE_LINK
+ && $share->getPermissions() === (Constants::PERMISSION_ALL & ~(Constants::PERMISSION_SHARE))
+ && $share->getSharedBy() === 'currentUser'
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === null;
})
)->willReturnArgument(0);
@@ -2327,12 +2328,12 @@ public function testCreateShareValidExpireDate(): void {
$date = new \DateTime('2000-01-01');
$date->setTime(0, 0, 0);
- return $share->getNode() === $path &&
- $share->getShareType() === IShare::TYPE_LINK &&
- $share->getPermissions() === Constants::PERMISSION_READ | Constants::PERMISSION_SHARE &&
- $share->getSharedBy() === 'currentUser' &&
- $share->getPassword() === null &&
- $share->getExpirationDate() == $date;
+ return $share->getNode() === $path
+ && $share->getShareType() === IShare::TYPE_LINK
+ && $share->getPermissions() === Constants::PERMISSION_READ | Constants::PERMISSION_SHARE
+ && $share->getSharedBy() === 'currentUser'
+ && $share->getPassword() === null
+ && $share->getExpirationDate() == $date;
})
)->willReturnArgument(0);
@@ -2421,15 +2422,15 @@ public function testCreateShareRemote(): void {
$this->shareManager->method('createShare')
->with($this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === (
- Constants::PERMISSION_ALL &
- ~Constants::PERMISSION_DELETE &
- ~Constants::PERMISSION_CREATE
- ) &&
- $share->getShareType() === IShare::TYPE_REMOTE &&
- $share->getSharedWith() === 'user@example.org' &&
- $share->getSharedBy() === 'currentUser';
+ return $share->getNode() === $path
+ && $share->getPermissions() === (
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE
+ )
+ && $share->getShareType() === IShare::TYPE_REMOTE
+ && $share->getSharedWith() === 'user@example.org'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
@@ -2492,15 +2493,15 @@ public function testCreateShareRemoteGroup(): void {
$this->shareManager->method('createShare')
->with($this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === (
- Constants::PERMISSION_ALL &
- ~Constants::PERMISSION_DELETE &
- ~Constants::PERMISSION_CREATE
- ) &&
- $share->getShareType() === IShare::TYPE_REMOTE_GROUP &&
- $share->getSharedWith() === 'group@example.org' &&
- $share->getSharedBy() === 'currentUser';
+ return $share->getNode() === $path
+ && $share->getPermissions() === (
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE
+ )
+ && $share->getShareType() === IShare::TYPE_REMOTE_GROUP
+ && $share->getSharedWith() === 'group@example.org'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
@@ -2550,9 +2551,9 @@ public function testCreateShareRoom(): void {
->with(
$share,
'recipientRoom',
- Constants::PERMISSION_ALL &
- ~Constants::PERMISSION_DELETE &
- ~Constants::PERMISSION_CREATE,
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE,
''
)->willReturnCallback(
function ($share): void {
@@ -2842,14 +2843,14 @@ public function testUpdateLinkShareClear(): void {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) {
- return $share->getPermissions() === Constants::PERMISSION_READ &&
- $share->getPassword() === null &&
- $share->getExpirationDate() === null &&
+ return $share->getPermissions() === Constants::PERMISSION_READ
+ && $share->getPassword() === null
+ && $share->getExpirationDate() === null
// Once set a note or a label are never back to null, only to an
// empty string.
- $share->getNote() === '' &&
- $share->getLabel() === '' &&
- $share->getHideDownload() === false;
+ && $share->getNote() === ''
+ && $share->getLabel() === ''
+ && $share->getHideDownload() === false;
})
)->willReturnArgument(0);
@@ -2901,12 +2902,12 @@ public function testUpdateLinkShareSet(): void {
$date = new \DateTime('2000-01-01');
$date->setTime(0, 0, 0);
- return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getExpirationDate() == $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getExpirationDate() == $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -2957,9 +2958,9 @@ public function testUpdateLinkShareEnablePublicUpload($permissions, $publicUploa
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) {
- return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getExpirationDate() === null;
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getExpirationDate() === null;
})
)->willReturnArgument(0);
@@ -3225,13 +3226,13 @@ public function testUpdateLinkSharePasswordDoesNotChangeOther(): void {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'newpassword' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'newpassword'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3279,13 +3280,13 @@ public function testUpdateLinkShareSendPasswordByTalkDoesNotChangeOther(): void
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3377,13 +3378,13 @@ public function testUpdateLinkShareDoNotSendPasswordByTalkDoesNotChangeOther():
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === false &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === false
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3427,13 +3428,13 @@ public function testUpdateLinkShareDoNotSendPasswordByTalkWithTalkDisabledDoesNo
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === false &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === false
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3495,13 +3496,13 @@ public function testUpdateLinkShareExpireDateDoesNotChangeOther(): void {
$date = new \DateTime('2010-12-23');
$date->setTime(0, 0, 0);
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() == $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() == $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3553,13 +3554,13 @@ public function testUpdateLinkSharePublicUploadDoesNotChangeOther(): void {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3614,13 +3615,13 @@ public function testUpdateLinkSharePermissions(): void {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date): bool {
- return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3676,13 +3677,13 @@ public function testUpdateLinkSharePermissionsShare(): void {
->method('updateShare')
->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
diff --git a/apps/files_sharing/tests/Controller/ShareControllerTest.php b/apps/files_sharing/tests/Controller/ShareControllerTest.php
index 27fa7ecf480fc..9a576f86d42bd 100644
--- a/apps/files_sharing/tests/Controller/ShareControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php
@@ -1,4 +1,5 @@
getOriginalLocation());
$freeSpace = $this->view->free_space($restoreFolder);
- if ($freeSpace === FileInfo::SPACE_NOT_COMPUTED ||
- $freeSpace === FileInfo::SPACE_UNKNOWN ||
- $freeSpace === FileInfo::SPACE_UNLIMITED) {
+ if ($freeSpace === FileInfo::SPACE_NOT_COMPUTED
+ || $freeSpace === FileInfo::SPACE_UNKNOWN
+ || $freeSpace === FileInfo::SPACE_UNLIMITED) {
return true;
}
$filesize = $fileInfo->getSize();
diff --git a/apps/files_trashbin/lib/Storage.php b/apps/files_trashbin/lib/Storage.php
index 9ddb8e791faf1..82b7af5a9344b 100644
--- a/apps/files_trashbin/lib/Storage.php
+++ b/apps/files_trashbin/lib/Storage.php
@@ -1,4 +1,5 @@
logger->info(
- "Can't move file " . $path .
- ' to the trash bin, therefore it was deleted right away');
+ "Can't move file " . $path
+ . ' to the trash bin, therefore it was deleted right away');
return $this->storage->unlink($path);
}
diff --git a/apps/files_trashbin/lib/Trash/BackendNotFoundException.php b/apps/files_trashbin/lib/Trash/BackendNotFoundException.php
index 8e23a04851ab7..292b6ee293c81 100644
--- a/apps/files_trashbin/lib/Trash/BackendNotFoundException.php
+++ b/apps/files_trashbin/lib/Trash/BackendNotFoundException.php
@@ -1,4 +1,5 @@
backends), function ($type, $registeredType) use ($storage) {
if (
- $storage->instanceOfStorage($registeredType) &&
- ($type === '' || is_subclass_of($registeredType, $type))
+ $storage->instanceOfStorage($registeredType)
+ && ($type === '' || is_subclass_of($registeredType, $type))
) {
return $registeredType;
} else {
diff --git a/apps/files_trashbin/lib/Trashbin.php b/apps/files_trashbin/lib/Trashbin.php
index 1951379cfcbb4..667066c2fca8c 100644
--- a/apps/files_trashbin/lib/Trashbin.php
+++ b/apps/files_trashbin/lib/Trashbin.php
@@ -1,4 +1,5 @@
error('trash bin database inconsistent! ($user: ' . $user . ' $filename: ' . $filename . ', $timestamp: ' . $timestamp . ')', ['app' => 'files_trashbin']);
} else {
// if location no longer exists, restore file in the root directory
- if ($location !== '/' &&
- (!$view->is_dir('files/' . $location) ||
- !$view->isCreatable('files/' . $location))
+ if ($location !== '/'
+ && (!$view->is_dir('files/' . $location)
+ || !$view->isCreatable('files/' . $location))
) {
$location = '';
}
diff --git a/apps/files_versions/appinfo/routes.php b/apps/files_versions/appinfo/routes.php
index 11b5e0c783f94..22ded5e872357 100644
--- a/apps/files_versions/appinfo/routes.php
+++ b/apps/files_versions/appinfo/routes.php
@@ -1,4 +1,5 @@
$backendsForType) {
if (
- $storage->instanceOfStorage($type) &&
- ($foundType === '' || is_subclass_of($type, $foundType))
+ $storage->instanceOfStorage($type)
+ && ($foundType === '' || is_subclass_of($type, $foundType))
) {
foreach ($backendsForType as $backend) {
/** @var IVersionBackend $backend */
diff --git a/apps/oauth2/appinfo/routes.php b/apps/oauth2/appinfo/routes.php
index f40eaf964061a..b34aff05552ea 100644
--- a/apps/oauth2/appinfo/routes.php
+++ b/apps/oauth2/appinfo/routes.php
@@ -1,4 +1,5 @@
method('update')
->with(
$this->callback(function (AccessToken $token) {
- return $token->getHashedCode() === hash('sha512', 'random128') &&
- $token->getEncryptedToken() === 'newEncryptedToken';
+ return $token->getHashedCode() === hash('sha512', 'random128')
+ && $token->getEncryptedToken() === 'newEncryptedToken';
})
);
@@ -478,8 +479,8 @@ public function testRefreshTokenValidAppTokenBasicAuth(): void {
->method('update')
->with(
$this->callback(function (AccessToken $token) {
- return $token->getHashedCode() === hash('sha512', 'random128') &&
- $token->getEncryptedToken() === 'newEncryptedToken';
+ return $token->getHashedCode() === hash('sha512', 'random128')
+ && $token->getEncryptedToken() === 'newEncryptedToken';
})
);
@@ -577,8 +578,8 @@ public function testRefreshTokenExpiredAppToken(): void {
->method('update')
->with(
$this->callback(function (AccessToken $token) {
- return $token->getHashedCode() === hash('sha512', 'random128') &&
- $token->getEncryptedToken() === 'newEncryptedToken';
+ return $token->getHashedCode() === hash('sha512', 'random128')
+ && $token->getEncryptedToken() === 'newEncryptedToken';
})
);
diff --git a/apps/oauth2/tests/Controller/SettingsControllerTest.php b/apps/oauth2/tests/Controller/SettingsControllerTest.php
index cdde611c957d9..030a220e3d784 100644
--- a/apps/oauth2/tests/Controller/SettingsControllerTest.php
+++ b/apps/oauth2/tests/Controller/SettingsControllerTest.php
@@ -1,4 +1,5 @@
expects($this->once())
->method('insert')
->with($this->callback(function (Client $c) {
- return $c->getName() === 'My Client Name' &&
- $c->getRedirectUri() === 'https://example.com/' &&
- $c->getSecret() === bin2hex('MyHashedSecret') &&
- $c->getClientIdentifier() === 'MyClientIdentifier';
+ return $c->getName() === 'My Client Name'
+ && $c->getRedirectUri() === 'https://example.com/'
+ && $c->getSecret() === bin2hex('MyHashedSecret')
+ && $c->getClientIdentifier() === 'MyClientIdentifier';
}))->willReturnCallback(function (Client $c) {
$c->setId(42);
return $c;
diff --git a/apps/oauth2/tests/Db/AccessTokenMapperTest.php b/apps/oauth2/tests/Db/AccessTokenMapperTest.php
index 1ed282dae1dcc..41a79fe725b65 100644
--- a/apps/oauth2/tests/Db/AccessTokenMapperTest.php
+++ b/apps/oauth2/tests/Db/AccessTokenMapperTest.php
@@ -1,4 +1,5 @@
config->getSystemValue('force_language', false) === false ||
- $this->groupManager->isAdmin($currentLoggedInUser->getUID()) ||
- $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
+ $this->config->getSystemValue('force_language', false) === false
+ || $this->groupManager->isAdmin($currentLoggedInUser->getUID())
+ || $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
) {
$permittedFields[] = self::USER_FIELD_LANGUAGE;
}
if (
- $this->config->getSystemValue('force_locale', false) === false ||
- $this->groupManager->isAdmin($currentLoggedInUser->getUID()) ||
- $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
+ $this->config->getSystemValue('force_locale', false) === false
+ || $this->groupManager->isAdmin($currentLoggedInUser->getUID())
+ || $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
) {
$permittedFields[] = self::USER_FIELD_LOCALE;
$permittedFields[] = self::USER_FIELD_FIRST_DAY_OF_WEEK;
@@ -1000,8 +1000,8 @@ public function editUser(string $userId, string $key, string $value): DataRespon
// Check if admin / subadmin
$subAdminManager = $this->groupManager->getSubAdmin();
if (
- $this->groupManager->isAdmin($currentLoggedInUser->getUID()) ||
- $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID()) && !$this->groupManager->isInGroup($targetUser->getUID(), 'admin')
+ $this->groupManager->isAdmin($currentLoggedInUser->getUID())
+ || $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID()) && !$this->groupManager->isInGroup($targetUser->getUID(), 'admin')
|| $subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)
) {
// They have permissions over the user
diff --git a/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php b/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php
index c7be073b8af0f..b014d6a14955b 100644
--- a/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php
+++ b/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php
@@ -1,4 +1,5 @@
authorizedGroupService->create($groupData['gid'], $class);
}
}
-
+
return new DataResponse(['valid' => true]);
}
}
diff --git a/apps/settings/lib/Controller/ChangePasswordController.php b/apps/settings/lib/Controller/ChangePasswordController.php
index 2154a9ab11b56..a874a47c16aa4 100644
--- a/apps/settings/lib/Controller/ChangePasswordController.php
+++ b/apps/settings/lib/Controller/ChangePasswordController.php
@@ -1,4 +1,5 @@
userSession->getUser();
$targetUser = $this->userManager->get($username);
- if ($currentUser === null || $targetUser === null ||
- !($this->groupManager->isAdmin($this->userId) ||
- $this->groupManager->getSubAdmin()->isUserAccessible($currentUser, $targetUser))
+ if ($currentUser === null || $targetUser === null
+ || !($this->groupManager->isAdmin($this->userId)
+ || $this->groupManager->getSubAdmin()->isUserAccessible($currentUser, $targetUser))
) {
return new JSONResponse([
'status' => 'error',
diff --git a/apps/settings/lib/Controller/CommonSettingsTrait.php b/apps/settings/lib/Controller/CommonSettingsTrait.php
index 67398d1357be1..75d2b1f2f9e2f 100644
--- a/apps/settings/lib/Controller/CommonSettingsTrait.php
+++ b/apps/settings/lib/Controller/CommonSettingsTrait.php
@@ -1,4 +1,5 @@
appManager->isEnabledForUser('user_ldap')) {
- $isLDAPUsed =
- $this->groupManager->isBackendUsed('\OCA\User_LDAP\Group_Proxy');
+ $isLDAPUsed
+ = $this->groupManager->isBackendUsed('\OCA\User_LDAP\Group_Proxy');
if ($isLDAPUsed) {
// LDAP user count can be slow, so we sort by group name here
$sortGroupsBy = MetaData::SORT_GROUPNAME;
diff --git a/apps/settings/lib/Hooks.php b/apps/settings/lib/Hooks.php
index d4ee93597e27d..f59013ca5e1e7 100644
--- a/apps/settings/lib/Hooks.php
+++ b/apps/settings/lib/Hooks.php
@@ -1,4 +1,5 @@
getEMailAddress() ||
- $user->getLastLogin() === 0) {
+ if ($oldMailAddress === $user->getEMailAddress()
+ || $user->getLastLogin() === 0) {
// Email didn't really change or user didn't login,
// so don't create activities and emails.
return;
diff --git a/apps/settings/lib/Listener/MailProviderListener.php b/apps/settings/lib/Listener/MailProviderListener.php
index 974378c0006ce..61446f1e6cb92 100644
--- a/apps/settings/lib/Listener/MailProviderListener.php
+++ b/apps/settings/lib/Listener/MailProviderListener.php
@@ -38,11 +38,11 @@ public function handle(Event $event): void {
$this->handleSetValue($event);
return;
}
-
+
}
private function handleGetValue(DeclarativeSettingsGetValueEvent $event): void {
-
+
if ($event->getFieldId() === 'mail_providers_enabled') {
$event->setValue((int)$this->config->getValueBool('core', 'mail_providers_enabled', true));
}
diff --git a/apps/settings/lib/Mailer/NewUserMailHelper.php b/apps/settings/lib/Mailer/NewUserMailHelper.php
index bd4de2b20875e..202495a020e49 100644
--- a/apps/settings/lib/Mailer/NewUserMailHelper.php
+++ b/apps/settings/lib/Mailer/NewUserMailHelper.php
@@ -1,4 +1,5 @@
$sectionsByPriority) {
foreach ($sectionsByPriority as $section) {
if (
- stripos($section->getName(), $query->getTerm()) === false &&
- stripos($section->getID(), $query->getTerm()) === false
+ stripos($section->getName(), $query->getTerm()) === false
+ && stripos($section->getID(), $query->getTerm()) === false
) {
continue;
}
diff --git a/apps/settings/lib/Sections/Admin/Delegation.php b/apps/settings/lib/Sections/Admin/Delegation.php
index 2a455f1e54989..0dd3b48c20b66 100644
--- a/apps/settings/lib/Sections/Admin/Delegation.php
+++ b/apps/settings/lib/Sections/Admin/Delegation.php
@@ -1,4 +1,5 @@
l10n->t('Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory.') . "\n" . $this->serverConfigHelp());
}
return SetupResult::success();
-
+
}
}
diff --git a/apps/settings/lib/SetupChecks/JavaScriptModules.php b/apps/settings/lib/SetupChecks/JavaScriptModules.php
index e09dc459dc885..72f584058114a 100644
--- a/apps/settings/lib/SetupChecks/JavaScriptModules.php
+++ b/apps/settings/lib/SetupChecks/JavaScriptModules.php
@@ -55,6 +55,6 @@ public function run(): SetupResult {
return SetupResult::warning($this->l10n->t('Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type.') . "\n" . $this->serverConfigHelp());
}
return SetupResult::error($this->l10n->t('Your webserver does not serve `.mjs` files using the JavaScript MIME type. This will break some apps by preventing browsers from executing the JavaScript files. You should configure your webserver to serve `.mjs` files with either the `text/javascript` or `application/javascript` MIME type.'));
-
+
}
}
diff --git a/apps/settings/lib/SetupChecks/PhpOpcacheSetup.php b/apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
index ee2e6e5733524..83b7be1c39071 100644
--- a/apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
+++ b/apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
@@ -87,10 +87,10 @@ protected function getOpcacheSetupRecommendations(): array {
$memory_consumption = $this->iniGetWrapper->getNumeric('opcache.memory_consumption') ?? 0;
if (
// Do not recommend to raise the interned strings buffer size above a quarter of the total OPcache size
- ($interned_strings_buffer < ($memory_consumption / 4)) &&
- (
- empty($status['interned_strings_usage']['free_memory']) ||
- ($status['interned_strings_usage']['used_memory'] / $status['interned_strings_usage']['free_memory'] > 9)
+ ($interned_strings_buffer < ($memory_consumption / 4))
+ && (
+ empty($status['interned_strings_usage']['free_memory'])
+ || ($status['interned_strings_usage']['used_memory'] / $status['interned_strings_usage']['free_memory'] > 9)
)
) {
$recommendations[] = $this->l10n->t('The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply "opcache.interned_strings_buffer" to your PHP configuration with a value higher than "%s".', [($this->iniGetWrapper->getNumeric('opcache.interned_strings_buffer') ?: 'currently')]);
diff --git a/apps/settings/templates/settings/empty.php b/apps/settings/templates/settings/empty.php
index f7ae4113ac632..ce4477fa9dfca 100644
--- a/apps/settings/templates/settings/empty.php
+++ b/apps/settings/templates/settings/empty.php
@@ -1,4 +1,5 @@
- [
- 'sharebymail' =>
- [
- 'enabled' => $this->manager->shareApiAllowLinks(),
- 'send_password_by_mail' => $this->settingsManager->sendPasswordByMail(),
- 'upload_files_drop' => [
- 'enabled' => true,
- ],
- 'password' => [
- 'enabled' => true,
- 'enforced' => $this->manager->shareApiLinkEnforcePassword(),
- ],
- 'expire_date' => [
- 'enabled' => true,
- 'enforced' => $this->manager->shareApiLinkDefaultExpireDateEnforced(),
- ],
- ]
+ 'files_sharing'
+ => [
+ 'sharebymail' => [
+ 'enabled' => $this->manager->shareApiAllowLinks(),
+ 'send_password_by_mail' => $this->settingsManager->sendPasswordByMail(),
+ 'upload_files_drop' => [
+ 'enabled' => true,
+ ],
+ 'password' => [
+ 'enabled' => true,
+ 'enforced' => $this->manager->shareApiLinkEnforcePassword(),
+ ],
+ 'expire_date' => [
+ 'enabled' => true,
+ 'enforced' => $this->manager->shareApiLinkDefaultExpireDateEnforced(),
+ ],
+ ]
]
];
}
diff --git a/apps/sharebymail/lib/Settings/Admin.php b/apps/sharebymail/lib/Settings/Admin.php
index 2bd58f7307feb..8f27bbff6d618 100644
--- a/apps/sharebymail/lib/Settings/Admin.php
+++ b/apps/sharebymail/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
getPassword() !== $share->getPassword() ||
- ($originalShare->getSendPasswordByTalk() && !$share->getSendPasswordByTalk()))) {
+ if ($validPassword && ($originalShare->getPassword() !== $share->getPassword()
+ || ($originalShare->getSendPasswordByTalk() && !$share->getSendPasswordByTalk()))) {
$emails = $this->getSharedWithEmails($share);
$validEmails = array_filter($emails, function ($email) {
return $this->mailer->validateMailAddress($email);
diff --git a/apps/sharebymail/tests/CapabilitiesTest.php b/apps/sharebymail/tests/CapabilitiesTest.php
index 0e3e74f5d2db0..7327e679533e3 100644
--- a/apps/sharebymail/tests/CapabilitiesTest.php
+++ b/apps/sharebymail/tests/CapabilitiesTest.php
@@ -42,24 +42,23 @@ public function testGetCapabilities(): void {
->willReturn(true);
$capabilities = [
- 'files_sharing' =>
- [
- 'sharebymail' =>
- [
+ 'files_sharing'
+ => [
+ 'sharebymail' => [
+ 'enabled' => true,
+ 'send_password_by_mail' => true,
+ 'upload_files_drop' => [
'enabled' => true,
- 'send_password_by_mail' => true,
- 'upload_files_drop' => [
- 'enabled' => true,
- ],
- 'password' => [
- 'enabled' => true,
- 'enforced' => false,
- ],
- 'expire_date' => [
- 'enabled' => true,
- 'enforced' => false,
- ],
- ]
+ ],
+ 'password' => [
+ 'enabled' => true,
+ 'enforced' => false,
+ ],
+ 'expire_date' => [
+ 'enabled' => true,
+ 'enforced' => false,
+ ],
+ ]
]
];
diff --git a/apps/systemtags/appinfo/routes.php b/apps/systemtags/appinfo/routes.php
index d61a35ef6302f..53997646cc6c7 100644
--- a/apps/systemtags/appinfo/routes.php
+++ b/apps/systemtags/appinfo/routes.php
@@ -1,4 +1,5 @@
addArgument(
'key',
InputArgument::OPTIONAL,
- 'Key to update the theming app configuration (leave empty to get a list of all configured values)' . PHP_EOL .
- 'One of: ' . implode(', ', self::SUPPORTED_KEYS)
+ 'Key to update the theming app configuration (leave empty to get a list of all configured values)' . PHP_EOL
+ . 'One of: ' . implode(', ', self::SUPPORTED_KEYS)
)
->addArgument(
'value',
diff --git a/apps/theming/lib/Controller/IconController.php b/apps/theming/lib/Controller/IconController.php
index f487663d8c81a..e82faf78a798a 100644
--- a/apps/theming/lib/Controller/IconController.php
+++ b/apps/theming/lib/Controller/IconController.php
@@ -1,4 +1,5 @@
- [
+ 'data'
+ => [
'name' => $name,
'url' => $this->imageManager->getImageUrl($key),
'message' => $this->l10n->t('Saved'),
@@ -294,8 +295,8 @@ public function undo(string $setting): DataResponse {
return new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'value' => $value,
'message' => $this->l10n->t('Saved'),
],
@@ -317,8 +318,8 @@ public function undoAll(): DataResponse {
return new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => $this->l10n->t('Saved'),
],
'status' => 'success'
@@ -462,8 +463,8 @@ public function getManifest(string $app): JSONResponse {
'theme_color' => $this->themingDefaults->getColorPrimary(),
'background_color' => $this->themingDefaults->getColorPrimary(),
'description' => $description,
- 'icons' =>
- [
+ 'icons'
+ => [
[
'src' => $this->urlGenerator->linkToRoute('theming.Icon.getTouchIcon',
['app' => $app]) . '?v=' . $cacheBusterValue,
diff --git a/apps/theming/lib/IconBuilder.php b/apps/theming/lib/IconBuilder.php
index 55e0a1e930cbf..63f4559970dfe 100644
--- a/apps/theming/lib/IconBuilder.php
+++ b/apps/theming/lib/IconBuilder.php
@@ -1,4 +1,5 @@
' .
- '';
+ $background = ''
+ . '';
// resize svg magic as this seems broken in Imagemagick
if ($mime === 'image/svg+xml' || substr($appIconContent, 0, 4) === '';
+ $radioButtonIcon = '';
return base64_encode($radioButtonIcon);
}
diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php
index 6fb9be64ad326..39debcef45f63 100644
--- a/apps/theming/tests/Controller/ThemingControllerTest.php
+++ b/apps/theming/tests/Controller/ThemingControllerTest.php
@@ -114,8 +114,8 @@ public function testUpdateStylesheetSuccess(string $setting, string $value, stri
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => $message,
],
'status' => 'success',
@@ -172,8 +172,8 @@ public function testUpdateStylesheetError(string $setting, string $value, string
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => $message,
],
'status' => 'error',
@@ -203,8 +203,8 @@ public function testUpdateLogoNoData(): void {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => 'No file uploaded',
],
'status' => 'failure',
@@ -233,8 +233,8 @@ public function testUploadInvalidUploadKey(): void {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => 'Invalid key',
],
'status' => 'failure',
@@ -282,8 +282,8 @@ public function testUploadSVGFaviconWithoutImagemagick(): void {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => 'Unsupported image type',
],
'status' => 'failure'
@@ -323,8 +323,8 @@ public function testUpdateLogoInvalidMimeType(): void {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => 'Unsupported image type',
],
'status' => 'failure'
@@ -387,8 +387,8 @@ public function testUpdateLogoNormalLogoUpload(string $mimeType, bool $folderExi
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'name' => 'logo.svg',
'message' => 'Saved',
'url' => 'imageUrl',
@@ -436,8 +436,8 @@ public function testUpdateLogoLoginScreenUpload(): void {
->willReturn('imageUrl');
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'name' => 'logo.svg',
'message' => 'Saved',
'url' => 'imageUrl',
@@ -481,8 +481,8 @@ public function testUpdateLogoLoginScreenUploadWithInvalidImage(): void {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => 'Unsupported image type',
],
'status' => 'failure'
@@ -532,8 +532,8 @@ public function testUpdateLogoLoginScreenUploadWithInvalidImageUpload(int $error
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => $expectedErrorMessage,
],
'status' => 'failure'
@@ -571,8 +571,8 @@ public function testUpdateLogoUploadWithInvalidImageUpload($error, $expectedErro
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => $expectedErrorMessage
],
'status' => 'failure'
@@ -596,8 +596,8 @@ public function testUndo(): void {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'value' => 'MyValue',
'message' => 'Saved'
],
@@ -631,8 +631,8 @@ public function testUndoDelete(string $value, string $filename): void {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'value' => $value,
'message' => 'Saved',
],
@@ -748,8 +748,8 @@ public function testGetManifest(bool $standalone): void {
$response = new JSONResponse([
'name' => 'Nextcloud',
'start_url' => 'localhost',
- 'icons' =>
- [
+ 'icons'
+ => [
[
'src' => 'touchicon?v=0',
'type' => 'image/png',
diff --git a/apps/theming/tests/Themes/DarkHighContrastThemeTest.php b/apps/theming/tests/Themes/DarkHighContrastThemeTest.php
index ff4808149adbf..d03e8b133003f 100644
--- a/apps/theming/tests/Themes/DarkHighContrastThemeTest.php
+++ b/apps/theming/tests/Themes/DarkHighContrastThemeTest.php
@@ -1,4 +1,5 @@
notificationManager->expects($this->once())
->method('markProcessed')
->with($this->callback(function (INotification $notification) {
- return $notification->getUser() === $this->testUID &&
- $notification->getObjectType() === 'create' &&
- $notification->getObjectId() === 'codes' &&
- $notification->getApp() === 'twofactor_backupcodes';
+ return $notification->getUser() === $this->testUID
+ && $notification->getObjectType() === 'create'
+ && $notification->getObjectId() === 'codes'
+ && $notification->getApp() === 'twofactor_backupcodes';
}));
// Create codes
diff --git a/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php b/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php
index 16a0e8012f755..6b16289425815 100644
--- a/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php
@@ -154,12 +154,12 @@ public function testNotificationSend(): void {
$this->notificationManager->expects($this->once())
->method('notify')
->with($this->callback(function (INotification $n) {
- return $n->getApp() === 'twofactor_backupcodes' &&
- $n->getUser() === 'validUID' &&
- $n->getDateTime()->getTimestamp() === 10000000 &&
- $n->getObjectType() === 'create' &&
- $n->getObjectId() === 'codes' &&
- $n->getSubject() === 'create_backupcodes';
+ return $n->getApp() === 'twofactor_backupcodes'
+ && $n->getUser() === 'validUID'
+ && $n->getDateTime()->getTimestamp() === 10000000
+ && $n->getObjectType() === 'create'
+ && $n->getObjectId() === 'codes'
+ && $n->getSubject() === 'create_backupcodes';
}));
self::invokePrivate($this->job, 'run', [['uid' => 'validUID']]);
@@ -198,11 +198,11 @@ public function testNotificationNotSendForDisabledUser(): void {
$this->notificationManager->expects($this->once())
->method('markProcessed')
->with($this->callback(function (INotification $n) {
- return $n->getApp() === 'twofactor_backupcodes' &&
- $n->getUser() === 'validUID' &&
- $n->getObjectType() === 'create' &&
- $n->getObjectId() === 'codes' &&
- $n->getSubject() === 'create_backupcodes';
+ return $n->getApp() === 'twofactor_backupcodes'
+ && $n->getUser() === 'validUID'
+ && $n->getObjectType() === 'create'
+ && $n->getObjectId() === 'codes'
+ && $n->getSubject() === 'create_backupcodes';
}));
$this->notificationManager->expects($this->never())
diff --git a/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php b/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php
index fc80344ac57af..229d8df05d350 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php
@@ -48,10 +48,10 @@ public function testHandleCodesGeneratedEvent(): void {
$this->notificationManager->expects($this->once())
->method('markProcessed')
->with($this->callback(function (INotification $n) {
- return $n->getUser() === 'fritz' &&
- $n->getApp() === 'twofactor_backupcodes' &&
- $n->getObjectType() === 'create' &&
- $n->getObjectId() === 'codes';
+ return $n->getUser() === 'fritz'
+ && $n->getApp() === 'twofactor_backupcodes'
+ && $n->getObjectType() === 'create'
+ && $n->getObjectId() === 'codes';
}));
$this->listener->handle($event);
diff --git a/apps/updatenotification/lib/AppInfo/Application.php b/apps/updatenotification/lib/AppInfo/Application.php
index 56012667bb4b9..2a1678da5db0a 100644
--- a/apps/updatenotification/lib/AppInfo/Application.php
+++ b/apps/updatenotification/lib/AppInfo/Application.php
@@ -63,8 +63,8 @@ public function boot(IBootContext $context): void {
return;
}
- if (!$appManager->isEnabledForUser('notifications') &&
- $groupManager->isAdmin($user->getUID())) {
+ if (!$appManager->isEnabledForUser('notifications')
+ && $groupManager->isAdmin($user->getUID())) {
try {
$updateChecker = $container->get(UpdateChecker::class);
} catch (ContainerExceptionInterface $e) {
diff --git a/apps/updatenotification/templates/empty.php b/apps/updatenotification/templates/empty.php
index 47473ebab9dad..6e020c591edea 100644
--- a/apps/updatenotification/templates/empty.php
+++ b/apps/updatenotification/templates/empty.php
@@ -1,4 +1,5 @@
connection->getConnectionResource();
try {
// try PASSWD extended operation first
- return @$this->invokeLDAPMethod('exopPasswd', $userDN, '', $password) ||
- @$this->invokeLDAPMethod('modReplace', $userDN, $password);
+ return @$this->invokeLDAPMethod('exopPasswd', $userDN, '', $password)
+ || @$this->invokeLDAPMethod('modReplace', $userDN, $password);
} catch (ConstraintViolationException $e) {
throw new HintException('Password change rejected.', Util::getL10N('user_ldap')->t('Password change rejected. Hint: %s', $e->getMessage()), (int)$e->getCode());
}
@@ -1811,8 +1811,8 @@ public function formatGuid2ForFilterUser(string $guid): string {
* user. Instead we write a log message.
*/
$this->logger->info(
- 'Passed string does not resemble a valid GUID. Known UUID ' .
- '({uuid}) probably does not match UUID configuration.',
+ 'Passed string does not resemble a valid GUID. Known UUID '
+ . '({uuid}) probably does not match UUID configuration.',
['app' => 'user_ldap', 'uuid' => $guid]
);
return $guid;
diff --git a/apps/user_ldap/lib/AccessFactory.php b/apps/user_ldap/lib/AccessFactory.php
index c5c8ca17e417d..da114c467a7ef 100644
--- a/apps/user_ldap/lib/AccessFactory.php
+++ b/apps/user_ldap/lib/AccessFactory.php
@@ -1,4 +1,5 @@
isDNPartOfBase($knownDn, $access->getConnection()->ldapBaseUsers)) {
$output->writeln(
- "User $knownDn is not in one of the configured user bases: " .
- implode(',', $access->getConnection()->ldapBaseUsers) .
- '.'
+ "User $knownDn is not in one of the configured user bases: "
+ . implode(',', $access->getConnection()->ldapBaseUsers)
+ . '.'
);
}
diff --git a/apps/user_ldap/lib/Connection.php b/apps/user_ldap/lib/Connection.php
index b25a2e72b2b07..336179ac34163 100644
--- a/apps/user_ldap/lib/Connection.php
+++ b/apps/user_ldap/lib/Connection.php
@@ -661,8 +661,8 @@ private function establishConnection(): ?bool {
$this->doConnect($this->configuration->ldapBackupHost ?? '', $this->configuration->ldapBackupPort ?? '');
$this->bindResult = [];
$bindStatus = $this->bind();
- $error = $this->ldap->isResource($this->ldapConnectionRes) ?
- $this->ldap->errno($this->ldapConnectionRes) : -1;
+ $error = $this->ldap->isResource($this->ldapConnectionRes)
+ ? $this->ldap->errno($this->ldapConnectionRes) : -1;
if ($bindStatus && $error === 0 && !$forceBackupHost) {
//when bind to backup server succeeded and failed to main server,
//skip contacting it for 15min
diff --git a/apps/user_ldap/lib/ConnectionFactory.php b/apps/user_ldap/lib/ConnectionFactory.php
index fbc30f6b73f9f..dd0ad31920a25 100644
--- a/apps/user_ldap/lib/ConnectionFactory.php
+++ b/apps/user_ldap/lib/ConnectionFactory.php
@@ -1,4 +1,5 @@
access->escapeFilterPart($search, true);
- $isMemberUid =
- ($this->ldapGroupMemberAssocAttr === 'memberuid' ||
- $this->ldapGroupMemberAssocAttr === 'zimbramailforwardingaddress');
+ $isMemberUid
+ = ($this->ldapGroupMemberAssocAttr === 'memberuid'
+ || $this->ldapGroupMemberAssocAttr === 'zimbramailforwardingaddress');
//we need to apply the search filter
//alternatives that need to be checked:
@@ -1199,10 +1199,10 @@ protected function filterValidGroups(array $listOfGroups): array {
* compared with GroupInterface::CREATE_GROUP etc.
*/
public function implementsActions($actions): bool {
- return (bool)((GroupInterface::COUNT_USERS |
- GroupInterface::DELETE_GROUP |
- GroupInterface::IS_ADMIN |
- $this->groupPluginManager->getImplementedActions()) & $actions);
+ return (bool)((GroupInterface::COUNT_USERS
+ | GroupInterface::DELETE_GROUP
+ | GroupInterface::IS_ADMIN
+ | $this->groupPluginManager->getImplementedActions()) & $actions);
}
/**
diff --git a/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php b/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php
index d4a8f332362ae..8b63d54aa667c 100644
--- a/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php
+++ b/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php
@@ -1,4 +1,5 @@
getOffset() + $this->getChunkSize();
+ $newOffset = $reset ? 0
+ : $this->getOffset() + $this->getChunkSize();
$this->ocConfig->setAppValue('user_ldap', 'cleanUpJobOffset', (string)$newOffset);
}
diff --git a/apps/user_ldap/lib/Migration/UUIDFix.php b/apps/user_ldap/lib/Migration/UUIDFix.php
index 309910cdf0cc6..e853f3bba66fc 100644
--- a/apps/user_ldap/lib/Migration/UUIDFix.php
+++ b/apps/user_ldap/lib/Migration/UUIDFix.php
@@ -1,4 +1,5 @@
connection->getFromCache($cacheKey);
// honoring profile disabled in config.php and check if user profile was refreshed
- if ($this->config->getSystemValueBool('profile.enabled', true) &&
- ($profileCached === null) && // no cache or TTL not expired
- !$this->wasRefreshed('profile')) {
+ if ($this->config->getSystemValueBool('profile.enabled', true)
+ && ($profileCached === null) // no cache or TTL not expired
+ && !$this->wasRefreshed('profile')) {
// check current data
$profileValues = [];
//User Profile Field - Phone number
diff --git a/apps/user_ldap/lib/UserPluginManager.php b/apps/user_ldap/lib/UserPluginManager.php
index bbcf4157016b4..ed87fea6fdeb1 100644
--- a/apps/user_ldap/lib/UserPluginManager.php
+++ b/apps/user_ldap/lib/UserPluginManager.php
@@ -1,4 +1,5 @@
access->userManager->getAttributes();
$users = $this->access->fetchUsersByLoginName($loginName, $attrs);
if (count($users) < 1) {
- throw new NotOnLDAP('No user available for the given login name on ' .
- $this->access->connection->ldapHost . ':' . $this->access->connection->ldapPort);
+ throw new NotOnLDAP('No user available for the given login name on '
+ . $this->access->connection->ldapHost . ':' . $this->access->connection->ldapPort);
}
return $users[0];
}
@@ -142,8 +142,8 @@ public function checkPassword($uid, $password) {
if (!$user instanceof User) {
$this->logger->warning(
- 'LDAP Login: Could not get user object for DN ' . $dn .
- '. Maybe the LDAP entry has no set display name attribute?',
+ 'LDAP Login: Could not get user object for DN ' . $dn
+ . '. Maybe the LDAP entry has no set display name attribute?',
['app' => 'user_ldap']
);
return false;
@@ -177,8 +177,8 @@ public function setPassword($uid, $password) {
$user = $this->access->userManager->get($uid);
if (!$user instanceof User) {
- throw new \Exception('LDAP setPassword: Could not get user object for uid ' . $uid .
- '. Maybe the LDAP entry has no set display name attribute?');
+ throw new \Exception('LDAP setPassword: Could not get user object for uid ' . $uid
+ . '. Maybe the LDAP entry has no set display name attribute?');
}
if ($user->getUsername() !== false && $this->access->setPassword($user->getDN(), $password)) {
$ldapDefaultPPolicyDN = $this->access->connection->ldapDefaultPPolicyDN;
diff --git a/apps/user_ldap/lib/User_Proxy.php b/apps/user_ldap/lib/User_Proxy.php
index 2739cdeba67d9..0d41f495ce9ba 100644
--- a/apps/user_ldap/lib/User_Proxy.php
+++ b/apps/user_ldap/lib/User_Proxy.php
@@ -415,11 +415,11 @@ public function getDisabledUserList(?int $limit = null, int $offset = 0, string
if ($search !== '') {
$disabledUsers = array_filter(
$disabledUsers,
- fn (OfflineUser $user): bool =>
- mb_stripos($user->getOCName(), $search) !== false ||
- mb_stripos($user->getUID(), $search) !== false ||
- mb_stripos($user->getDisplayName(), $search) !== false ||
- mb_stripos($user->getEmail(), $search) !== false,
+ fn (OfflineUser $user): bool
+ => mb_stripos($user->getOCName(), $search) !== false
+ || mb_stripos($user->getUID(), $search) !== false
+ || mb_stripos($user->getDisplayName(), $search) !== false
+ || mb_stripos($user->getEmail(), $search) !== false,
);
}
return array_map(
diff --git a/apps/user_ldap/lib/Wizard.php b/apps/user_ldap/lib/Wizard.php
index 6fe6c0c2906cb..15a9f9cb2125d 100644
--- a/apps/user_ldap/lib/Wizard.php
+++ b/apps/user_ldap/lib/Wizard.php
@@ -260,8 +260,8 @@ public function detectEmailAttribute() {
$this->applyFind('ldap_email_attr', $winner);
if ($writeLog) {
$this->logger->info(
- 'The mail attribute has automatically been reset, ' .
- 'because the original value did not return any results.',
+ 'The mail attribute has automatically been reset, '
+ . 'because the original value did not return any results.',
['app' => 'user_ldap']
);
}
@@ -1209,8 +1209,8 @@ private function determineFeature(array $objectclasses, string $attr, string $db
//When looking for objectclasses, testing few entries is sufficient,
$dig = 3;
- $availableFeatures =
- $this->cumulativeSearchOnAttribute($objectclasses, $attr,
+ $availableFeatures
+ = $this->cumulativeSearchOnAttribute($objectclasses, $attr,
$dig, $maxEntryObjC);
if (is_array($availableFeatures)
&& count($availableFeatures) > 0) {
diff --git a/apps/user_ldap/lib/WizardResult.php b/apps/user_ldap/lib/WizardResult.php
index 09aadd2b781eb..d6fd67d420402 100644
--- a/apps/user_ldap/lib/WizardResult.php
+++ b/apps/user_ldap/lib/WizardResult.php
@@ -20,7 +20,7 @@ public function addChange($key, $value) {
$this->changes[$key] = $value;
}
-
+
public function markChange() {
$this->markedChange = true;
}
diff --git a/apps/user_ldap/tests/Integration/Bootstrap.php b/apps/user_ldap/tests/Integration/Bootstrap.php
index 1e270aa6f8a1f..ef0909d4bea71 100644
--- a/apps/user_ldap/tests/Integration/Bootstrap.php
+++ b/apps/user_ldap/tests/Integration/Bootstrap.php
@@ -1,4 +1,5 @@
getIsUserDefined() &&
- \in_array($userStatus->getStatus(), StatusService::PERSISTENT_STATUSES, true)) {
+ if ($userStatus->getIsUserDefined()
+ && \in_array($userStatus->getStatus(), StatusService::PERSISTENT_STATUSES, true)) {
return;
}
diff --git a/apps/webhook_listeners/lib/Service/PHPMongoQuery.php b/apps/webhook_listeners/lib/Service/PHPMongoQuery.php
index d2668d1764487..ecb8e819780a8 100644
--- a/apps/webhook_listeners/lib/Service/PHPMongoQuery.php
+++ b/apps/webhook_listeners/lib/Service/PHPMongoQuery.php
@@ -41,7 +41,7 @@ public static function find(array $query, array $documents, array $options = [])
}
return $ret;
}
-
+
/**
* Execute a Mongo query on a document
*
@@ -59,14 +59,14 @@ public static function executeQuery($query, array &$document, array $options = [
if ($options['_debug'] && $options['_shouldLog']) {
$options['logger']->debug('executeQuery called', ['query' => $query, 'document' => $document, 'options' => $options]);
}
-
+
if (!is_array($query)) {
return (bool)$query;
}
-
+
return self::_executeQuery($query, $document, $options);
}
-
+
/**
* Internal execute query
*
@@ -145,7 +145,7 @@ private static function _executeQuery(array $query, array &$document, array $opt
return false;
}
}
-
+
/**
* Execute a query object on an element
*
@@ -163,7 +163,7 @@ private static function _executeQueryOnElement(array $query, string $element, ar
}
return true;
}
-
+
/**
* Check if an operator is equal to a value
*
@@ -184,7 +184,7 @@ private static function _isEqual($v, $operatorValue): bool {
}
return $operatorValue === $v;
}
-
+
/**
* Execute a Mongo Operator on an element
*
@@ -199,11 +199,11 @@ private static function _executeOperatorOnElement(string $operator, $operatorVal
if ($options['_debug'] && $options['_shouldLog']) {
$options['logger']->debug('_executeOperatorOnElement called', ['operator' => $operator, 'operatorValue' => $operatorValue, 'element' => $element, 'document' => $document]);
}
-
+
if ($operator === '$not') {
return !self::_executeQueryOnElement($operatorValue, $element, $document, $options);
}
-
+
$elementSpecifier = explode('.', $element);
$v = & $document;
$exists = true;
@@ -230,7 +230,7 @@ private static function _executeOperatorOnElement(string $operator, $operatorVal
break;
}
}
-
+
switch ($operator) {
case '$all':
if (!$exists) {
@@ -287,7 +287,7 @@ private static function _executeOperatorOnElement(string $operator, $operatorVal
return count(array_intersect($v, $operatorValue)) === 0;
}
return !in_array($v, $operatorValue);
-
+
case '$exists': return ($operatorValue && $exists) || (!$operatorValue && !$exists);
case '$mod':
if (!$exists) {
@@ -300,12 +300,12 @@ private static function _executeOperatorOnElement(string $operator, $operatorVal
throw new Exception('$mod requires two parameters in array: divisor and remainder');
}
return $v % $operatorValue[0] === $operatorValue[1];
-
+
default:
if (empty($options['unknownOperatorCallback']) || !is_callable($options['unknownOperatorCallback'])) {
throw new Exception('Operator ' . $operator . ' is unknown');
}
-
+
$res = call_user_func($options['unknownOperatorCallback'], $operator, $operatorValue, $element, $document);
if ($res === null) {
throw new Exception('Operator ' . $operator . ' is unknown');
@@ -317,7 +317,7 @@ private static function _executeOperatorOnElement(string $operator, $operatorVal
}
throw new Exception('Didn\'t return in switch');
}
-
+
/**
* Get the fields this query depends on
*
diff --git a/apps/workflowengine/appinfo/routes.php b/apps/workflowengine/appinfo/routes.php
index ffafd0b91a872..48e5ed2ef4e63 100644
--- a/apps/workflowengine/appinfo/routes.php
+++ b/apps/workflowengine/appinfo/routes.php
@@ -1,4 +1,5 @@
l->t('The given operator is invalid'), 1);
}
- if (in_array($operator, ['matches', '!matches']) &&
- @preg_match($value, null) === false) {
+ if (in_array($operator, ['matches', '!matches'])
+ && @preg_match($value, null) === false) {
throw new \UnexpectedValueException($this->l->t('The given regular expression is invalid'), 2);
}
}
diff --git a/apps/workflowengine/lib/Check/FileMimeType.php b/apps/workflowengine/lib/Check/FileMimeType.php
index 3062994c6baf4..a8dfa64528e61 100644
--- a/apps/workflowengine/lib/Check/FileMimeType.php
+++ b/apps/workflowengine/lib/Check/FileMimeType.php
@@ -1,4 +1,5 @@
cacheAndReturnMimeType($this->storage->getId(), $this->path, $cacheEntry->getMimeType());
}
- if ($this->storage->file_exists($this->path) &&
- $this->storage->filesize($this->path) &&
- $this->storage->instanceOfStorage(Local::class)
+ if ($this->storage->file_exists($this->path)
+ && $this->storage->filesize($this->path)
+ && $this->storage->instanceOfStorage(Local::class)
) {
$path = $this->storage->getLocalFile($this->path);
$mimeType = $this->mimeTypeDetector->detectContent($path);
@@ -125,12 +126,12 @@ protected function getActualValue() {
*/
protected function isWebDAVRequest() {
return substr($this->request->getScriptName(), 0 - strlen('/remote.php')) === '/remote.php' && (
- $this->request->getPathInfo() === '/webdav' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/webdav/') ||
- $this->request->getPathInfo() === '/dav/files' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/dav/files/') ||
- $this->request->getPathInfo() === '/dav/uploads' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/dav/uploads/')
+ $this->request->getPathInfo() === '/webdav'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/webdav/')
+ || $this->request->getPathInfo() === '/dav/files'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/dav/files/')
+ || $this->request->getPathInfo() === '/dav/uploads'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/dav/uploads/')
);
}
@@ -139,8 +140,8 @@ protected function isWebDAVRequest() {
*/
protected function isPublicWebDAVRequest() {
return substr($this->request->getScriptName(), 0 - strlen('/public.php')) === '/public.php' && (
- $this->request->getPathInfo() === '/webdav' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/webdav/')
+ $this->request->getPathInfo() === '/webdav'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/webdav/')
);
}
diff --git a/apps/workflowengine/lib/Check/FileSize.php b/apps/workflowengine/lib/Check/FileSize.php
index c1ee1d85ae965..5ee03ccc9cf7c 100644
--- a/apps/workflowengine/lib/Check/FileSize.php
+++ b/apps/workflowengine/lib/Check/FileSize.php
@@ -1,4 +1,5 @@
request->getScriptName(), 0 - strlen('/remote.php')) === '/remote.php' && (
- $this->request->getPathInfo() === '/webdav' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/webdav/') ||
- $this->request->getPathInfo() === '/dav/files' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/dav/files/')
+ $this->request->getPathInfo() === '/webdav'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/webdav/')
+ || $this->request->getPathInfo() === '/dav/files'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/dav/files/')
);
}
}
diff --git a/apps/workflowengine/lib/Check/RequestUserAgent.php b/apps/workflowengine/lib/Check/RequestUserAgent.php
index 47db1bb0c68f1..572ef56707463 100644
--- a/apps/workflowengine/lib/Check/RequestUserAgent.php
+++ b/apps/workflowengine/lib/Check/RequestUserAgent.php
@@ -1,4 +1,5 @@
isSameColorComponent($firstColor['red'], $secondColor['red'], $allowedDelta) &&
- $this->isSameColorComponent($firstColor['green'], $secondColor['green'], $allowedDelta) &&
- $this->isSameColorComponent($firstColor['blue'], $secondColor['blue'], $allowedDelta) &&
- $this->isSameColorComponent($firstColor['alpha'], $secondColor['alpha'], $allowedDelta)) {
+ if ($this->isSameColorComponent($firstColor['red'], $secondColor['red'], $allowedDelta)
+ && $this->isSameColorComponent($firstColor['green'], $secondColor['green'], $allowedDelta)
+ && $this->isSameColorComponent($firstColor['blue'], $secondColor['blue'], $allowedDelta)
+ && $this->isSameColorComponent($firstColor['alpha'], $secondColor['alpha'], $allowedDelta)) {
return true;
}
@@ -251,8 +252,8 @@ private function isSameColor(array $firstColor, array $secondColor, int $allowed
}
private function isSameColorComponent(int $firstColorComponent, int $secondColorComponent, int $allowedDelta) {
- if ($firstColorComponent >= ($secondColorComponent - $allowedDelta) &&
- $firstColorComponent <= ($secondColorComponent + $allowedDelta)) {
+ if ($firstColorComponent >= ($secondColorComponent - $allowedDelta)
+ && $firstColorComponent <= ($secondColorComponent + $allowedDelta)) {
return true;
}
diff --git a/build/integration/features/bootstrap/BasicStructure.php b/build/integration/features/bootstrap/BasicStructure.php
index a8c232d6fe744..ba219d5c60216 100644
--- a/build/integration/features/bootstrap/BasicStructure.php
+++ b/build/integration/features/bootstrap/BasicStructure.php
@@ -1,4 +1,5 @@
response = $e->getResponse();
}
}
-
-
+
+
/**
* @When Dropping file :path with :content as :nickName
*/
diff --git a/build/integration/features/bootstrap/LDAPContext.php b/build/integration/features/bootstrap/LDAPContext.php
index f0181b36c71eb..986dced77a16b 100644
--- a/build/integration/features/bootstrap/LDAPContext.php
+++ b/build/integration/features/bootstrap/LDAPContext.php
@@ -1,4 +1,5 @@
getRowsHash());
- if (!array_key_exists('uid_file_owner', $expectedFields) &&
- array_key_exists('uid_owner', $expectedFields)) {
+ if (!array_key_exists('uid_file_owner', $expectedFields)
+ && array_key_exists('uid_owner', $expectedFields)) {
$expectedFields['uid_file_owner'] = $expectedFields['uid_owner'];
}
- if (!array_key_exists('displayname_file_owner', $expectedFields) &&
- array_key_exists('displayname_owner', $expectedFields)) {
+ if (!array_key_exists('displayname_file_owner', $expectedFields)
+ && array_key_exists('displayname_owner', $expectedFields)) {
$expectedFields['displayname_file_owner'] = $expectedFields['displayname_owner'];
}
- if (array_key_exists('share_type', $expectedFields) &&
- $expectedFields['share_type'] == 10 /* IShare::TYPE_ROOM */ &&
- array_key_exists('share_with', $expectedFields)) {
+ if (array_key_exists('share_type', $expectedFields)
+ && $expectedFields['share_type'] == 10 /* IShare::TYPE_ROOM */
+ && array_key_exists('share_with', $expectedFields)) {
if ($expectedFields['share_with'] === 'private_conversation') {
$expectedFields['share_with'] = 'REGEXP /^private_conversation_[0-9a-f]{6}$/';
} else {
diff --git a/build/integration/features/bootstrap/SharingContext.php b/build/integration/features/bootstrap/SharingContext.php
index cc6c243b4f10b..fe4d3bb6bf149 100644
--- a/build/integration/features/bootstrap/SharingContext.php
+++ b/build/integration/features/bootstrap/SharingContext.php
@@ -1,4 +1,5 @@
getRowsHash() as $rowDisplayName => $row) {
foreach ($tags as $key => $tag) {
if (
- $tag['display-name'] === $rowDisplayName &&
- $tag['user-visible'] === $row[0] &&
- $tag['user-assignable'] === $row[1]
+ $tag['display-name'] === $rowDisplayName
+ && $tag['user-visible'] === $row[0]
+ && $tag['user-assignable'] === $row[1]
) {
unset($tags[$key]);
}
diff --git a/build/integration/features/bootstrap/TalkContext.php b/build/integration/features/bootstrap/TalkContext.php
index fe248e1af7c75..6f351c30ccf25 100644
--- a/build/integration/features/bootstrap/TalkContext.php
+++ b/build/integration/features/bootstrap/TalkContext.php
@@ -1,4 +1,5 @@
filterAuthors($authors);
-
+
if ($gitRoot) {
$authors = array_map([$this, 'checkCoreMailMap'], $authors);
$authors = array_unique($authors);
diff --git a/core/Command/App/Disable.php b/core/Command/App/Disable.php
index a0a20ef21dd70..121ad3f010c88 100644
--- a/core/Command/App/Disable.php
+++ b/core/Command/App/Disable.php
@@ -1,4 +1,5 @@
rootView->is_dir($oldRoot . '/files_encryption') &&
- $this->targetExists($newRoot . '/files_encryption') === false
+ $this->rootView->is_dir($oldRoot . '/files_encryption')
+ && $this->targetExists($newRoot . '/files_encryption') === false
) {
$this->rootView->rename($oldRoot . '/files_encryption', $newRoot . '/files_encryption');
}
@@ -183,8 +183,8 @@ protected function moveUserEncryptionFolder($user, $oldRoot, $newRoot) {
$source = $oldRoot . '/' . $user . '/files_encryption';
$target = $newRoot . '/' . $user . '/files_encryption';
if (
- $this->rootView->is_dir($source) &&
- $this->targetExists($target) === false
+ $this->rootView->is_dir($source)
+ && $this->targetExists($target) === false
) {
$this->prepareParentFolder($newRoot . '/' . $user);
$this->rootView->rename($source, $target);
diff --git a/core/Command/Encryption/EncryptAll.php b/core/Command/Encryption/EncryptAll.php
index 684591f4586b5..f2c991471b6db 100644
--- a/core/Command/Encryption/EncryptAll.php
+++ b/core/Command/Encryption/EncryptAll.php
@@ -1,4 +1,5 @@
rootView->file_get_contents($path);
@@ -127,10 +127,10 @@ private function traverseFileKeys(string $folder, OutputInterface $output): void
return (substr($haystack, -$length) === $needle);
};
- if ($node['name'] === 'fileKey' ||
- $endsWith($node['name'], '.privateKey') ||
- $endsWith($node['name'], '.publicKey') ||
- $endsWith($node['name'], '.shareKey')) {
+ if ($node['name'] === 'fileKey'
+ || $endsWith($node['name'], '.privateKey')
+ || $endsWith($node['name'], '.publicKey')
+ || $endsWith($node['name'], '.shareKey')) {
$path = $folder . '/' . $node['name'];
$content = $this->rootView->file_get_contents($path);
diff --git a/core/Command/Group/AddUser.php b/core/Command/Group/AddUser.php
index 1f144b1389321..999113390af99 100644
--- a/core/Command/Group/AddUser.php
+++ b/core/Command/Group/AddUser.php
@@ -1,4 +1,5 @@
printErrors($output, $errors);
// ignore the OS X setup warning
- if (count($errors) !== 1 ||
- (string)$errors[0]['error'] !== 'Mac OS X is not supported and Nextcloud will not work properly on this platform. Use it at your own risk!') {
+ if (count($errors) !== 1
+ || (string)$errors[0]['error'] !== 'Mac OS X is not supported and Nextcloud will not work properly on this platform. Use it at your own risk!') {
return 1;
}
}
diff --git a/core/Command/Maintenance/UpdateTheme.php b/core/Command/Maintenance/UpdateTheme.php
index f819b9c8e5849..3fbcb546cca09 100644
--- a/core/Command/Maintenance/UpdateTheme.php
+++ b/core/Command/Maintenance/UpdateTheme.php
@@ -1,4 +1,5 @@
richTextFormatter->richToParsed($description, $descriptionParameters);
}
$output->writeln(
- "\t\t" .
- ($styleTag !== null ? "<{$styleTag}>" : '') .
- "{$emoji} " .
- ($check->getName() ?? $check::class) .
- ($description !== null ? ': ' . $description : '') .
- ($styleTag !== null ? "{$styleTag}>" : ''),
+ "\t\t"
+ . ($styleTag !== null ? "<{$styleTag}>" : '')
+ . "{$emoji} "
+ . ($check->getName() ?? $check::class)
+ . ($description !== null ? ': ' . $description : '')
+ . ($styleTag !== null ? "{$styleTag}>" : ''),
$verbosity
);
}
diff --git a/core/Command/SystemTag/Add.php b/core/Command/SystemTag/Add.php
index 92ed42c37bccf..df8b507b07d3f 100644
--- a/core/Command/SystemTag/Add.php
+++ b/core/Command/SystemTag/Add.php
@@ -1,4 +1,5 @@
config->setAppValue('core', 'ai.taskprocessing_type_preferences', json_encode($taskTypeSettings));
$this->writeArrayInOutputFormat($input, $output, $taskTypeSettings);
return 0;
} catch (\JsonException $e) {
throw new \JsonException('Error in TaskType DB entry');
}
-
+
}
}
diff --git a/core/Command/TaskProcessing/GetCommand.php b/core/Command/TaskProcessing/GetCommand.php
index a61ddbe1621de..5c4fd17f2f8c3 100644
--- a/core/Command/TaskProcessing/GetCommand.php
+++ b/core/Command/TaskProcessing/GetCommand.php
@@ -1,4 +1,5 @@
config->getSystemValue('trusted_domains', []);
if (empty($trustedDomains)) {
$output->write(
- 'The setting "trusted_domains" could not be ' .
- 'set automatically by the upgrade script, ' .
- 'please set it manually'
+ 'The setting "trusted_domains" could not be '
+ . 'set automatically by the upgrade script, '
+ . 'please set it manually'
);
}
}
diff --git a/core/Command/User/AuthTokens/Delete.php b/core/Command/User/AuthTokens/Delete.php
index f2c75a8ad999d..2047d2eae2a8d 100644
--- a/core/Command/User/AuthTokens/Delete.php
+++ b/core/Command/User/AuthTokens/Delete.php
@@ -1,4 +1,5 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/Controller/AvatarController.php b/core/Controller/AvatarController.php
index 4e7a2f8714aab..b577b2fd46090 100644
--- a/core/Controller/AvatarController.php
+++ b/core/Controller/AvatarController.php
@@ -193,8 +193,8 @@ public function postAvatar(?string $path = null): JSONResponse {
}
} elseif (!is_null($files)) {
if (
- $files['error'][0] === 0 &&
- is_uploaded_file($files['tmp_name'][0])
+ $files['error'][0] === 0
+ && is_uploaded_file($files['tmp_name'][0])
) {
if ($files['size'][0] > 20 * 1024 * 1024) {
return new JSONResponse(
diff --git a/core/Controller/ClientFlowLoginController.php b/core/Controller/ClientFlowLoginController.php
index 57ea20071b623..4464af890c43d 100644
--- a/core/Controller/ClientFlowLoginController.php
+++ b/core/Controller/ClientFlowLoginController.php
@@ -1,4 +1,5 @@
appName,
'error',
[
- 'errors' =>
- [
+ 'errors'
+ => [
[
'error' => 'Access Forbidden',
'hint' => 'Invalid request',
diff --git a/core/Controller/ContactsMenuController.php b/core/Controller/ContactsMenuController.php
index f4ded1ed42b00..d90ee8a1c612f 100644
--- a/core/Controller/ContactsMenuController.php
+++ b/core/Controller/ContactsMenuController.php
@@ -1,4 +1,5 @@
session->close();
if (
- $this->request->getServerProtocol() === 'https' &&
- !$this->request->isUserAgent([Request::USER_AGENT_CHROME, Request::USER_AGENT_ANDROID_MOBILE_CHROME])
+ $this->request->getServerProtocol() === 'https'
+ && !$this->request->isUserAgent([Request::USER_AGENT_CHROME, Request::USER_AGENT_ANDROID_MOBILE_CHROME])
) {
$response->addHeader('Clear-Site-Data', '"cache", "storage"');
}
diff --git a/core/Controller/NavigationController.php b/core/Controller/NavigationController.php
index 5fc929b4eb486..017061ef979bc 100644
--- a/core/Controller/NavigationController.php
+++ b/core/Controller/NavigationController.php
@@ -1,4 +1,5 @@
true,
'length' => 200,
]);
-
+
$table->setPrimaryKey(['id']);
$table->addIndex(['group_id'], 'admindel_groupid_idx');
return $schema;
diff --git a/core/Migrations/Version25000Date20220515204012.php b/core/Migrations/Version25000Date20220515204012.php
index 2ec96bc51758a..7f7c6b6cee23a 100644
--- a/core/Migrations/Version25000Date20220515204012.php
+++ b/core/Migrations/Version25000Date20220515204012.php
@@ -1,4 +1,5 @@
getTable('properties');
- if ($tableProperties->hasIndex('property_index') &&
- $tableProperties->hasIndex('properties_path_index')) {
+ if ($tableProperties->hasIndex('property_index')
+ && $tableProperties->hasIndex('properties_path_index')) {
$tableProperties->dropIndex('property_index');
}
diff --git a/core/Migrations/Version30000Date20240906095113.php b/core/Migrations/Version30000Date20240906095113.php
index bab03241db4c8..7c3efe41bc38d 100644
--- a/core/Migrations/Version30000Date20240906095113.php
+++ b/core/Migrations/Version30000Date20240906095113.php
@@ -31,7 +31,7 @@ public function changeSchema(IOutput $output, Closure $schemaClosure, array $opt
if ($schema->hasTable('taskprocessing_tasks')) {
$table = $schema->getTable('taskprocessing_tasks');
$column = $table->getColumn('error_message');
-
+
if ($column->getLength() < 4000) {
$column->setLength(4000);
}
diff --git a/lib/base.php b/lib/base.php
index 876d62c359600..8613ab62ef11d 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -141,8 +141,8 @@ public static function initPaths(): void {
// Resolve /nextcloud to /nextcloud/ to ensure to always have a trailing
// slash which is required by URL generation.
- if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] === \OC::$WEBROOT &&
- substr($_SERVER['REQUEST_URI'], -1) !== '/') {
+ if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] === \OC::$WEBROOT
+ && substr($_SERVER['REQUEST_URI'], -1) !== '/') {
header('Location: ' . \OC::$WEBROOT . '/');
exit();
}
@@ -285,8 +285,8 @@ private static function printUpgradePage(\OC\SystemConfig $systemConfig): void {
$tooBig = ($totalUsers > 50);
}
}
- $ignoreTooBigWarning = isset($_GET['IKnowThatThisIsABigInstanceAndTheUpdateRequestCouldRunIntoATimeoutAndHowToRestoreABackup']) &&
- $_GET['IKnowThatThisIsABigInstanceAndTheUpdateRequestCouldRunIntoATimeoutAndHowToRestoreABackup'] === 'IAmSuperSureToDoThis';
+ $ignoreTooBigWarning = isset($_GET['IKnowThatThisIsABigInstanceAndTheUpdateRequestCouldRunIntoATimeoutAndHowToRestoreABackup'])
+ && $_GET['IKnowThatThisIsABigInstanceAndTheUpdateRequestCouldRunIntoATimeoutAndHowToRestoreABackup'] === 'IAmSuperSureToDoThis';
if ($disableWebUpdater || ($tooBig && !$ignoreTooBigWarning)) {
// send http status 503
diff --git a/lib/private/Accounts/Hooks.php b/lib/private/Accounts/Hooks.php
index 0235879e8e793..12f2b4777f8b3 100644
--- a/lib/private/Accounts/Hooks.php
+++ b/lib/private/Accounts/Hooks.php
@@ -1,4 +1,5 @@
isValidCommon()
- &&
- $this->getSubject() !== ''
+ && $this->getSubject() !== ''
;
}
@@ -443,20 +442,16 @@ public function isValidParsed(): bool {
return
$this->isValidCommon()
- &&
- $this->getParsedSubject() !== ''
+ && $this->getParsedSubject() !== ''
;
}
protected function isValidCommon(): bool {
return
$this->getApp() !== ''
- &&
- $this->getType() !== ''
- &&
- $this->getAffectedUser() !== ''
- &&
- $this->getTimestamp() !== 0
+ && $this->getType() !== ''
+ && $this->getAffectedUser() !== ''
+ && $this->getTimestamp() !== 0
/**
* Disabled for BC with old activities
* &&
diff --git a/lib/private/Activity/EventMerger.php b/lib/private/Activity/EventMerger.php
index 504f9088f24d5..0e7d318103aab 100644
--- a/lib/private/Activity/EventMerger.php
+++ b/lib/private/Activity/EventMerger.php
@@ -1,4 +1,5 @@
getMinimumVersion();
$maxServerVersion = $serverVersion->getMaximumVersion();
$minFulfilled = $this->compareVersion->isCompatible($ncVersion, $minServerVersion, '>=');
- $maxFulfilled = $maxServerVersion !== '' &&
- $this->compareVersion->isCompatible($ncVersion, $maxServerVersion, '<=');
+ $maxFulfilled = $maxServerVersion !== ''
+ && $this->compareVersion->isCompatible($ncVersion, $maxServerVersion, '<=');
$isPhpCompatible = true;
if (($release['rawPhpVersionSpec'] ?? '*') !== '*') {
$phpVersion = $versionParser->getVersion($release['rawPhpVersionSpec']);
diff --git a/lib/private/App/AppStore/Fetcher/CategoryFetcher.php b/lib/private/App/AppStore/Fetcher/CategoryFetcher.php
index d72f8fa7e246f..d7857d41bee83 100644
--- a/lib/private/App/AppStore/Fetcher/CategoryFetcher.php
+++ b/lib/private/App/AppStore/Fetcher/CategoryFetcher.php
@@ -1,4 +1,5 @@
isTyped(self::VALUE_MIXED, $currType) &&
- ($type | self::VALUE_SENSITIVE) !== ($currType | self::VALUE_SENSITIVE)) {
+ if (!$this->isTyped(self::VALUE_MIXED, $currType)
+ && ($type | self::VALUE_SENSITIVE) !== ($currType | self::VALUE_SENSITIVE)) {
try {
$currType = $this->convertTypeToString($currType);
$type = $this->convertTypeToString($type);
diff --git a/lib/private/AppFramework/Bootstrap/Coordinator.php b/lib/private/AppFramework/Bootstrap/Coordinator.php
index 190244051d35b..64e3dbfd928b2 100644
--- a/lib/private/AppFramework/Bootstrap/Coordinator.php
+++ b/lib/private/AppFramework/Bootstrap/Coordinator.php
@@ -178,7 +178,7 @@ public function bootApp(string $appId): void {
public function isBootable(string $appId) {
$appNameSpace = App::buildAppNamespace($appId);
$applicationClassName = $appNameSpace . '\\AppInfo\\Application';
- return class_exists($applicationClassName) &&
- in_array(IBootstrap::class, class_implements($applicationClassName), true);
+ return class_exists($applicationClassName)
+ && in_array(IBootstrap::class, class_implements($applicationClassName), true);
}
}
diff --git a/lib/private/AppFramework/DependencyInjection/DIContainer.php b/lib/private/AppFramework/DependencyInjection/DIContainer.php
index b6e2df4ce7b49..87361a9d1ea8f 100644
--- a/lib/private/AppFramework/DependencyInjection/DIContainer.php
+++ b/lib/private/AppFramework/DependencyInjection/DIContainer.php
@@ -1,4 +1,5 @@
protocolVersion . ' ' . $status . ' ' .
- $this->headers[$status];
+ return $this->protocolVersion . ' ' . $status . ' '
+ . $this->headers[$status];
}
}
diff --git a/lib/private/AppFramework/Middleware/FlowV2EphemeralSessionsMiddleware.php b/lib/private/AppFramework/Middleware/FlowV2EphemeralSessionsMiddleware.php
index c30855a0e9893..e4571dfc50ee7 100644
--- a/lib/private/AppFramework/Middleware/FlowV2EphemeralSessionsMiddleware.php
+++ b/lib/private/AppFramework/Middleware/FlowV2EphemeralSessionsMiddleware.php
@@ -33,8 +33,8 @@ public function beforeController(Controller $controller, string $methodName) {
}
if (
- $controller instanceof ClientFlowLoginV2Controller &&
- ($methodName === 'grantPage' || $methodName === 'generateAppPassword')
+ $controller instanceof ClientFlowLoginV2Controller
+ && ($methodName === 'grantPage' || $methodName === 'generateAppPassword')
) {
return;
}
diff --git a/lib/private/AppFramework/Middleware/OCSMiddleware.php b/lib/private/AppFramework/Middleware/OCSMiddleware.php
index 46612bf0d2982..64f4b0054de98 100644
--- a/lib/private/AppFramework/Middleware/OCSMiddleware.php
+++ b/lib/private/AppFramework/Middleware/OCSMiddleware.php
@@ -1,4 +1,5 @@
hasAnnotationOrAttribute($reflectionMethod, 'CORS', CORS::class) &&
- (!$this->hasAnnotationOrAttribute($reflectionMethod, 'PublicPage', PublicPage::class) || $this->session->isLoggedIn())) {
+ if ($this->hasAnnotationOrAttribute($reflectionMethod, 'CORS', CORS::class)
+ && (!$this->hasAnnotationOrAttribute($reflectionMethod, 'PublicPage', PublicPage::class) || $this->session->isLoggedIn())) {
$user = array_key_exists('PHP_AUTH_USER', $this->request->server) ? $this->request->server['PHP_AUTH_USER'] : null;
$pass = array_key_exists('PHP_AUTH_PW', $this->request->server) ? $this->request->server['PHP_AUTH_PW'] : null;
@@ -134,10 +134,10 @@ public function afterController($controller, $methodName, Response $response) {
// allow credentials headers must not be true or CSRF is possible
// otherwise
foreach ($response->getHeaders() as $header => $value) {
- if (strtolower($header) === 'access-control-allow-credentials' &&
- strtolower(trim($value)) === 'true') {
- $msg = 'Access-Control-Allow-Credentials must not be ' .
- 'set to true in order to prevent CSRF';
+ if (strtolower($header) === 'access-control-allow-credentials'
+ && strtolower(trim($value)) === 'true') {
+ $msg = 'Access-Control-Allow-Credentials must not be '
+ . 'set to true in order to prevent CSRF';
throw new SecurityException($msg);
}
}
diff --git a/lib/private/AppFramework/Middleware/Security/Exceptions/AppNotEnabledException.php b/lib/private/AppFramework/Middleware/Security/Exceptions/AppNotEnabledException.php
index 646a5240bfcc6..53fbaaf5ed20c 100644
--- a/lib/private/AppFramework/Middleware/Security/Exceptions/AppNotEnabledException.php
+++ b/lib/private/AppFramework/Middleware/Security/Exceptions/AppNotEnabledException.php
@@ -1,4 +1,5 @@
hasAnnotationOrAttribute($reflectionMethod, 'StrictCookieRequired', StrictCookiesRequired::class) ||
- !$this->hasAnnotationOrAttribute($reflectionMethod, 'NoCSRFRequired', NoCSRFRequired::class)) {
+ if ($this->hasAnnotationOrAttribute($reflectionMethod, 'StrictCookieRequired', StrictCookiesRequired::class)
+ || !$this->hasAnnotationOrAttribute($reflectionMethod, 'NoCSRFRequired', NoCSRFRequired::class)) {
if (!$this->request->passesStrictCookieCheck()) {
throw new StrictCookieMissingException();
}
diff --git a/lib/private/AppFramework/OCS/BaseResponse.php b/lib/private/AppFramework/OCS/BaseResponse.php
index 5929a3993ec0f..05ce133db24f2 100644
--- a/lib/private/AppFramework/OCS/BaseResponse.php
+++ b/lib/private/AppFramework/OCS/BaseResponse.php
@@ -1,4 +1,5 @@
getStatus();
- if ($status === Http::STATUS_NO_CONTENT ||
- $status === Http::STATUS_NOT_MODIFIED ||
- ($status >= 100 && $status <= 199)) {
+ if ($status === Http::STATUS_NO_CONTENT
+ || $status === Http::STATUS_NOT_MODIFIED
+ || ($status >= 100 && $status <= 199)) {
// Those status codes are not supposed to have a body:
// https://stackoverflow.com/q/8628725
return '';
diff --git a/lib/private/AppFramework/OCS/V1Response.php b/lib/private/AppFramework/OCS/V1Response.php
index 131ca22ff24e5..1c2c25f5cb026 100644
--- a/lib/private/AppFramework/OCS/V1Response.php
+++ b/lib/private/AppFramework/OCS/V1Response.php
@@ -1,4 +1,5 @@
isInstantiable()) {
return $this->buildClass($class);
} else {
- throw new QueryException($baseMsg .
- ' Class can not be instantiated');
+ throw new QueryException($baseMsg
+ . ' Class can not be instantiated');
}
} catch (ReflectionException $e) {
// Class does not exist
diff --git a/lib/private/AppScriptDependency.php b/lib/private/AppScriptDependency.php
index 380816f21aca1..cc5ded0d011a9 100644
--- a/lib/private/AppScriptDependency.php
+++ b/lib/private/AppScriptDependency.php
@@ -1,4 +1,5 @@
session->exists(self::SESSION_UID_KEY)) {
// Check if the session tells us it is 2FA authenticated already
- if ($this->session->exists(self::SESSION_UID_DONE) &&
- $this->session->get(self::SESSION_UID_DONE) === $user->getUID()) {
+ if ($this->session->exists(self::SESSION_UID_DONE)
+ && $this->session->get(self::SESSION_UID_DONE) === $user->getUID()) {
return false;
}
diff --git a/lib/private/Avatar/UserAvatar.php b/lib/private/Avatar/UserAvatar.php
index 51c44b23a55b1..bef0a20e7b880 100644
--- a/lib/private/Avatar/UserAvatar.php
+++ b/lib/private/Avatar/UserAvatar.php
@@ -82,8 +82,8 @@ private function getAvatarImage($data): IImage {
$img = new \OCP\Image();
if (
- (is_resource($data) && get_resource_type($data) === 'gd') ||
- (is_object($data) && get_class($data) === \GdImage::class)
+ (is_resource($data) && get_resource_type($data) === 'gd')
+ || (is_object($data) && get_class($data) === \GdImage::class)
) {
$img->setResource($data);
} elseif (is_resource($data)) {
diff --git a/lib/private/Calendar/Manager.php b/lib/private/Calendar/Manager.php
index 21370e74d5498..0e2a3f5f6797d 100644
--- a/lib/private/Calendar/Manager.php
+++ b/lib/private/Calendar/Manager.php
@@ -236,7 +236,7 @@ public function handleIMipRequest(
$this->logger->warning('iMip message could not be processed because user has no calendars');
return false;
}
-
+
try {
/** @var VCalendar $vObject|null */
$calendarObject = Reader::read($calendarData);
diff --git a/lib/private/Collaboration/AutoComplete/Manager.php b/lib/private/Collaboration/AutoComplete/Manager.php
index c4dd4093e6921..cc5df78beea0a 100644
--- a/lib/private/Collaboration/AutoComplete/Manager.php
+++ b/lib/private/Collaboration/AutoComplete/Manager.php
@@ -1,4 +1,5 @@
shareeEnumeration) {
- $reachedEnd = (count($result['wide']) < $offset + $limit) &&
- (count($userResults['wide']) < $offset + $limit);
+ $reachedEnd = (count($result['wide']) < $offset + $limit)
+ && (count($userResults['wide']) < $offset + $limit);
$result['wide'] = array_slice($result['wide'], $offset, $limit);
$userResults['wide'] = array_slice($userResults['wide'], $offset, $limit);
diff --git a/lib/private/Collaboration/Collaborators/RemoteGroupPlugin.php b/lib/private/Collaboration/Collaborators/RemoteGroupPlugin.php
index 89d5c4e4f79ac..f4c1793ea0af8 100644
--- a/lib/private/Collaboration/Collaborators/RemoteGroupPlugin.php
+++ b/lib/private/Collaboration/Collaborators/RemoteGroupPlugin.php
@@ -1,4 +1,5 @@
shareeEnumerationFullMatch &&
- $lowerSearch !== '' && (strtolower($uid) === $lowerSearch ||
- strtolower($userDisplayName) === $lowerSearch ||
- ($this->shareeEnumerationFullMatchIgnoreSecondDisplayName && trim(strtolower(preg_replace('/ \(.*\)$/', '', $userDisplayName))) === $lowerSearch) ||
- ($this->shareeEnumerationFullMatchEmail && strtolower($userEmail ?? '') === $lowerSearch))
+ $this->shareeEnumerationFullMatch
+ && $lowerSearch !== '' && (strtolower($uid) === $lowerSearch
+ || strtolower($userDisplayName) === $lowerSearch
+ || ($this->shareeEnumerationFullMatchIgnoreSecondDisplayName && trim(strtolower(preg_replace('/ \(.*\)$/', '', $userDisplayName))) === $lowerSearch)
+ || ($this->shareeEnumerationFullMatchEmail && strtolower($userEmail ?? '') === $lowerSearch))
) {
if (strtolower($uid) === $lowerSearch) {
$foundUserById = true;
@@ -169,8 +170,8 @@ public function search($search, $limit, $offset, ISearchResult $searchResult): b
];
} else {
$addToWideResults = false;
- if ($this->shareeEnumeration &&
- !($this->shareeEnumerationInGroupOnly || $this->shareeEnumerationPhone)) {
+ if ($this->shareeEnumeration
+ && !($this->shareeEnumerationInGroupOnly || $this->shareeEnumerationPhone)) {
$addToWideResults = true;
}
diff --git a/lib/private/Collaboration/Resources/Collection.php b/lib/private/Collaboration/Resources/Collection.php
index cf5f7740ced94..2481a3e9a0945 100644
--- a/lib/private/Collaboration/Resources/Collection.php
+++ b/lib/private/Collaboration/Resources/Collection.php
@@ -164,8 +164,8 @@ protected function canGuestAccess(): bool {
}
protected function isSameResource(IResource $resource1, IResource $resource2): bool {
- return $resource1->getType() === $resource2->getType() &&
- $resource1->getId() === $resource2->getId();
+ return $resource1->getType() === $resource2->getType()
+ && $resource1->getId() === $resource2->getId();
}
protected function removeCollection(): void {
diff --git a/lib/private/Color.php b/lib/private/Color.php
index e96d6fd23bda9..d97c519e5522a 100644
--- a/lib/private/Color.php
+++ b/lib/private/Color.php
@@ -1,4 +1,5 @@
getDefinition();
$typeDef = $type->getDefinition();
diff --git a/lib/private/Console/Application.php b/lib/private/Console/Application.php
index f896c0abebee5..4cf1e0da8ca13 100644
--- a/lib/private/Console/Application.php
+++ b/lib/private/Console/Application.php
@@ -74,8 +74,8 @@ public function loadCommands(
if ($this->memoryInfo->isMemoryLimitSufficient() === false) {
$output->getErrorOutput()->writeln(
- 'The current PHP memory limit ' .
- 'is below the recommended value of 512MB.'
+ 'The current PHP memory limit '
+ . 'is below the recommended value of 512MB.'
);
}
diff --git a/lib/private/Contacts/ContactsMenu/ActionFactory.php b/lib/private/Contacts/ContactsMenu/ActionFactory.php
index 71ebe575fdd80..40037598d499f 100644
--- a/lib/private/Contacts/ContactsMenu/ActionFactory.php
+++ b/lib/private/Contacts/ContactsMenu/ActionFactory.php
@@ -1,4 +1,5 @@
lastConnectionCheck[$this->getConnectionName()]) ||
- time() <= $this->lastConnectionCheck[$this->getConnectionName()] + 30 ||
- $this->isTransactionActive()
+ !isset($this->lastConnectionCheck[$this->getConnectionName()])
+ || time() <= $this->lastConnectionCheck[$this->getConnectionName()] + 30
+ || $this->isTransactionActive()
) {
return;
}
diff --git a/lib/private/DB/MigrationService.php b/lib/private/DB/MigrationService.php
index 2f4c8131d9f1d..40579c7a8981e 100644
--- a/lib/private/DB/MigrationService.php
+++ b/lib/private/DB/MigrationService.php
@@ -1,4 +1,5 @@
=') ||
- !str_contains($row, 'maria') && version_compare($row, '8.0', '>=');
+ return str_contains($row, 'maria') && version_compare($row, '10.3', '>=')
+ || !str_contains($row, 'maria') && version_compare($row, '8.0', '>=');
}
}
diff --git a/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php b/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php
index 559c29df20876..52f82db2232f8 100644
--- a/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php
+++ b/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php
@@ -1,4 +1,5 @@
selects as $select) {
foreach ($this->partitions as $partition) {
if (is_string($select['select']) && (
- $select['select'] === '*' ||
- $partition->isColumnInPartition($select['select']))
+ $select['select'] === '*'
+ || $partition->isColumnInPartition($select['select']))
) {
if (isset($this->splitQueries[$partition->name])) {
if ($select['alias']) {
diff --git a/lib/private/DB/SchemaWrapper.php b/lib/private/DB/SchemaWrapper.php
index 473c000923798..0d5b20405130f 100644
--- a/lib/private/DB/SchemaWrapper.php
+++ b/lib/private/DB/SchemaWrapper.php
@@ -1,4 +1,5 @@
start;
}
-
+
/**
* @return float
*/
diff --git a/lib/private/DirectEditing/Manager.php b/lib/private/DirectEditing/Manager.php
index 4823b6b4456fd..154002ef340cb 100644
--- a/lib/private/DirectEditing/Manager.php
+++ b/lib/private/DirectEditing/Manager.php
@@ -1,4 +1,5 @@
db->supports4ByteText() &&
- \class_exists(\IntlBreakIterator::class);
+ return $this->db->supports4ByteText()
+ && \class_exists(\IntlBreakIterator::class);
}
public function isValidSingleEmoji(string $emoji): bool {
@@ -48,17 +48,17 @@ public function isValidSingleEmoji(string $emoji): bool {
if (strlen($emoji) >= 2) {
// If the current code-point is an emoji or a modifier (like a skin-tone)
// just continue and check the next character
- if ($codePointType === \IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL ||
- $codePointType === \IntlChar::CHAR_CATEGORY_MODIFIER_LETTER ||
- $codePointType === \IntlChar::CHAR_CATEGORY_OTHER_SYMBOL ||
- $codePointType === \IntlChar::CHAR_CATEGORY_FORMAT_CHAR || // i.e. 🏴 🏴
- $codePointType === \IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION || // i.e. ‼️ ⁉️ #⃣
- $codePointType === \IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER || // i.e. ℹ️
- $codePointType === \IntlChar::CHAR_CATEGORY_MATH_SYMBOL || // i.e. ↔️ ◻️ ⤴️ ⤵️
- $codePointType === \IntlChar::CHAR_CATEGORY_ENCLOSING_MARK || // i.e. 0⃣..9⃣
- $codePointType === \IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER || // i.e. 0⃣..9⃣
- $codePointType === \IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION || // i.e. 〰️
- $codePointType === \IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES
+ if ($codePointType === \IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL
+ || $codePointType === \IntlChar::CHAR_CATEGORY_MODIFIER_LETTER
+ || $codePointType === \IntlChar::CHAR_CATEGORY_OTHER_SYMBOL
+ || $codePointType === \IntlChar::CHAR_CATEGORY_FORMAT_CHAR // i.e. 🏴 🏴
+ || $codePointType === \IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION // i.e. ‼️ ⁉️ #⃣
+ || $codePointType === \IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER // i.e. ℹ️
+ || $codePointType === \IntlChar::CHAR_CATEGORY_MATH_SYMBOL // i.e. ↔️ ◻️ ⤴️ ⤵️
+ || $codePointType === \IntlChar::CHAR_CATEGORY_ENCLOSING_MARK // i.e. 0⃣..9⃣
+ || $codePointType === \IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER // i.e. 0⃣..9⃣
+ || $codePointType === \IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION // i.e. 〰️
+ || $codePointType === \IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES
) {
continue;
}
diff --git a/lib/private/Encryption/Keys/Storage.php b/lib/private/Encryption/Keys/Storage.php
index 2c0ce9e5ef30d..cce22b9138a21 100644
--- a/lib/private/Encryption/Keys/Storage.php
+++ b/lib/private/Encryption/Keys/Storage.php
@@ -1,4 +1,5 @@
1) {
// detect alternative key storage root
$rootDir = $this->getKeyStorageRoot();
- if ($rootDir !== '' &&
- str_starts_with(Filesystem::normalizePath($path), Filesystem::normalizePath($rootDir))
+ if ($rootDir !== ''
+ && str_starts_with(Filesystem::normalizePath($path), Filesystem::normalizePath($rootDir))
) {
return true;
}
diff --git a/lib/private/Federation/CloudFederationFactory.php b/lib/private/Federation/CloudFederationFactory.php
index f5f25d14ea143..d06de0f2f588e 100644
--- a/lib/private/Federation/CloudFederationFactory.php
+++ b/lib/private/Federation/CloudFederationFactory.php
@@ -1,4 +1,5 @@
getDefaultRequestOptions(), ['body' => $payload]);
- if ($this->appConfig->getValueBool('core', OCMSignatoryManager::APPCONFIG_SIGN_ENFORCED, lazy: true) &&
- $this->signatoryManager->getRemoteSignatory($this->signatureManager->extractIdentityFromUri($uri)) === null) {
+ if ($this->appConfig->getValueBool('core', OCMSignatoryManager::APPCONFIG_SIGN_ENFORCED, lazy: true)
+ && $this->signatoryManager->getRemoteSignatory($this->signatureManager->extractIdentityFromUri($uri)) === null) {
return $payload;
}
diff --git a/lib/private/Federation/CloudFederationShare.php b/lib/private/Federation/CloudFederationShare.php
index 3ec53d89ed33b..2eb06b3acea05 100644
--- a/lib/private/Federation/CloudFederationShare.php
+++ b/lib/private/Federation/CloudFederationShare.php
@@ -1,4 +1,5 @@
connection->getShardDefinition('filecache');
if (
- $shardDefinition &&
- $shardDefinition->getShardForKey($sourceCache->getNumericStorageId()) !== $shardDefinition->getShardForKey($this->getNumericStorageId())
+ $shardDefinition
+ && $shardDefinition->getShardForKey($sourceCache->getNumericStorageId()) !== $shardDefinition->getShardForKey($this->getNumericStorageId())
) {
$this->moveFromStorageSharded($shardDefinition, $sourceCache, $sourceData, $targetPath);
return;
diff --git a/lib/private/Files/Cache/QuerySearchHelper.php b/lib/private/Files/Cache/QuerySearchHelper.php
index ff2d67668939c..3ddcf1ca4e634 100644
--- a/lib/private/Files/Cache/QuerySearchHelper.php
+++ b/lib/private/Files/Cache/QuerySearchHelper.php
@@ -1,4 +1,5 @@
getStorageId() !== $cachedMount->getStorageId() ||
- $newMount->getMountId() !== $cachedMount->getMountId() ||
- $newMount->getMountProvider() !== $cachedMount->getMountProvider()
+ $newMount->getStorageId() !== $cachedMount->getStorageId()
+ || $newMount->getMountId() !== $cachedMount->getMountId()
+ || $newMount->getMountProvider() !== $cachedMount->getMountProvider()
) {
$changed[] = [$cachedMount, $newMount];
}
diff --git a/lib/private/Files/Conversion/ConversionManager.php b/lib/private/Files/Conversion/ConversionManager.php
index cf1085f66f076..2c98a4c6404a9 100644
--- a/lib/private/Files/Conversion/ConversionManager.php
+++ b/lib/private/Files/Conversion/ConversionManager.php
@@ -129,7 +129,7 @@ private function getRegisteredProviders(): array {
$this->preferredProviders[$class] = $this->serverContainer->get($class);
continue;
}
-
+
$this->providers[$class] = $this->serverContainer->get($class);
} catch (NotFoundExceptionInterface|ContainerExceptionInterface|Throwable $e) {
$this->logger->error('Failed to load file conversion provider ' . $class, [
@@ -175,7 +175,7 @@ private function getValidProvider(string $fileMimeType, string $targetMimeType):
}
}
}
-
+
return null;
}
}
diff --git a/lib/private/Files/Node/Folder.php b/lib/private/Files/Node/Folder.php
index c41838fd6b093..7453b55311903 100644
--- a/lib/private/Files/Node/Folder.php
+++ b/lib/private/Files/Node/Folder.php
@@ -1,4 +1,5 @@
getCache();
if (
- $sourceStorage->instanceOfStorage(ObjectStoreStorage::class) &&
- $sourceStorage->getObjectStore()->getStorageId() === $this->getObjectStore()->getStorageId()
+ $sourceStorage->instanceOfStorage(ObjectStoreStorage::class)
+ && $sourceStorage->getObjectStore()->getStorageId() === $this->getObjectStore()->getStorageId()
) {
if ($this->getCache()->get($targetInternalPath)) {
$this->unlink($targetInternalPath);
diff --git a/lib/private/Files/ObjectStore/S3.php b/lib/private/Files/ObjectStore/S3.php
index 23c061db17467..72e1751e23d3c 100644
--- a/lib/private/Files/ObjectStore/S3.php
+++ b/lib/private/Files/ObjectStore/S3.php
@@ -1,4 +1,5 @@
getType() === ISearchBinaryOperator::OPERATOR_OR ||
- $operator->getType() === ISearchBinaryOperator::OPERATOR_AND
+ $operator->getType() === ISearchBinaryOperator::OPERATOR_OR
+ || $operator->getType() === ISearchBinaryOperator::OPERATOR_AND
)
) {
$newArguments = [];
diff --git a/lib/private/Files/Search/QueryOptimizer/FlattenSingleArgumentBinaryOperation.php b/lib/private/Files/Search/QueryOptimizer/FlattenSingleArgumentBinaryOperation.php
index cb04351534ab7..7e99c04f197df 100644
--- a/lib/private/Files/Search/QueryOptimizer/FlattenSingleArgumentBinaryOperation.php
+++ b/lib/private/Files/Search/QueryOptimizer/FlattenSingleArgumentBinaryOperation.php
@@ -16,11 +16,11 @@ class FlattenSingleArgumentBinaryOperation extends ReplacingOptimizerStep {
public function processOperator(ISearchOperator &$operator): bool {
parent::processOperator($operator);
if (
- $operator instanceof ISearchBinaryOperator &&
- count($operator->getArguments()) === 1 &&
- (
- $operator->getType() === ISearchBinaryOperator::OPERATOR_OR ||
- $operator->getType() === ISearchBinaryOperator::OPERATOR_AND
+ $operator instanceof ISearchBinaryOperator
+ && count($operator->getArguments()) === 1
+ && (
+ $operator->getType() === ISearchBinaryOperator::OPERATOR_OR
+ || $operator->getType() === ISearchBinaryOperator::OPERATOR_AND
)
) {
$operator = $operator->getArguments()[0];
diff --git a/lib/private/Files/Search/QueryOptimizer/OrEqualsToIn.php b/lib/private/Files/Search/QueryOptimizer/OrEqualsToIn.php
index 42d960cc22a12..6df35c9c9a2dc 100644
--- a/lib/private/Files/Search/QueryOptimizer/OrEqualsToIn.php
+++ b/lib/private/Files/Search/QueryOptimizer/OrEqualsToIn.php
@@ -18,8 +18,8 @@
class OrEqualsToIn extends ReplacingOptimizerStep {
public function processOperator(ISearchOperator &$operator): bool {
if (
- $operator instanceof ISearchBinaryOperator &&
- $operator->getType() === ISearchBinaryOperator::OPERATOR_OR
+ $operator instanceof ISearchBinaryOperator
+ && $operator->getType() === ISearchBinaryOperator::OPERATOR_OR
) {
$groups = $this->groupEqualsComparisonsByField($operator->getArguments());
$newParts = array_map(function (array $group) {
diff --git a/lib/private/Files/Search/QueryOptimizer/PathPrefixOptimizer.php b/lib/private/Files/Search/QueryOptimizer/PathPrefixOptimizer.php
index 9d50746d5d175..2994a9365a706 100644
--- a/lib/private/Files/Search/QueryOptimizer/PathPrefixOptimizer.php
+++ b/lib/private/Files/Search/QueryOptimizer/PathPrefixOptimizer.php
@@ -52,9 +52,9 @@ private function isPathPrefixOperator(ISearchOperator $operator): bool {
private function operatorPairIsPathPrefix(ISearchOperator $like, ISearchOperator $equal): bool {
return (
- $like instanceof ISearchComparison && $equal instanceof ISearchComparison &&
- !$like->getExtra() && !$equal->getExtra() && $like->getField() === 'path' && $equal->getField() === 'path' &&
- $like->getType() === ISearchComparison::COMPARE_LIKE_CASE_SENSITIVE && $equal->getType() === ISearchComparison::COMPARE_EQUAL
+ $like instanceof ISearchComparison && $equal instanceof ISearchComparison
+ && !$like->getExtra() && !$equal->getExtra() && $like->getField() === 'path' && $equal->getField() === 'path'
+ && $like->getType() === ISearchComparison::COMPARE_LIKE_CASE_SENSITIVE && $equal->getType() === ISearchComparison::COMPARE_EQUAL
&& $like->getValue() === SearchComparison::escapeLikeParameter($equal->getValue()) . '/%'
);
}
diff --git a/lib/private/Files/Search/QueryOptimizer/SplitLargeIn.php b/lib/private/Files/Search/QueryOptimizer/SplitLargeIn.php
index 3e5258a715f5d..8aee197570815 100644
--- a/lib/private/Files/Search/QueryOptimizer/SplitLargeIn.php
+++ b/lib/private/Files/Search/QueryOptimizer/SplitLargeIn.php
@@ -18,9 +18,9 @@
class SplitLargeIn extends ReplacingOptimizerStep {
public function processOperator(ISearchOperator &$operator): bool {
if (
- $operator instanceof ISearchComparison &&
- $operator->getType() === ISearchComparison::COMPARE_IN &&
- count($operator->getValue()) > 1000
+ $operator instanceof ISearchComparison
+ && $operator->getType() === ISearchComparison::COMPARE_IN
+ && count($operator->getValue()) > 1000
) {
$chunks = array_chunk($operator->getValue(), 1000);
$chunkComparisons = array_map(function (array $values) use ($operator) {
diff --git a/lib/private/Files/Search/SearchBinaryOperator.php b/lib/private/Files/Search/SearchBinaryOperator.php
index 59a1ba2dfaf24..49f599933f44c 100644
--- a/lib/private/Files/Search/SearchBinaryOperator.php
+++ b/lib/private/Files/Search/SearchBinaryOperator.php
@@ -1,4 +1,5 @@
$storage,
'mask' => Constants::PERMISSION_ALL & ~(
- Constants::PERMISSION_UPDATE |
- Constants::PERMISSION_CREATE |
- Constants::PERMISSION_DELETE
+ Constants::PERMISSION_UPDATE
+ | Constants::PERMISSION_CREATE
+ | Constants::PERMISSION_DELETE
),
]);
}
diff --git a/lib/private/Files/SimpleFS/SimpleFile.php b/lib/private/Files/SimpleFS/SimpleFile.php
index 0bfaea21788dc..d9c1b47d2f19f 100644
--- a/lib/private/Files/SimpleFS/SimpleFile.php
+++ b/lib/private/Files/SimpleFS/SimpleFile.php
@@ -1,4 +1,5 @@
instanceOfStorage(Encryption::class) &&
- $this->isSameStorage($sourceStorage)
+ !$sourceStorage->instanceOfStorage(Encryption::class)
+ && $this->isSameStorage($sourceStorage)
) {
// resolve any jailed paths
while ($sourceStorage->instanceOfStorage(Jail::class)) {
diff --git a/lib/private/Files/Storage/Wrapper/Encryption.php b/lib/private/Files/Storage/Wrapper/Encryption.php
index 4d38d2d37aa70..51a5f99908df8 100644
--- a/lib/private/Files/Storage/Wrapper/Encryption.php
+++ b/lib/private/Files/Storage/Wrapper/Encryption.php
@@ -185,11 +185,11 @@ public function unlink(string $path): bool {
public function rename(string $source, string $target): bool {
$result = $this->storage->rename($source, $target);
- if ($result &&
+ if ($result
// versions always use the keys from the original file, so we can skip
// this step for versions
- $this->isVersion($target) === false &&
- $this->encryptionManager->isEnabled()) {
+ && $this->isVersion($target) === false
+ && $this->encryptionManager->isEnabled()) {
$sourcePath = $this->getFullPath($source);
if (!$this->util->isExcluded($sourcePath)) {
$targetPath = $this->getFullPath($target);
@@ -210,9 +210,9 @@ public function rename(string $source, string $target): bool {
public function rmdir(string $path): bool {
$result = $this->storage->rmdir($path);
$fullPath = $this->getFullPath($path);
- if ($result &&
- $this->util->isExcluded($fullPath) === false &&
- $this->encryptionManager->isEnabled()
+ if ($result
+ && $this->util->isExcluded($fullPath) === false
+ && $this->encryptionManager->isEnabled()
) {
$this->keyStorage->deleteAllFileKeys($fullPath);
}
@@ -225,9 +225,9 @@ public function isReadable(string $path): bool {
$metaData = $this->getMetaData($path);
if (
- !$this->is_dir($path) &&
- isset($metaData['encrypted']) &&
- $metaData['encrypted'] === true
+ !$this->is_dir($path)
+ && isset($metaData['encrypted'])
+ && $metaData['encrypted'] === true
) {
$fullPath = $this->getFullPath($path);
$module = $this->getEncryptionModule($path);
@@ -384,9 +384,9 @@ protected function verifyUnencryptedSize(string $path, int $unencryptedSize): in
$size = $this->storage->filesize($path);
$result = $unencryptedSize;
- if ($unencryptedSize < 0 ||
- ($size > 0 && $unencryptedSize === $size) ||
- $unencryptedSize > $size
+ if ($unencryptedSize < 0
+ || ($size > 0 && $unencryptedSize === $size)
+ || $unencryptedSize > $size
) {
// check if we already calculate the unencrypted size for the
// given path to avoid recursions
@@ -634,8 +634,8 @@ private function copyBetweenStorage(
): bool {
// for versions we have nothing to do, because versions should always use the
// key from the original file. Just create a 1:1 copy and done
- if ($this->isVersion($targetInternalPath) ||
- $this->isVersion($sourceInternalPath)) {
+ if ($this->isVersion($targetInternalPath)
+ || $this->isVersion($sourceInternalPath)) {
// remember that we try to create a version so that we can detect it during
// fopen($sourceInternalPath) and by-pass the encryption in order to
// create a 1:1 copy of the file
diff --git a/lib/private/Files/Stream/Encryption.php b/lib/private/Files/Stream/Encryption.php
index 0d55385820c21..ef147ec421fb1 100644
--- a/lib/private/Files/Stream/Encryption.php
+++ b/lib/private/Files/Stream/Encryption.php
@@ -312,8 +312,8 @@ public function stream_write($data) {
// for seekable streams the pointer is moved back to the beginning of the encrypted block
// flush will start writing there when the position moves to another block
- $positionInFile = (int)floor($this->position / $this->unencryptedBlockSize) *
- $this->util->getBlockSize() + $this->headerSize;
+ $positionInFile = (int)floor($this->position / $this->unencryptedBlockSize)
+ * $this->util->getBlockSize() + $this->headerSize;
$resultFseek = $this->parentStreamSeek($positionInFile);
// only allow writes on seekable streams, or at the end of the encrypted stream
@@ -336,8 +336,8 @@ public function stream_write($data) {
// if $data doesn't fit the current block, the fill the current block and reiterate
// after the block is filled, it is flushed and $data is updatedxxx
} else {
- $this->cache = substr($this->cache, 0, $blockPosition) .
- substr($data, 0, $this->unencryptedBlockSize - $blockPosition);
+ $this->cache = substr($this->cache, 0, $blockPosition)
+ . substr($data, 0, $this->unencryptedBlockSize - $blockPosition);
$this->flush();
$this->position += ($this->unencryptedBlockSize - $blockPosition);
$length += ($this->unencryptedBlockSize - $blockPosition);
diff --git a/lib/private/Files/Stream/SeekableHttpStream.php b/lib/private/Files/Stream/SeekableHttpStream.php
index 5ed04ed906686..6ce0a880e8de7 100644
--- a/lib/private/Files/Stream/SeekableHttpStream.php
+++ b/lib/private/Files/Stream/SeekableHttpStream.php
@@ -1,4 +1,5 @@
indexService === null ||
- $this->providerService === null ||
- $this->searchService === null) {
+ if ($this->indexService === null
+ || $this->providerService === null
+ || $this->searchService === null) {
return false;
}
diff --git a/lib/private/FullTextSearch/Model/IndexDocument.php b/lib/private/FullTextSearch/Model/IndexDocument.php
index 8bd20bad1e051..a51447393ed75 100644
--- a/lib/private/FullTextSearch/Model/IndexDocument.php
+++ b/lib/private/FullTextSearch/Model/IndexDocument.php
@@ -512,8 +512,8 @@ final public function getMore(): array {
* @since 16.0.0
*/
final public function addExcerpt(string $source, string $excerpt): IIndexDocument {
- $this->excerpts[] =
- [
+ $this->excerpts[]
+ = [
'source' => $source,
'excerpt' => $this->cleanExcerpt($excerpt)
];
diff --git a/lib/private/GlobalScale/Config.php b/lib/private/GlobalScale/Config.php
index 02acc1ab50ab8..2f729c2702ee1 100644
--- a/lib/private/GlobalScale/Config.php
+++ b/lib/private/GlobalScale/Config.php
@@ -1,4 +1,5 @@
config->getSystemValueBool('allow_local_remote_servers', false)) {
+ if (($options['nextcloud']['allow_local_address'] ?? false)
+ || $this->config->getSystemValueBool('allow_local_remote_servers', false)) {
return true;
}
diff --git a/lib/private/Http/Client/Response.php b/lib/private/Http/Client/Response.php
index dc0b17ab075c9..1e4cb3b8fa2ce 100644
--- a/lib/private/Http/Client/Response.php
+++ b/lib/private/Http/Client/Response.php
@@ -21,9 +21,9 @@ public function __construct(ResponseInterface $response, bool $stream = false) {
}
public function getBody() {
- return $this->stream ?
- $this->response->getBody()->detach():
- $this->response->getBody()->getContents();
+ return $this->stream
+ ? $this->response->getBody()->detach()
+ :$this->response->getBody()->getContents();
}
public function getStatusCode(): int {
diff --git a/lib/private/Image.php b/lib/private/Image.php
index 96699a0046b2b..3b8cb79c853b1 100644
--- a/lib/private/Image.php
+++ b/lib/private/Image.php
@@ -699,11 +699,11 @@ public function loadFromFile($imagePath = false) {
fclose($fp);
unset($fp);
- $headerFormat = 'A4Riff/' . // get n string
- 'I1Filesize/' . // get integer (file size but not actual size)
- 'A4Webp/' . // get n string
- 'A4Vp/' . // get n string
- 'A74Chunk';
+ $headerFormat = 'A4Riff/' // get n string
+ . 'I1Filesize/' // get integer (file size but not actual size)
+ . 'A4Webp/' // get n string
+ . 'A4Vp/' // get n string
+ . 'A74Chunk';
$header = unpack($headerFormat, $data);
unset($data, $headerFormat);
diff --git a/lib/private/L10N/Factory.php b/lib/private/L10N/Factory.php
index 5645693f8d908..6a74774482954 100644
--- a/lib/private/L10N/Factory.php
+++ b/lib/private/L10N/Factory.php
@@ -437,8 +437,8 @@ public function getUserLanguage(?IUser $user = null): string {
}
// Use language from request
- if ($this->userSession->getUser() instanceof IUser &&
- $user->getUID() === $this->userSession->getUser()->getUID()) {
+ if ($this->userSession->getUser() instanceof IUser
+ && $user->getUID() === $this->userSession->getUser()->getUID()) {
try {
return $this->getLanguageFromRequest();
} catch (LanguageNotFoundException $e) {
@@ -517,10 +517,10 @@ protected function respectDefaultLanguage(?string $app, string $lang): string {
// use formal version of german ("Sie" instead of "Du") if the default
// language is set to 'de_DE' if possible
if (
- is_string($defaultLanguage) &&
- strtolower($lang) === 'de' &&
- strtolower($defaultLanguage) === 'de_de' &&
- $this->languageExists($app, 'de_DE')
+ is_string($defaultLanguage)
+ && strtolower($lang) === 'de'
+ && strtolower($defaultLanguage) === 'de_de'
+ && $this->languageExists($app, 'de_DE')
) {
$result = 'de_DE';
}
diff --git a/lib/private/L10N/LanguageNotFoundException.php b/lib/private/L10N/LanguageNotFoundException.php
index 31b08b2ec1423..087a384e00eec 100644
--- a/lib/private/L10N/LanguageNotFoundException.php
+++ b/lib/private/L10N/LanguageNotFoundException.php
@@ -1,4 +1,5 @@
getMethod() === 'PUT' &&
- !str_contains($request->getHeader('Content-Type'), 'application/x-www-form-urlencoded') &&
- !str_contains($request->getHeader('Content-Type'), 'application/json')) {
+ if ($request->getMethod() === 'PUT'
+ && !str_contains($request->getHeader('Content-Type'), 'application/x-www-form-urlencoded')
+ && !str_contains($request->getHeader('Content-Type'), 'application/json')) {
return hash_equals($conditionSecret, '');
}
diff --git a/lib/private/Log/ExceptionSerializer.php b/lib/private/Log/ExceptionSerializer.php
index 6d94bf51f4581..af7c9e4843512 100644
--- a/lib/private/Log/ExceptionSerializer.php
+++ b/lib/private/Log/ExceptionSerializer.php
@@ -1,4 +1,5 @@
symfonyEmail->getHeaders();
- return $headers->has(AutoSubmitted::HEADER) ?
- $headers->get(AutoSubmitted::HEADER)->getBodyAsString() : AutoSubmitted::VALUE_NO;
+ return $headers->has(AutoSubmitted::HEADER)
+ ? $headers->get(AutoSubmitted::HEADER)->getBodyAsString() : AutoSubmitted::VALUE_NO;
}
}
diff --git a/lib/private/Mail/Provider/Manager.php b/lib/private/Mail/Provider/Manager.php
index 6179162019813..f162d30b83424 100644
--- a/lib/private/Mail/Provider/Manager.php
+++ b/lib/private/Mail/Provider/Manager.php
@@ -17,7 +17,7 @@
use Throwable;
class Manager implements IManager {
-
+
protected ?array $providersCollection = null;
public function __construct(
@@ -63,7 +63,7 @@ public function count(): int {
* @return array collection of provider id and label ['jmap' => 'JMap Connector']
*/
public function types(): array {
-
+
// construct types collection
$types = [];
// extract id and name from providers collection
@@ -72,7 +72,7 @@ public function types(): array {
}
// return types collection
return $types;
-
+
}
/**
@@ -131,7 +131,7 @@ public function findProviderById(string $providerId): ?IProvider {
if (!is_array($this->providersCollection)) {
$this->providers();
}
-
+
if (isset($this->providersCollection[$providerId])) {
return $this->providersCollection[$providerId];
}
@@ -150,7 +150,7 @@ public function findProviderById(string $providerId): ?IProvider {
* @return array> collection of provider id, service id and object ['jmap' => ['Service1' => IServiceObject]]
*/
public function services(string $userId): array {
-
+
// initilize collection
$services = [];
// retrieve and iterate through mail providers
@@ -164,7 +164,7 @@ public function services(string $userId): array {
}
// return collection
return $services;
-
+
}
/**
@@ -179,7 +179,7 @@ public function services(string $userId): array {
* @return IService|null returns service object or null if none found
*/
public function findServiceById(string $userId, string $serviceId, ?string $providerId = null): ?IService {
-
+
// evaluate if provider id was specified
if ($providerId !== null) {
// find provider
@@ -204,7 +204,7 @@ public function findServiceById(string $userId, string $serviceId, ?string $prov
}
}
}
-
+
// return null if no match was found
return null;
@@ -223,7 +223,7 @@ public function findServiceById(string $userId, string $serviceId, ?string $prov
* @return IService|null returns service object or null if none found
*/
public function findServiceByAddress(string $userId, string $address, ?string $providerId = null): ?IService {
-
+
// evaluate if provider id was specified
if ($providerId !== null) {
// find provider
diff --git a/lib/private/Memcache/APCu.php b/lib/private/Memcache/APCu.php
index 024462d227b9e..937f8a863abb6 100644
--- a/lib/private/Memcache/APCu.php
+++ b/lib/private/Memcache/APCu.php
@@ -1,4 +1,5 @@
profiler->add($cache);
}
- if ($this->lockingCacheClass === Redis::class &&
- $this->logFile !== '' && is_writable(dirname($this->logFile)) && (!file_exists($this->logFile) || is_writable($this->logFile))) {
+ if ($this->lockingCacheClass === Redis::class
+ && $this->logFile !== '' && is_writable(dirname($this->logFile)) && (!file_exists($this->logFile) || is_writable($this->logFile))) {
$cache = new LoggerWrapperCache($cache, $this->logFile);
}
return $cache;
diff --git a/lib/private/Memcache/Memcached.php b/lib/private/Memcache/Memcached.php
index 620013feda6af..d8b624a978af9 100644
--- a/lib/private/Memcache/Memcached.php
+++ b/lib/private/Memcache/Memcached.php
@@ -1,4 +1,5 @@
getConfig()->getSystemValue('memcached_options', []);
if (is_array($options)) {
diff --git a/lib/private/Memcache/NullCache.php b/lib/private/Memcache/NullCache.php
index b667869bf0d82..eac1e6ddadc15 100644
--- a/lib/private/Memcache/NullCache.php
+++ b/lib/private/Memcache/NullCache.php
@@ -1,4 +1,5 @@
isValidCommon()
- &&
- $this->getSubject() !== ''
+ && $this->getSubject() !== ''
;
}
@@ -456,8 +455,7 @@ public function isValidParsed(): bool {
return
$this->isValidCommon()
- &&
- $this->getParsedSubject() !== ''
+ && $this->getParsedSubject() !== ''
;
}
@@ -468,14 +466,10 @@ protected function isValidCommon(): bool {
return
$this->getApp() !== ''
- &&
- $this->getUser() !== ''
- &&
- $this->getDateTime()->getTimestamp() !== 0
- &&
- $this->getObjectType() !== ''
- &&
- $this->getObjectId() !== ''
+ && $this->getUser() !== ''
+ && $this->getDateTime()->getTimestamp() !== 0
+ && $this->getObjectType() !== ''
+ && $this->getObjectId() !== ''
;
}
}
diff --git a/lib/private/Preview/Bundled.php b/lib/private/Preview/Bundled.php
index 836dc4bd3572b..6100e8262a4ba 100644
--- a/lib/private/Preview/Bundled.php
+++ b/lib/private/Preview/Bundled.php
@@ -1,4 +1,5 @@
urlGenerator->getAbsoluteURL($path);
}
}
-
+
// Previously, we used to pass this through Theming
// But it was only used to colour icons containing
// 0082c9. Since with vue we moved to inline svg icons,
diff --git a/lib/private/Preview/SGI.php b/lib/private/Preview/SGI.php
index 06ea9c0c69a47..78b1ea5828a50 100644
--- a/lib/private/Preview/SGI.php
+++ b/lib/private/Preview/SGI.php
@@ -1,4 +1,5 @@
isProfileFieldVisible($property, $targetUser, $visitingUser)
+ $profileParameters[$property]
+ = $this->isProfileFieldVisible($property, $targetUser, $visitingUser)
// Explicitly set to null when value is empty string
? ($account->getProperty($property)->getValue() ?: null)
: null;
diff --git a/lib/private/RedisFactory.php b/lib/private/RedisFactory.php
index dcb56cee9ef8d..f13f9299c1cdd 100644
--- a/lib/private/RedisFactory.php
+++ b/lib/private/RedisFactory.php
@@ -152,8 +152,8 @@ public function getInstance() {
}
public function isAvailable(): bool {
- return \extension_loaded('redis') &&
- \version_compare(\phpversion('redis'), self::REDIS_MINIMAL_VERSION, '>=');
+ return \extension_loaded('redis')
+ && \version_compare(\phpversion('redis'), self::REDIS_MINIMAL_VERSION, '>=');
}
/**
@@ -163,7 +163,7 @@ public function isAvailable(): bool {
* @return boolean
*/
private function isConnectionParametersSupported(): bool {
- return \extension_loaded('redis') &&
- \version_compare(\phpversion('redis'), self::REDIS_EXTRA_PARAMETERS_MINIMAL_VERSION, '>=');
+ return \extension_loaded('redis')
+ && \version_compare(\phpversion('redis'), self::REDIS_EXTRA_PARAMETERS_MINIMAL_VERSION, '>=');
}
}
diff --git a/lib/private/Remote/Api/ApiBase.php b/lib/private/Remote/Api/ApiBase.php
index dff3edb51b96b..b2f96fb3c24dc 100644
--- a/lib/private/Remote/Api/ApiBase.php
+++ b/lib/private/Remote/Api/ApiBase.php
@@ -1,4 +1,5 @@
executeQuery(
- 'SELECT DISTINCT(TABLE_NAME) AS `table`' .
- ' FROM INFORMATION_SCHEMA . COLUMNS' .
- ' WHERE TABLE_SCHEMA = ?' .
- " AND (COLLATION_NAME <> '" . $characterSet . "_bin' OR CHARACTER_SET_NAME <> '" . $characterSet . "')" .
- " AND TABLE_NAME LIKE '*PREFIX*%'",
+ 'SELECT DISTINCT(TABLE_NAME) AS `table`'
+ . ' FROM INFORMATION_SCHEMA . COLUMNS'
+ . ' WHERE TABLE_SCHEMA = ?'
+ . " AND (COLLATION_NAME <> '" . $characterSet . "_bin' OR CHARACTER_SET_NAME <> '" . $characterSet . "')"
+ . " AND TABLE_NAME LIKE '*PREFIX*%'",
[$dbName]
);
$rows = $statement->fetchAll();
@@ -112,11 +112,11 @@ protected function getAllNonUTF8BinTables(IDBConnection $connection) {
// fetch tables by collation
$statement = $connection->executeQuery(
- 'SELECT DISTINCT(TABLE_NAME) AS `table`' .
- ' FROM INFORMATION_SCHEMA . TABLES' .
- ' WHERE TABLE_SCHEMA = ?' .
- " AND TABLE_COLLATION <> '" . $characterSet . "_bin'" .
- " AND TABLE_NAME LIKE '*PREFIX*%'",
+ 'SELECT DISTINCT(TABLE_NAME) AS `table`'
+ . ' FROM INFORMATION_SCHEMA . TABLES'
+ . ' WHERE TABLE_SCHEMA = ?'
+ . " AND TABLE_COLLATION <> '" . $characterSet . "_bin'"
+ . " AND TABLE_NAME LIKE '*PREFIX*%'",
[$dbName]
);
$rows = $statement->fetchAll();
diff --git a/lib/private/Repair/MoveUpdaterStepFile.php b/lib/private/Repair/MoveUpdaterStepFile.php
index eb9f78b0a396e..bb8f9d3acfc70 100644
--- a/lib/private/Repair/MoveUpdaterStepFile.php
+++ b/lib/private/Repair/MoveUpdaterStepFile.php
@@ -1,4 +1,5 @@
updateMimetypes($updatedMimetypes);
}
-
+
/**
* Check if there are any migrations available
diff --git a/lib/private/Security/Hasher.php b/lib/private/Security/Hasher.php
index ba661f5a35650..722fdab902f18 100644
--- a/lib/private/Security/Hasher.php
+++ b/lib/private/Security/Hasher.php
@@ -106,8 +106,8 @@ protected function legacyHashVerify($message, $hash, &$newHash = null): bool {
// Verify whether it matches a legacy PHPass or SHA1 string
$hashLength = \strlen($hash);
- if (($hashLength === 60 && password_verify($message . $this->legacySalt, $hash)) ||
- ($hashLength === 40 && hash_equals($hash, sha1($message)))) {
+ if (($hashLength === 60 && password_verify($message . $this->legacySalt, $hash))
+ || ($hashLength === 40 && hash_equals($hash, sha1($message)))) {
$newHash = $this->hash($message);
return true;
}
@@ -115,8 +115,8 @@ protected function legacyHashVerify($message, $hash, &$newHash = null): bool {
// Verify whether it matches a legacy PHPass or SHA1 string
// Retry with empty passwordsalt for cases where it was not set
$hashLength = \strlen($hash);
- if (($hashLength === 60 && password_verify($message, $hash)) ||
- ($hashLength === 40 && hash_equals($hash, sha1($message)))) {
+ if (($hashLength === 60 && password_verify($message, $hash))
+ || ($hashLength === 40 && hash_equals($hash, sha1($message)))) {
$newHash = $this->hash($message);
return true;
}
diff --git a/lib/private/Security/Signature/Model/SignedRequest.php b/lib/private/Security/Signature/Model/SignedRequest.php
index f30935e83b1b1..12a43f32bcc37 100644
--- a/lib/private/Security/Signature/Model/SignedRequest.php
+++ b/lib/private/Security/Signature/Model/SignedRequest.php
@@ -74,8 +74,8 @@ public function getDigestAlgorithm(): DigestAlgorithm {
*/
public function getDigest(): string {
if ($this->digest === '') {
- $this->digest = $this->digestAlgorithm->value . '=' .
- base64_encode(hash($this->digestAlgorithm->getHashingAlgorithm(), $this->body, true));
+ $this->digest = $this->digestAlgorithm->value . '='
+ . base64_encode(hash($this->digestAlgorithm->getHashingAlgorithm(), $this->body, true));
}
return $this->digest;
}
diff --git a/lib/private/Security/VerificationToken/VerificationToken.php b/lib/private/Security/VerificationToken/VerificationToken.php
index 1995b482597e7..89f45180359b0 100644
--- a/lib/private/Security/VerificationToken/VerificationToken.php
+++ b/lib/private/Security/VerificationToken/VerificationToken.php
@@ -85,9 +85,9 @@ public function create(
): string {
$token = $this->secureRandom->generate(
21,
- ISecureRandom::CHAR_DIGITS .
- ISecureRandom::CHAR_LOWER .
- ISecureRandom::CHAR_UPPER
+ ISecureRandom::CHAR_DIGITS
+ . ISecureRandom::CHAR_LOWER
+ . ISecureRandom::CHAR_UPPER
);
$tokenValue = $this->timeFactory->getTime() . ':' . $token;
$encryptedValue = $this->crypto->encrypt($tokenValue, $passwordPrefix . $this->config->getSystemValueString('secret'));
diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php
index c96c04f34fff4..78dc64c3c3fbe 100644
--- a/lib/private/Settings/Manager.php
+++ b/lib/private/Settings/Manager.php
@@ -1,4 +1,5 @@
$this->l10n->t(
- 'Mac OS X is not supported and %s will not work properly on this platform. ' .
- 'Use it at your own risk!',
+ 'Mac OS X is not supported and %s will not work properly on this platform. '
+ . 'Use it at your own risk!',
[$this->defaults->getProductName()]
),
'hint' => $this->l10n->t('For the best results, please consider using a GNU/Linux server instead.'),
@@ -198,8 +198,8 @@ public function getSystemInfo(bool $allowAllDatabases = false): array {
if ($this->iniWrapper->getString('open_basedir') !== '' && PHP_INT_SIZE === 4) {
$errors[] = [
'error' => $this->l10n->t(
- 'It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. ' .
- 'This will lead to problems with files over 4 GB and is highly discouraged.',
+ 'It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. '
+ . 'This will lead to problems with files over 4 GB and is highly discouraged.',
[$this->defaults->getProductName()]
),
'hint' => $this->l10n->t('Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP.'),
diff --git a/lib/private/Share/Share.php b/lib/private/Share/Share.php
index 56a4c6410c525..1121d71e45f21 100644
--- a/lib/private/Share/Share.php
+++ b/lib/private/Share/Share.php
@@ -133,8 +133,8 @@ protected static function groupItems($items, $itemType) {
// for file/folder shares we need to compare file_source, otherwise we compare item_source
// only group shares if they already point to the same target, otherwise the file where shared
// before grouping of shares was added. In this case we don't group them to avoid confusions
- if (($fileSharing && $item['file_source'] === $r['file_source'] && $item['file_target'] === $r['file_target']) ||
- (!$fileSharing && $item['item_source'] === $r['item_source'] && $item['item_target'] === $r['item_target'])) {
+ if (($fileSharing && $item['file_source'] === $r['file_source'] && $item['file_target'] === $r['file_target'])
+ || (!$fileSharing && $item['item_source'] === $r['item_source'] && $item['item_target'] === $r['item_target'])) {
// add the first item to the list of grouped shares
if (!isset($result[$key]['grouped'])) {
$result[$key]['grouped'][] = $result[$key];
diff --git a/lib/private/Share20/Exception/BackendError.php b/lib/private/Share20/Exception/BackendError.php
index 60f7dcc1a17e4..b2585367727a4 100644
--- a/lib/private/Share20/Exception/BackendError.php
+++ b/lib/private/Share20/Exception/BackendError.php
@@ -1,4 +1,5 @@
getShareType();
$sharedWith = '';
- if ($shareType === IShare::TYPE_USER ||
- $shareType === IShare::TYPE_GROUP ||
- $shareType === IShare::TYPE_REMOTE) {
+ if ($shareType === IShare::TYPE_USER
+ || $shareType === IShare::TYPE_GROUP
+ || $shareType === IShare::TYPE_REMOTE) {
$sharedWith = $share->getSharedWith();
}
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index 174f0e5c3aa5e..01664c6a0a34a 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -182,8 +182,8 @@ protected function generalCreateChecks(IShare $share, bool $isUpdate = false) {
}
// Cannot share with yourself
- if ($share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === $share->getSharedBy()) {
+ if ($share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === $share->getSharedBy()) {
throw new \InvalidArgumentException($this->l->t('Cannot share with yourself'));
}
@@ -193,8 +193,8 @@ protected function generalCreateChecks(IShare $share, bool $isUpdate = false) {
}
// And it should be a file or a folder
- if (!($share->getNode() instanceof \OCP\Files\File) &&
- !($share->getNode() instanceof \OCP\Files\Folder)) {
+ if (!($share->getNode() instanceof \OCP\Files\File)
+ && !($share->getNode() instanceof \OCP\Files\Folder)) {
throw new \InvalidArgumentException($this->l->t('Shared path must be either a file or a folder'));
}
@@ -251,8 +251,8 @@ protected function generalCreateChecks(IShare $share, bool $isUpdate = false) {
// Link shares are allowed to have no read permissions to allow upload to hidden folders
$noReadPermissionRequired = $share->getShareType() === IShare::TYPE_LINK
|| $share->getShareType() === IShare::TYPE_EMAIL;
- if (!$noReadPermissionRequired &&
- ($share->getPermissions() & \OCP\Constants::PERMISSION_READ) === 0) {
+ if (!$noReadPermissionRequired
+ && ($share->getPermissions() & \OCP\Constants::PERMISSION_READ) === 0) {
throw new \InvalidArgumentException($this->l->t('Shares need at least read permissions'));
}
@@ -561,8 +561,8 @@ protected function linkCreateChecks(IShare $share) {
}
// Check if public upload is allowed
- if ($share->getNodeType() === 'folder' && !$this->shareApiLinkAllowPublicUpload() &&
- ($share->getPermissions() & (\OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE))) {
+ if ($share->getNodeType() === 'folder' && !$this->shareApiLinkAllowPublicUpload()
+ && ($share->getPermissions() & (\OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE))) {
throw new \InvalidArgumentException($this->l->t('Public upload is not allowed'));
}
}
@@ -698,8 +698,8 @@ public function createShare(IShare $share) {
}
// Cannot share with the owner
- if ($share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === $share->getShareOwner()) {
+ if ($share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === $share->getShareOwner()) {
throw new \InvalidArgumentException($this->l->t('Cannot share with the share owner'));
}
@@ -791,14 +791,14 @@ public function updateShare(IShare $share, bool $onlyValid = true) {
}
// We can only change the recipient on user shares
- if ($share->getSharedWith() !== $originalShare->getSharedWith() &&
- $share->getShareType() !== IShare::TYPE_USER) {
+ if ($share->getSharedWith() !== $originalShare->getSharedWith()
+ && $share->getShareType() !== IShare::TYPE_USER) {
throw new \InvalidArgumentException($this->l->t('Can only update recipient on user shares'));
}
// Cannot share with the owner
- if ($share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === $share->getShareOwner()) {
+ if ($share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === $share->getShareOwner()) {
throw new \InvalidArgumentException($this->l->t('Cannot share with the share owner'));
}
@@ -949,11 +949,11 @@ public function acceptShare(IShare $share, string $recipientId): IShare {
* @return boolean whether the password was updated or not.
*/
private function updateSharePasswordIfNeeded(IShare $share, IShare $originalShare) {
- $passwordsAreDifferent = ($share->getPassword() !== $originalShare->getPassword()) &&
- (($share->getPassword() !== null && $originalShare->getPassword() === null) ||
- ($share->getPassword() === null && $originalShare->getPassword() !== null) ||
- ($share->getPassword() !== null && $originalShare->getPassword() !== null &&
- !$this->hasher->verify($share->getPassword(), $originalShare->getPassword())));
+ $passwordsAreDifferent = ($share->getPassword() !== $originalShare->getPassword())
+ && (($share->getPassword() !== null && $originalShare->getPassword() === null)
+ || ($share->getPassword() === null && $originalShare->getPassword() !== null)
+ || ($share->getPassword() !== null && $originalShare->getPassword() !== null
+ && !$this->hasher->verify($share->getPassword(), $originalShare->getPassword())));
// Password updated.
if ($passwordsAreDifferent) {
@@ -1237,9 +1237,9 @@ public function getSharesInFolder($userId, Folder $node, $reshares = false, $sha
* @inheritdoc
*/
public function getSharesBy($userId, $shareType, $path = null, $reshares = false, $limit = 50, $offset = 0, bool $onlyValid = true) {
- if ($path !== null &&
- !($path instanceof \OCP\Files\File) &&
- !($path instanceof \OCP\Files\Folder)) {
+ if ($path !== null
+ && !($path instanceof \OCP\Files\File)
+ && !($path instanceof \OCP\Files\Folder)) {
throw new \InvalidArgumentException($this->l->t('Invalid path'));
}
@@ -1798,8 +1798,8 @@ public function shareApiLinkDefaultExpireDate() {
* @return bool
*/
public function shareApiLinkDefaultExpireDateEnforced() {
- return $this->shareApiLinkDefaultExpireDate() &&
- $this->config->getAppValue('core', 'shareapi_enforce_expire_date', 'no') === 'yes';
+ return $this->shareApiLinkDefaultExpireDate()
+ && $this->config->getAppValue('core', 'shareapi_enforce_expire_date', 'no') === 'yes';
}
@@ -1836,8 +1836,8 @@ public function shareApiRemoteDefaultExpireDate(): bool {
* @return bool
*/
public function shareApiInternalDefaultExpireDateEnforced(): bool {
- return $this->shareApiInternalDefaultExpireDate() &&
- $this->config->getAppValue('core', 'shareapi_enforce_internal_expire_date', 'no') === 'yes';
+ return $this->shareApiInternalDefaultExpireDate()
+ && $this->config->getAppValue('core', 'shareapi_enforce_internal_expire_date', 'no') === 'yes';
}
/**
@@ -1846,8 +1846,8 @@ public function shareApiInternalDefaultExpireDateEnforced(): bool {
* @return bool
*/
public function shareApiRemoteDefaultExpireDateEnforced(): bool {
- return $this->shareApiRemoteDefaultExpireDate() &&
- $this->config->getAppValue('core', 'shareapi_enforce_remote_expire_date', 'no') === 'yes';
+ return $this->shareApiRemoteDefaultExpireDate()
+ && $this->config->getAppValue('core', 'shareapi_enforce_remote_expire_date', 'no') === 'yes';
}
/**
@@ -1915,13 +1915,13 @@ public function allowEnumeration(): bool {
}
public function limitEnumerationToGroups(): bool {
- return $this->allowEnumeration() &&
- $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_group', 'no') === 'yes';
+ return $this->allowEnumeration()
+ && $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_group', 'no') === 'yes';
}
public function limitEnumerationToPhone(): bool {
- return $this->allowEnumeration() &&
- $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_phone', 'no') === 'yes';
+ return $this->allowEnumeration()
+ && $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_phone', 'no') === 'yes';
}
public function allowEnumerationFullMatch(): bool {
diff --git a/lib/private/Share20/ProviderFactory.php b/lib/private/Share20/ProviderFactory.php
index eba3f4f26f146..d920edfd90e71 100644
--- a/lib/private/Share20/ProviderFactory.php
+++ b/lib/private/Share20/ProviderFactory.php
@@ -174,9 +174,9 @@ public function getProvider($id) {
public function getProviderForType($shareType) {
$provider = null;
- if ($shareType === IShare::TYPE_USER ||
- $shareType === IShare::TYPE_GROUP ||
- $shareType === IShare::TYPE_LINK
+ if ($shareType === IShare::TYPE_USER
+ || $shareType === IShare::TYPE_GROUP
+ || $shareType === IShare::TYPE_LINK
) {
$provider = $this->defaultShareProvider();
} elseif ($shareType === IShare::TYPE_REMOTE || $shareType === IShare::TYPE_REMOTE_GROUP) {
diff --git a/lib/private/Share20/Share.php b/lib/private/Share20/Share.php
index e0e46fb7886d8..8caabb0898a4a 100644
--- a/lib/private/Share20/Share.php
+++ b/lib/private/Share20/Share.php
@@ -420,8 +420,8 @@ public function getNoExpirationDate(): bool {
* @inheritdoc
*/
public function isExpired() {
- return $this->getExpirationDate() !== null &&
- $this->getExpirationDate() <= new \DateTime();
+ return $this->getExpirationDate() !== null
+ && $this->getExpirationDate() <= new \DateTime();
}
/**
@@ -633,7 +633,7 @@ public function canSeeContent(): bool {
if ($allowViewWithoutDownload) {
return true;
}
-
+
// No "allow preview" header set, so we must check if
// the share has not explicitly disabled download permissions
$attributes = $this->getAttributes();
diff --git a/lib/private/Share20/ShareAttributes.php b/lib/private/Share20/ShareAttributes.php
index 96da1e336e344..f90fbd9c6cdb9 100644
--- a/lib/private/Share20/ShareAttributes.php
+++ b/lib/private/Share20/ShareAttributes.php
@@ -32,8 +32,8 @@ public function setAttribute(string $scope, string $key, mixed $value): IAttribu
* @inheritdoc
*/
public function getAttribute(string $scope, string $key): mixed {
- if (\array_key_exists($scope, $this->attributes) &&
- \array_key_exists($key, $this->attributes[$scope])) {
+ if (\array_key_exists($scope, $this->attributes)
+ && \array_key_exists($key, $this->attributes[$scope])) {
return $this->attributes[$scope][$key];
}
return null;
diff --git a/lib/private/Share20/ShareHelper.php b/lib/private/Share20/ShareHelper.php
index d4a54f1d687c7..3f6bab98a7fa6 100644
--- a/lib/private/Share20/ShareHelper.php
+++ b/lib/private/Share20/ShareHelper.php
@@ -1,4 +1,5 @@
getSubscription();
- if ($subscription instanceof ISubscription &&
- $subscription->hasValidSubscription()) {
+ if ($subscription instanceof ISubscription
+ && $subscription->hasValidSubscription()) {
$userLimitReached = $subscription->isHardUserLimitReached();
if ($userLimitReached && $notificationManager instanceof IManager) {
$this->notifyAboutReachedUserLimit($notificationManager);
diff --git a/lib/private/TaskProcessing/SynchronousBackgroundJob.php b/lib/private/TaskProcessing/SynchronousBackgroundJob.php
index de3b424176c9e..19c53d5993249 100644
--- a/lib/private/TaskProcessing/SynchronousBackgroundJob.php
+++ b/lib/private/TaskProcessing/SynchronousBackgroundJob.php
@@ -59,8 +59,8 @@ protected function run($argument) {
// check if this job needs to be scheduled again:
// if there is at least one preferred synchronous provider that has a scheduled task
- $synchronousProviders = array_filter($providers, fn ($provider) =>
- $provider instanceof ISynchronousProvider);
+ $synchronousProviders = array_filter($providers, fn ($provider)
+ => $provider instanceof ISynchronousProvider);
$synchronousPreferredProviders = array_filter($synchronousProviders, function ($provider) {
$taskTypeId = $provider->getTaskTypeId();
$preferredProvider = $this->taskProcessingManager->getPreferredProvider($taskTypeId);
diff --git a/lib/private/Teams/TeamManager.php b/lib/private/Teams/TeamManager.php
index d75b0209c7187..13d6cc459a964 100644
--- a/lib/private/Teams/TeamManager.php
+++ b/lib/private/Teams/TeamManager.php
@@ -1,4 +1,5 @@
config->setAppValue('core', 'vendor', $currentVendor);
@@ -176,13 +176,13 @@ public function isUpgradePossible(string $oldVersion, string $newVersion, array
if ($currentVendor === 'nextcloud') {
return isset($allowedPreviousVersions[$currentVendor][$majorMinor])
- && (version_compare($oldVersion, $newVersion, '<=') ||
- $this->config->getSystemValueBool('debug', false));
+ && (version_compare($oldVersion, $newVersion, '<=')
+ || $this->config->getSystemValueBool('debug', false));
}
// Check if the instance can be migrated
- return isset($allowedPreviousVersions[$currentVendor][$majorMinor]) ||
- isset($allowedPreviousVersions[$currentVendor][$oldVersion]);
+ return isset($allowedPreviousVersions[$currentVendor][$majorMinor])
+ || isset($allowedPreviousVersions[$currentVendor][$oldVersion]);
}
/**
diff --git a/lib/private/User/Listeners/UserChangedListener.php b/lib/private/User/Listeners/UserChangedListener.php
index 983a4e8123332..8f61895025574 100644
--- a/lib/private/User/Listeners/UserChangedListener.php
+++ b/lib/private/User/Listeners/UserChangedListener.php
@@ -28,7 +28,7 @@ public function handle(Event $event): void {
if (!($event instanceof UserChangedEvent)) {
return;
}
-
+
$user = $event->getUser();
$feature = $event->getFeature();
$oldValue = $event->getOldValue();
diff --git a/lib/private/User/Manager.php b/lib/private/User/Manager.php
index 229f3138e6d78..097fd9a0dc864 100644
--- a/lib/private/User/Manager.php
+++ b/lib/private/User/Manager.php
@@ -320,9 +320,9 @@ public function getDisabledUsers(?int $limit = null, int $offset = 0, string $se
$users,
function (IUser $user) use ($search): bool {
try {
- return mb_stripos($user->getUID(), $search) !== false ||
- mb_stripos($user->getDisplayName(), $search) !== false ||
- mb_stripos($user->getEMailAddress() ?? '', $search) !== false;
+ return mb_stripos($user->getUID(), $search) !== false
+ || mb_stripos($user->getDisplayName(), $search) !== false
+ || mb_stripos($user->getEMailAddress() ?? '', $search) !== false;
} catch (NoUserException $ex) {
$this->logger->error('Error while filtering disabled users', ['exception' => $ex, 'userUID' => $user->getUID()]);
return false;
diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php
index a638cd2455721..95e4b6e4a8774 100644
--- a/lib/private/User/Session.php
+++ b/lib/private/User/Session.php
@@ -1,4 +1,5 @@
themeExist('getShortFooter')) {
$footer = $this->theme->getShortFooter();
} else {
- $footer = '' . $this->getEntity() . '' .
- ' – ' . $this->getSlogan();
+ $footer = '' . $this->getEntity() . ''
+ . ' – ' . $this->getSlogan();
}
return $footer;
diff --git a/lib/private/legacy/OC_Util.php b/lib/private/legacy/OC_Util.php
index 41ac787aa80dd..948dfcf792673 100644
--- a/lib/private/legacy/OC_Util.php
+++ b/lib/private/legacy/OC_Util.php
@@ -479,8 +479,8 @@ public static function checkServer(\OC\SystemConfig $config) {
* TODO: Should probably be implemented in the above generic dependency
* check somehow in the long-term.
*/
- if ($iniWrapper->getBool('mbstring.func_overload') !== null &&
- $iniWrapper->getBool('mbstring.func_overload') === true) {
+ if ($iniWrapper->getBool('mbstring.func_overload') !== null
+ && $iniWrapper->getBool('mbstring.func_overload') === true) {
$errors[] = [
'error' => $l->t('mbstring.func_overload is set to %s instead of the expected value 0.', [$iniWrapper->getString('mbstring.func_overload')]),
'hint' => $l->t('To fix this issue set mbstring.func_overload to 0 in your php.ini.')
diff --git a/lib/public/Accounts/PropertyDoesNotExistException.php b/lib/public/Accounts/PropertyDoesNotExistException.php
index d0f10cdf12fe9..1d27ef1df30d2 100644
--- a/lib/public/Accounts/PropertyDoesNotExistException.php
+++ b/lib/public/Accounts/PropertyDoesNotExistException.php
@@ -1,4 +1,5 @@
getTrace() as $step) {
- if (isset($step['class'], $step['function'], $step['args'][0]) &&
- $step['class'] === ServerContainer::class &&
- $step['function'] === 'query' &&
- $step['args'][0] === $applicationClassName) {
+ if (isset($step['class'], $step['function'], $step['args'][0])
+ && $step['class'] === ServerContainer::class
+ && $step['function'] === 'query'
+ && $step['args'][0] === $applicationClassName) {
$setUpViaQuery = true;
break;
- } elseif (isset($step['class'], $step['function'], $step['args'][0]) &&
- $step['class'] === ServerContainer::class &&
- $step['function'] === 'getAppContainer' &&
- $step['args'][1] === $classNameParts[1]) {
+ } elseif (isset($step['class'], $step['function'], $step['args'][0])
+ && $step['class'] === ServerContainer::class
+ && $step['function'] === 'getAppContainer'
+ && $step['args'][1] === $classNameParts[1]) {
$setUpViaQuery = true;
break;
- } elseif (isset($step['class'], $step['function'], $step['args'][0]) &&
- $step['class'] === SimpleContainer::class &&
- preg_match('/{closure:OC\\\\AppFramework\\\\Utility\\\\SimpleContainer::buildClass\\(\\):\\d+}/', $step['function']) &&
- $step['args'][0] === $this) {
+ } elseif (isset($step['class'], $step['function'], $step['args'][0])
+ && $step['class'] === SimpleContainer::class
+ && preg_match('/{closure:OC\\\\AppFramework\\\\Utility\\\\SimpleContainer::buildClass\\(\\):\\d+}/', $step['function'])
+ && $step['args'][0] === $this) {
/* We are setup through a lazy ghost, fine */
$setUpViaQuery = true;
break;
diff --git a/lib/public/AppFramework/Controller.php b/lib/public/AppFramework/Controller.php
index 7c25b3382e7be..cdeaac99366e8 100644
--- a/lib/public/AppFramework/Controller.php
+++ b/lib/public/AppFramework/Controller.php
@@ -135,7 +135,7 @@ public function buildResponse($response, $format = 'json') {
return $responder($response);
}
- throw new \DomainException('No responder registered for format ' .
- $format . '!');
+ throw new \DomainException('No responder registered for format '
+ . $format . '!');
}
}
diff --git a/lib/public/AppFramework/Db/Entity.php b/lib/public/AppFramework/Db/Entity.php
index a44a9a8bced68..3094070af5f15 100644
--- a/lib/public/AppFramework/Db/Entity.php
+++ b/lib/public/AppFramework/Db/Entity.php
@@ -159,8 +159,8 @@ protected function getter(string $name): mixed {
if (property_exists($this, $name)) {
return $this->$name;
} else {
- throw new \BadFunctionCallException($name .
- ' is not a valid attribute');
+ throw new \BadFunctionCallException($name
+ . ' is not a valid attribute');
}
}
@@ -180,8 +180,8 @@ public function __call(string $methodName, array $args) {
} elseif ($this->isGetterForBoolProperty($methodName)) {
return $this->getter(lcfirst(substr($methodName, 2)));
} else {
- throw new \BadFunctionCallException($methodName .
- ' does not exist');
+ throw new \BadFunctionCallException($methodName
+ . ' does not exist');
}
}
diff --git a/lib/public/AppFramework/Db/QBMapper.php b/lib/public/AppFramework/Db/QBMapper.php
index 4071a4a47a4ce..7fb5b2a9afd8d 100644
--- a/lib/public/AppFramework/Db/QBMapper.php
+++ b/lib/public/AppFramework/Db/QBMapper.php
@@ -296,8 +296,8 @@ protected function findOneQuery(IQueryBuilder $query): array {
* @since 14.0.0
*/
private function buildDebugMessage(string $msg, IQueryBuilder $sql): string {
- return $msg .
- ': query "' . $sql->getSQL() . '"; ';
+ return $msg
+ . ': query "' . $sql->getSQL() . '"; ';
}
diff --git a/lib/public/AppFramework/Http/FileDisplayResponse.php b/lib/public/AppFramework/Http/FileDisplayResponse.php
index fda160eafc5e0..c18404b7d9161 100644
--- a/lib/public/AppFramework/Http/FileDisplayResponse.php
+++ b/lib/public/AppFramework/Http/FileDisplayResponse.php
@@ -1,4 +1,5 @@
session->get('public_link_authenticated_token') === $this->getToken() &&
- $this->session->get('public_link_authenticated_password_hash') === $this->getPasswordHash()) {
+ if ($this->session->get('public_link_authenticated_token') === $this->getToken()
+ && $this->session->get('public_link_authenticated_password_hash') === $this->getPasswordHash()) {
return true;
}
diff --git a/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php b/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php
index 835fd1eac9d3d..6ca8e68ed9551 100644
--- a/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php
+++ b/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php
@@ -1,4 +1,5 @@
getType()) ? '' : ' (' . $this->getType()->value . ')';
- return empty($this->getName()) ?
- 'Addition of a new column' . $type . ' to table \'' . $this->getTable() . '\''
+ return empty($this->getName())
+ ? 'Addition of a new column' . $type . ' to table \'' . $this->getTable() . '\''
: 'Addition of column \'' . $this->getName() . '\'' . $type . ' to table \'' . $this->getTable() . '\'';
}
}
diff --git a/lib/public/Migration/Attributes/DropColumn.php b/lib/public/Migration/Attributes/DropColumn.php
index 1de0ba58489fb..a1cd5790cc7a5 100644
--- a/lib/public/Migration/Attributes/DropColumn.php
+++ b/lib/public/Migration/Attributes/DropColumn.php
@@ -22,8 +22,8 @@ class DropColumn extends ColumnMigrationAttribute {
* @since 30.0.0
*/
public function definition(): string {
- return empty($this->getName()) ?
- 'Deletion of a column from table \'' . $this->getTable() . '\''
+ return empty($this->getName())
+ ? 'Deletion of a column from table \'' . $this->getTable() . '\''
: 'Deletion of column \'' . $this->getName() . '\' from table \'' . $this->getTable() . '\'';
}
}
diff --git a/lib/public/Migration/Attributes/ModifyColumn.php b/lib/public/Migration/Attributes/ModifyColumn.php
index ef7250ffb343b..6fc44ebb82478 100644
--- a/lib/public/Migration/Attributes/ModifyColumn.php
+++ b/lib/public/Migration/Attributes/ModifyColumn.php
@@ -23,8 +23,8 @@ class ModifyColumn extends ColumnMigrationAttribute {
*/
public function definition(): string {
$type = is_null($this->getType()) ? '' : ' to ' . $this->getType()->value;
- return empty($this->getName()) ?
- 'Modification of a column from table \'' . $this->getTable() . '\'' . $type
+ return empty($this->getName())
+ ? 'Modification of a column from table \'' . $this->getTable() . '\'' . $type
: 'Modification of column \'' . $this->getName() . '\' from table \'' . $this->getTable() . '\'' . $type;
}
}
diff --git a/lib/public/OCM/ICapabilityAwareOCMProvider.php b/lib/public/OCM/ICapabilityAwareOCMProvider.php
index d3ad2e2993248..ae290abd2f832 100644
--- a/lib/public/OCM/ICapabilityAwareOCMProvider.php
+++ b/lib/public/OCM/ICapabilityAwareOCMProvider.php
@@ -21,7 +21,7 @@ interface ICapabilityAwareOCMProvider extends IOCMProvider {
* @since 32.0.0
*/
public function getCapabilities(): array;
-
+
/**
* get the provider name
*
@@ -29,7 +29,7 @@ public function getCapabilities(): array;
* @since 32.0.0
*/
public function getProvider(): string;
-
+
/**
* returns the invite accept dialog
*
@@ -37,7 +37,7 @@ public function getProvider(): string;
* @since 32.0.0
*/
public function getInviteAcceptDialog(): string;
-
+
/**
* set the capabilities
*
diff --git a/lib/public/Remote/Api/IApiCollection.php b/lib/public/Remote/Api/IApiCollection.php
index da1964997bd3b..e7181ab20f265 100644
--- a/lib/public/Remote/Api/IApiCollection.php
+++ b/lib/public/Remote/Api/IApiCollection.php
@@ -1,4 +1,5 @@
- [
+ 'errors'
+ => [
[
'error' => 'Access Forbidden',
'hint' => 'Invalid request',
diff --git a/tests/Core/Controller/CssControllerTest.php b/tests/Core/Controller/CssControllerTest.php
index cae6f7989c474..b4764d6ea3a50 100644
--- a/tests/Core/Controller/CssControllerTest.php
+++ b/tests/Core/Controller/CssControllerTest.php
@@ -1,4 +1,5 @@
connection->executeUpdate(
- 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
- '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, '
+ . '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
['userDelete', 'appDelete', 'keyDelete', 'valueDelete']
);
@@ -254,8 +255,8 @@ public function testSetUserValueUnchanged(): void {
$connectionMock = $this->createMock(IDBConnection::class);
$connectionMock->expects($this->once())
->method('executeQuery')
- ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences` ' .
- 'WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'),
+ ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences` '
+ . 'WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'),
$this->equalTo(['userSetUnchanged', 'appSetUnchanged', 'keySetUnchanged']))
->willReturn($resultMock);
$connectionMock->expects($this->never())
@@ -319,8 +320,8 @@ public function testGetUserKeys(): void {
];
foreach ($data as $entry) {
$this->connection->executeUpdate(
- 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
- '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, '
+ . '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
$entry
);
}
@@ -345,8 +346,8 @@ public function testGetUserKeysAllInts(): void {
];
foreach ($data as $entry) {
$this->connection->executeUpdate(
- 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
- '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, '
+ . '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
$entry
);
}
@@ -383,8 +384,8 @@ public function testGetUserValueForUsers(): void {
];
foreach ($data as $entry) {
$this->connection->executeUpdate(
- 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
- '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, '
+ . '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
$entry
);
}
@@ -424,8 +425,8 @@ public function testDeleteAllUserValues(): void {
];
foreach ($data as $entry) {
$this->connection->executeUpdate(
- 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
- '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, '
+ . '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
$entry
);
}
@@ -458,8 +459,8 @@ public function testDeleteAppFromAllUsers(): void {
];
foreach ($data as $entry) {
$this->connection->executeUpdate(
- 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
- '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, '
+ . '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
$entry
);
}
@@ -504,8 +505,8 @@ public function testGetUsersForUserValue(): void {
];
foreach ($data as $entry) {
$this->connection->executeUpdate(
- 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
- '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, '
+ . '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
$entry
);
}
diff --git a/tests/lib/App/AppStore/Bundles/BundleBase.php b/tests/lib/App/AppStore/Bundles/BundleBase.php
index 28fb8a7736bd3..71acaa052b3c0 100644
--- a/tests/lib/App/AppStore/Bundles/BundleBase.php
+++ b/tests/lib/App/AppStore/Bundles/BundleBase.php
@@ -1,4 +1,5 @@
=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/juliushaertl/direct_menu/releases/download/v0.9.2/direct_menu.tar.gz","created":"2016-10-06T14:01:05.578297Z","licenses":["agpl"],"lastModified":"2016-10-06T14:01:05.643813Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"ERBS9G5bZ3vwCizz2Ht5DehsVJmb63bzF3aYcH7xjbDVMPagOFWdUAiLDwTeZR1n\ni4gdZ73J/IjHQQJoOPwtCjgbZgLPFqL5x13CLUO9mb/33dZe/+gqEDc/3AuJ4TlA\nXUdLxHRb1bwIlJOwuSr/E24452VG20WUhLXBoM0Zm7WcMxvJWo2zAWnuqnLX3dy9\ncPB4PX+6JU2lUMINj8OYQmM1QnqvjG8YV0cYHbBbnSicOGwXEnni7mojsC8T0cn7\nYEJ2O2iO9hh3fvFEXUzDcL7tDQ5bZqm63Oa991bsAJxFo/RbzeJRh//DcOrd8Ufn\nu2SqRhwybS8j4YvfjAL9RPdRfPLwf6X2gx/Y6QFrKHH0QMI/9J/ZFyoUQcqKbsHV\n85O+yuWoqVmza71tkp4n9PuMdprCinaVvHbHbNGUf2SIh9BWuEQuVvvnvB+ZW8XY\n+Cl+unzk3WgOgT0iY3uEmsQcrLIo4DSKhcNgD1NS13fR/JTSavvmOqBarUMFZfVC\nbkR1DTBCyDjdpNBidpa3/26675dz5IT5Zedp4BBBREQzX08cIhJx5mgqDdX3CU09\nuWtzoaLi71/1BWTFAN+Y9VyfZ8/Z3Pg3vKedRJ565mztIj0geL3riEsC5YnPS0+C\n+a3B9sDiiOa101EORzX3lrPqL7reEPdCxrIwN+hKFBQ=","translations":{}}],"screenshots":[{"url":"https://bitgrid.net/~jus/direct_menu_nc.png"}],"translations":{"en":{"name":"Direct Menu","summary":"Provide easy access to all apps in the header.","description":"Provide easy access to all apps in the header."}},"isFeatured":false,"authors":[{"name":"Julius Härtl","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBjCCAu4CAhADMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYwOTE0MTI1MDU0WhcNMjYxMjIxMTI1MDU0WjAWMRQwEgYD\r\nVQQDDAtkaXJlY3RfbWVudTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\r\nAMkzWsAkKP/40ktvJMpnr0IJNVoPOR0hvh24igcDskL1WKiD2eiRUenj5LE0Nvn+\r\nsiGmWsAqRVpdiz+Y8ghQqQMzKi43IrRN0AxlCrHWrSqBZT3wIAUcFz4RzEoFxc1N\r\nUZzWma6ljukGnvt4V1ZyT+H/cjqxUkBhh/y9SS0jUen1a1grND6Rw54X46V2dlCu\r\nFH+pLsfPJJGw+QLeTGHn7dqdv18cYMAlWDCzPixVnNiCXHZcUtKMmstU2xU4R2e6\r\nzimp2rgkE4TNHrafpjH8xGdNi2FG5Dmokob/L5Q2r8jyNaW7UsFfrvLTRj371b3/\r\n2FhhxoGUvDzaG2An02Exwm52LJfdTVMHAMPZub5poHfy5vAEdZGPQ/m02l8ZK/Y2\r\n7yT807GlfPMXfdfjCxR6wNtmv7rvBDdrUZmIRNJfpFSdvlH/+MOTWnabyfQv2K4Q\r\nBIwltX6Elh0lh4ntvt1ZVtvFv+PL1Dc7QLV+w19+/LJA0mnsh7GIFYKFlbA65gA0\r\nc/w+uqDy0+5MxkR9WGPpd79KRA1tKWTis4Ny1lApK5y3zIsVGa3DfBHXcwqkWHbV\r\nwIpyuyyDsFtC1b9LTFONX7iU9cbNk5C5GTM331MdA2kLcD/D5k42GNTBSca7MkPx\r\nFx/ETSn0Ct167el30symf2AxvXjw+mBYPN71rVTMDwe9AgMBAAEwDQYJKoZIhvcN\r\nAQELBQADggEBAC0fJKnbEhXA8M283jA9GxABxLyTBcQyVVNnz2L/bYYNi81Y9iZv\r\n+U0S3qaIfoqNcV9FTKAutbsKvWyolnI7MRRK6feNuFfoP2jKubM1CnawpyT/RF2Q\r\ne/zxnB1EmeI2X5D2xceJDLB7Fy5W0EGrLixRIdFaSUommWFUm9E2hSIaNlziSBdc\r\n1J/mOQeNYO5zg5ouEt1rzQW4Mhh1I2uNQmGe4ip+Jl/2LAv3FZuu4NrSEcoXH3ro\r\nG2dF9Gtu4GiQ5fuaJknaxlgXHovfqeZwZJX9o4M+Ug81AqiY7XjdiaCPdh0Tthcx\r\n2OmWZo7UBREWenjKyFZZ/iKoqH5sdenBtpo=\r\n-----END CERTIFICATE-----"},{"id":"apporder","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/juliushaertl/apporder/issues","website":"","created":"2016-10-01T09:16:47.111889Z","lastModified":"2016-10-12T19:50:16.038821Z","releases":[{"version":"0.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/juliushaertl/apporder/releases/download/0.3.3/apporder.tar.gz","created":"2016-10-12T19:14:10.802359Z","licenses":["agpl"],"lastModified":"2016-10-12T19:50:16.104357Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"nhlT9lhrmBxIsqh/e3RLm2NDw/U8ZvvoMyYQTLMM3H19DQmVcPYPYC9QWVTsowUzXblVaOXVGylbpKma9yOlOAqJtF3qyXecLl4+tA/Awb6BBhKPgHFdcLDAL5yy1K7/uei3SgEojMlJoI9vEK5I1C5YTh43yNH+//Im6MAuNYFUTlMXK426zdOe6ogpCI5GlYdXopqYANxcpT+WXWET6DDSM5Ev+MYwMcSAY4r8+tvARRU4ZAenRgjkBT6R5z6cD76emRax14tbV6vkjjwRcO+dQtM0tFPbd+5fsNInbauv50VzIMgjA6RnKTOI17gRsSdGlsV4vZn2aIxEPWauu6T/UohMvAE9HMn13vtbpPBSFwJAktj6yHASYGzupNQLprA0+OdyALoLZPpQAKNEXA42a4EVISBKu0EmduHJlUPeqhnIGkkGgVNWS8AWqzP2nFoPdXBgUWateiMcBTHxgEKDac5YmNc9lsXpzf1OxBaXHBhGYKuXPwIfyH3jTWb1OdwixJEuRe9dl63T9qOTRre8QWns/bMqKLibGfMtFhVB21ARJayBuX70eVvabG/2N7Y5t1zUlFygIKu51tvo3AVCRDdRrFWDvkAjxzIz5FIdALVZ+DReFYu/r4WF/w3V9rInFuEDSwb/OH4r8sQycs07tSlMyA74Y3FpjKTBxso=","translations":{}},{"version":"0.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/juliushaertl/apporder/releases/download/0.3.2/apporder.tar.gz","created":"2016-10-06T14:00:51.532409Z","licenses":["agpl"],"lastModified":"2016-10-06T14:00:51.598455Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"gRVFOtj9414ZNSdRH/qNB2SwVZUQh+gaFnNLFjjXjJ1MdRMCISzvwb+QU1qYuK/y\nuL8K0pn1+fFQf8A3VsC2pb6yaLQ5U9C3Guf886Flf4qtYw1P8UWRA9yOJ+6Md+PH\n6pTEiDIdm4xbmM0KkBhsE5kL8dvLIq4EwwcAh2Qq8fjytzAk1YiP+KrTaYrVwskM\nDmm0lgP4NVnjRBTX9myW6tr6N3w0tq2jJ/+a/vEDJv+5ozKJx8N5gbJNdrtI4k7I\nyaQNWJ7cngtAHmUREeoBggV5uJayDceu83PPQR6N9/WVyNyZjw1Q8/Q6e/NyiXT2\no8mGv5tHl3DBOVuv8v7gBQgDh6ppp12M81aiCZymn2XIgjw50VQ+K15KHnLHuFFw\nwuHZVcoQ7b6oR4K4TURSfPFUeNgGS4R9v6gjg1RUcSm1Pnryc6pYnh10AUY8dk6q\n1CZ6Upt6SScP2ZEGWsFwVjjQhY/ZJmNfnhaGoFOZ5L9CnzyNCkGXFg0rL36i6djb\naqFy/z+Brnklng5ct6XWoP7uDt5BaHznQj1NHSfHn0GUQ0N968zWm9vQvy+dyXyC\nxR7vKeu2ppZ2ydoeQ9CVwfhOEsGs5OvrpapQdh9KbUHcX7b7ql01J7/P6dFuNuHe\n+7/y4ex3sEVg5YBmDtF8iZ6d7zsHd6peL1s1EsLnenQ=","translations":{}}],"screenshots":[{"url":"https://bitgrid.net/~jus/apporder-nc.gif"}],"translations":{"en":{"name":"AppOrder","summary":"Sort apps in the menu with drag and drop","description":"\nEnable sorting for icons inside the app menu. The order will be saved for each\nuser individually. Administrators can define a custom default order.\nAppOrder works with the default owncloud menu as well as with the direct_menu\napp.\n\n## Set a default order for all new users\n\nGo to the Admin settings > Additional settings and drag the icons under App order.\n\n## Use first app as default app\n\nYou can easily let Nextcloud redirect your user to the first app in their\npersonal order by changing the following parameter in your config/config.php:\n\n'defaultapp' => 'apporder',\n\nUsers will now get redirected to the first app of the default order or to the\nfirst app of the user order.\n "}},"isFeatured":false,"authors":[{"name":"Julius Härtl","mail":"jus@bitgrid.net","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhAEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYwOTE0MTI1MjQ4WhcNMjYxMjIxMTI1MjQ4WjATMREwDwYD\r\nVQQDDAhhcHBvcmRlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKVK\r\nKn5jivCu+eRfe5BECjDOzNaGHlpiegb49Hf4nh0W7DqcoLHip5c1O2BcEYdH6rkw\r\n20WclvjoQpgavG5aFXzXzur6eKTT5TpgY5oZTLoWjbx4e+fKdhyDPTpqNZzs1pxz\r\nsZLDL/ElpbSErE0s+QK/pzP11WNPylAkI9AKSyDMO3Mbllg8I8Bt+bT7LJKYOO/T\r\nLhv9m0anLZ4HrdfimhVIoMiu3RpyRigk8titXZA94+F8Fbf7ZQ9f14Y/v3+rfJFQ\r\nii9cDoox5uUrjplH2LrMr5BodfCfydLu4uVpPWYkdccgvcZ1sugjvNXyCQgdzQDK\r\npOpiwVkkiQFaQJYbGSDblFWPl/cLtA/P/qS7s8tWyTQuc1rYlEpCHG/fG8ZFkSVK\r\n9eCMGxK908VB4IU2DHZHOHi7JvtOz8X/Ak6pIIFdARoW3rfKlrz6DD4T9jEgYq0n\r\nRe7YwCKEIU3liZJ+qG6LCa+rMlp/7sCzAmqBhaaaJyX4nnZCa2Q2cNZpItEAdwVc\r\nqxLYL1FiNFMSeeYhzJJoq5iMC3vp2LScUJJNoXZj9zv+uqTNGHr+bimchR2rHUBo\r\nPzDLFJmat03KdWcMYxcK5mxJNGHpgyqM7gySlbppY/cgAospE8/ygU2FlFWIC9N0\r\neDaY+T8QA1msnzsfMhYuOI8CRYigan1agGOMDgGxAgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBAGsECd+meXHg1rr8Wb6qrkDz/uxkY1J+pa5WxnkVcB6QrF3+HDtLMvYm\r\nTTS02ffLLyATNTOALZFSy4fh4At4SrNzl8dUaapgqk1T8f+y1FhfpZrEBsarrq+2\r\nCSKtBro2jcnxzI3BvHdQcx4RAGo8sUzaqKBmsy+JmAqpCSk8f1zHR94x4Akp7n44\r\n8Ha7u1GcHMPzSeScRMGJX/x06B45cLVGHH5GF2Bu/8JaCSEAsgETCMkc/XFMYrRd\r\nTu+WGOL2Ee5U4k4XFdzeSLODWby08iU+Gx3bXTR6WIvXCYeIVsCPKK/luvfGkiSR\r\nCpW1GUIA1cyulT4uyHf9g6BMdYVOsFQ=\r\n-----END CERTIFICATE-----"},{"id":"twofactor_totp","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"","website":"","created":"2016-10-08T14:13:54.356716Z","lastModified":"2016-10-12T14:38:56.186269Z","releases":[{"version":"0.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=5.4.0 <7.1.0","platformVersionSpec":">=10.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/ChristophWurst/twofactor_totp/releases/download/0.4.1/twofactor_totp.tar.gz","created":"2016-10-12T14:38:56.174612Z","licenses":["agpl"],"lastModified":"2016-10-12T14:38:56.248223Z","isNightly":false,"rawPhpVersionSpec":">=5.4 <=7.0","rawPlatformVersionSpec":">=10 <=11","signature":"bnwWxmHEn8xkoWbtwhC1kIrJ0dQfAI3PUtU62k+Tru/BHt1G2aVxqO8bCdghojZ7\nzdFMlIJw4kekYFsVfLk8jzjUTZKVbNVKCdkHrVTQ0bUUryMAMLqGQ3PSRI5NX6D5\nFpkvwO1coYwU0XVWF8KAS0meX0ztSkT3Mv96LLrxr8F8SrB/MGmKIE4WTjt1fAIa\nZLAVEUo/3sNFTGLYBtL3wjctrkZvJltP8abeRfls9FkRHu+rN7R3uLFzk42uZn3X\nWpt5BBmlYm5ORbnJ2ApsxEkMNK+rOy8GIePaz5277ozTNrOnO04id1FXnS9mIsKD\n20nRzjekZH+nneQYoCTfnEFg2QXpW+a+zINbqCD5hivEU8utdpDAHFpNjIJdjXcS\n8MiCA/yvtwRnfqJ5Fy9BxJ6Gt05/GPUqT8DS7P1I1N+qxhsvFEdxhrm2yIOhif8o\nh7ro5ls+d3OQ8i3i4vdZm821Ytxdu/DQBHiVoOBarvFWwWAv2zd2VAvpTmk6J5yv\n3y+csRqpEJYd9fcVMPsTu7WBRRrpBsAqdAHJcZEwak2kz1kdOgSf8FIzP1z6Q71d\nMl2RKcPeutMHHSLiGIN/h7fM5aSs49wGgGZmfz28fHVd7/U0HFSMYmkT/GMq5tMP\nIyc+QZAN4qbX8G0k/QSTkK/L4lOT2hQiQqiSqmWItMk=","translations":{}}],"screenshots":[],"translations":{"en":{"name":"Two Factor TOTP Provider","summary":"A Two-Factor-Auth Provider for TOTP (e.g. Google Authenticator)","description":"A Two-Factor-Auth Provider for TOTP (e.g. Google Authenticator)"}},"isFeatured":true,"authors":[{"name":"Christoph Wurst","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECTCCAvECAhASMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYxMDEyMDkzNDMxWhcNMjcwMTE4MDkzNDMxWjAZMRcwFQYD\r\nVQQDDA50d29mYWN0b3JfdG90cDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\r\nggIBALC1K94104L/nOtmTygx7QNjUcnHs3yrn71mw4pMxTlonXOnMTpwxsfL1Hhu\r\n/5GMSgupTbQPlevSl6J86UMs455/sPShd6ifmAuhb8VFaAsjpizjs0RMaUg1sjmF\r\nuV18PD9FXLourx51V/c4MG5kpavlV+bLUrVMAjbsJY2+k30tCC/XkP5u8jUWmM/T\r\n5REChn7/obPgaeddhuJoILYhKEW3VNrR8Fm9SYiviB3FLhM7URDZ97IBnXYqbvbT\r\nZnvq+E74Zc7HgYwQwrjU/AqQAInhNpAR4ZM6CkWWWWaL96O1q3lCfKJNaxqC0Kg/\r\nkGn/pxYkl9062jtMUz60s9OPDyuisfyl68UyM68Ozyz4SMRLmDVbewOqQAwmAbtz\r\n8p9AQrX3Pr9tXhARR4pDSsQz1z+8ExEd6EKbhMyiTtHtZQ1Vm9qfoR52snpznb5N\r\ne4TcT2qHAkOWV9+a9ESXmQz2bNjgThxEl5edTVY9m4t248lK5aBTGq5ZKGULNHSQ\r\nGGpr/ftMFpII45tSvadexUvzcR/BHt3QwBAlPmA4rWtjmOMuJGDGk+mKw4pUgtT8\r\nKvUMPQpnrbXSjKctxb3V5Ppg0UGntlSG71aVdxY1raLvKSmYeoMxUTnNeS6UYAF6\r\nI3FiuPnrjVFsZa2gwZfG8NmUPVPdv1O/IvLbToXvyieo8MbZAgMBAAEwDQYJKoZI\r\nhvcNAQELBQADggEBAEb6ajdng0bnNRuqL/GbmDC2hyy3exqPoZB/P5u0nZZzDZ18\r\nLFgiWr8DOYvS+9i6kdwWscMwNJsLEUQ2rdrAi+fGr6dlazn3sCCXrskLURKn5qCU\r\nfIFZbr2bGjSg93JGnvNorfsdJkwpFW2Z9gOwMwa9tAzSkR9CsSdOeYrmdtBdodAR\r\ndIu2MkhxAZk9FZfnFkjTaAXcBHafJce7H/IEjHDEoIkFp5KnAQLHsJb4n8JeXmi9\r\nVMgQ6yUWNuzOQMZpMIV7RMOUZHvxiX/ZWUFzXNYX0GYub6p4O2uh3LJE+xXyDf77\r\nRBO7PLY3m4TXCeKesxZlkoGke+lnq7B8tkADdPI=\r\n-----END CERTIFICATE-----"},{"id":"contacts","categories":["office","organization","social"],"userDocs":"https://docs.nextcloud.com/server/11/user_manual/pim/contacts.html","adminDocs":"https://docs.nextcloud.com/server/11/admin_manual/configuration_server/occ_command.html?highlight=occ%20commands#dav-label","developerDocs":"https://github.com/nextcloud/contacts#building-the-app","issueTracker":"https://github.com/nextcloud/contacts/issues","website":"https://github.com/nextcloud/contacts#readme","created":"2016-10-30T14:00:58.922766Z","lastModified":"2016-11-22T22:08:01.904319Z","releases":[{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/contacts/releases/download/v1.5.0/contacts.tar.gz","created":"2016-11-22T22:08:01.861942Z","licenses":["agpl"],"lastModified":"2016-11-22T22:08:02.306939Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"ZqqhqtbHcNB+rzGCQ7FDIjjvHjit+dhAE1UhFgiXApkx3tmPP4nJOBAGNjHe+2Ao\nVcTIX2SrWEfieRrA4Gp+0k7pUPWag1Z0T1OVOwO4cmS1AVFyGIOE1bRvDhMfsWTU\n4CI4oXaKBFAY6mtnf7VJ7EeIdNqhImkohyWDQ88NiPRLM1XNkJJk6AvZBcT0fvCv\no145X4dLpbixSXsN99QFNJ/oXvK+9tBGwTd5i/WnNFY90vcNRLia8aRo7SA0YJRx\nLnxnj2HMqwTTDQEKE+1elYKWsqQ2DeqwScP97UIKe5bZXnrwOi9kH9PDmR4abtzd\nlHL8E1Wgw25ePDeHG7APrx0tVOJy1bP+g8vcarpGynWZoizDkBvYZD+xtxizpBXC\nJsDOSzczApptY6dnOtv0Vat8oh/Z/F99gBUahEu4WZ16ZgR1nj40PDK1Snl18Cgk\nMe1EZcde8SLEpTbCWYIfIw/O9Fkp5cWD/dAqoiO6g+gNxSZ/gGp57qoGfFxn7d/x\nH3aH8GljatAFjrwItw1JzR0THt0ukkOK+bw/pfCslk10sjHMitmz/GXa4qMS91DZ\nBKLUd0dSfQUQzkfwcojImbzJRvca4/DYe3mfG7+RCH0tDL6t72dKL9joB++u5R1u\nVZPgkToexlXcKWpiDB8H2/SEShKr4udAOjR5de9CYWM=","translations":{}}],"screenshots":[{"url":"https://raw.githubusercontent.com/nextcloud/screenshots/master/apps/Contacts/contacts.png"}],"translations":{"en":{"name":"Contacts","summary":"The new and improved app for your Contacts.","description":"The new and improved app for your Contacts."}},"isFeatured":true,"authors":[{"name":"Alexander Weidinger","mail":"","homepage":""},{"name":"Jan-Christoph Borchardt","mail":"","homepage":""},{"name":"Hendrik Leppelsack","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhATMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYxMDEyMjAzNzIyWhcNMjcwMTE4MjAzNzIyWjATMREwDwYD\r\nVQQDDAhjb250YWN0czCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANzx\r\n/zJF+5/s4lOJLWIlfKQgTy+UpvIpiUXCgrsHsDZTx+hjQAhIWukH88a+7NVAL7Ys\r\nkQNC0Tlm755FJi/T6EdR7edOwIRdo2ZwakOWLZXd209+6cCd2UloHL0bgnbWepTl\r\nR/4YgbLg/G+FVKCfkEiYc3PuDZ3EVrcwQFcg7h74X9ne6CHH0Z1WQLydxJuVEb2n\r\nX9I+nIRpPHcVostkSiUmzHR7C5TjTIo2PzzgnCU6GC0iBa6z6dDYfz24QEp/b8UA\r\nZaLhjkyKghVGMnoF/s9KPgH4NM8pvvtadQN8pxlOPju4wbmKPUrsXo4ujurDXbbc\r\nYkzNt8ojobGwdTXoyDogAsGZLQd2FQksWpRvY+I3zVPokBfPMdUPLllG5VcV0VA5\r\nDRK+h2ms+XmspdBvGonjF+XdbFm9hEmDoFmoi9aU6C6AdofjmG/e9+pw/20dXUWk\r\nmMorWwXQ5yLmIn5LnpRXrOuK7CS28VRhBYuVNMlsyKhzU0rophbsD9OFXxYLjr6s\r\n7UPNwZ5h+kjXZDBKD89QctBSViT8RhLe8nulRIm0iJn1sb9hca/CF63KmsFzENfK\r\nQeM6MO0H34PB84iNyz5AX1OIy+1wHD4Wrzt9O/i2LkWK6tBhL69aZiBqdLXWKffj\r\nARDCxxIfews51EZFyHzwsw65I97y46aBKxY382q7AgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBACLypX0spxAVAwQIS9dlC9bh1X/XdW2nAvSju2taUTBzbp074SnW6niI\r\nbnY4ihYs4yOuGvzXxnp/OlvWH7qhOIchJUq/XPcEFMa7P03XjVpcNnD3k0zQWlZb\r\ntGonX9EUOeLZKdqI4fkrCkMLScfjgJzoHGYQrm8vlIg0IVuRLCKd5+x4bS7KagbG\r\niuPit2pjkw3nWz0JRHneRXz/BNoAWBnJiV7JMF2xwBAHN4ghTM8NSJzrGTurmpMI\r\nGld7yCP47xNPaAZEC66odcClvNtJ2Clgp8739jD6uJJCqcKDejeef0VU1PG7AXId\r\n52bVrGMxJwOuL1393vKxGH0PHDzcB1M=\r\n-----END CERTIFICATE-----"},{"id":"mail","categories":["tools"],"userDocs":"","adminDocs":"https://github.com/nextcloud/mail#readme","developerDocs":"","issueTracker":"","website":"","created":"2016-10-19T19:41:41.710285Z","lastModified":"2016-10-19T19:57:33.689238Z","releases":[{"version":"0.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=5.4.0 <7.1.0","platformVersionSpec":">=10.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/mail/releases/download/v0.6.0/mail.tar.gz","created":"2016-10-19T19:57:33.676730Z","licenses":["agpl"],"lastModified":"2016-10-19T19:57:33.834580Z","isNightly":false,"rawPhpVersionSpec":">=5.4 <=7.0","rawPlatformVersionSpec":">=10 <=11","signature":"VbMsvDpt+gSPeFM8LrZXEK10rk8kkLlgCcblgqNdCSeGZeVpwDAYv3CccVSLa0+l\nlTSqQ0VIoH+OIU6vIQNBKHmSCzTplk7OrY0+L5FajXx8LnBaOh892GfGSlEt1neN\nKyM0i0uOjO/xpCP/NoUlgkz6hnmYY5XEdN6DTsJtJ/XZhDQ45IYuIkMkHE/eFehS\n0JnOagIz+PSipeBY2Ry+tV8YbRa7bC1JAvZzlod0dyI015AHZESeitRUY+MwMWkt\nN/me7g7/Kev0wggIQQZm9aYcw63GMk/1VHUPB7Y0ESW9tx2nR5+KwTDn/Jy4DGf1\nrg8h0t5I+aPhHOBLrpczH0qaZWY2lsVZWq8KWjJI9aR9P0v2f2aXixXzD/Cuz1cK\nhvhKWkOSla4D+/FxeyHGjQvdXMG8gXm0ZmTimKChCoVuCbncDd8pzkdyNoGXcvuk\nsP8OrkQFooL4E7S4BWfdSiN/a8jUITJQkuXp/OVrVGeCupLWJh7qegUw6DvoqyGy\nD4c6b+qYn68kx3CLaPPiz+tFAZQZQdj7+Kx/lohso8yTnVSiGYrMj4IvvCbpsQjg\nWF3WSqF/K/tTnPYTWb9NUPSihTbVNv6AXOfTsPEp/ba2YSS5DjvjVjkr5vhR9eg1\nikQ3Cw6lW3vaA4LVCC+hFkMRnI4N0bo5qQavP3PnZPc=","translations":{"en":{"changelog":"### Added\n- Alias support\n [#1523](https://github.com/owncloud/mail/pull/1523) @tahaalibra\n- New incoming messages are prefetched\n [#1631](https://github.com/owncloud/mail/pull/1631) @ChristophWurst\n- Custom app folder support\n [#1627](https://github.com/owncloud/mail/pull/1627) @juliushaertl\n- Improved search\n [#1609](https://github.com/owncloud/mail/pull/1609) @ChristophWurst\n- Scroll to refresh\n [#1595](https://github.com/owncloud/mail/pull/1593) @ChristophWurst\n- Shortcuts to star and mark messages as unread\n [#1590](https://github.com/owncloud/mail/pull/1590) @ChristophWurst\n- Shortcuts to select previous/next messsage\n [#1557](https://github.com/owncloud/mail/pull/1557) @ChristophWurst\n\n## Changed\n- Minimum server is Nextcloud 10/ownCloud 9.1\n [#84](https://github.com/nextcloud/mail/pull/84) @ChristophWurst\n- Use session storage instead of local storage for client-side cache\n [#1612](https://github.com/owncloud/mail/pull/1612) @ChristophWurst\n- When deleting the current message, the next one is selected immediatelly\n [#1585](https://github.com/owncloud/mail/pull/1585) @ChristophWurst\n\n## Fixed\n- Client error while composing a new message\n [#1609](https://github.com/owncloud/mail/pull/1609) @ChristophWurst\n- Delay app start until page has finished loading\n [#1634](https://github.com/owncloud/mail/pull/1634) @ChristophWurst\n- Auto-redirection of HTML mail links\n [#1603](https://github.com/owncloud/mail/pull/1603) @ChristophWurst\n- Update folder counters when reading/deleting messages\n [#1585](https://github.com/owncloud/mail/pull/1585)"}}}],"screenshots":[],"translations":{"en":{"name":"Mail","summary":"Easy to use email client which connects to your mail server via IMAP and SMTP.","description":"Easy to use email client which connects to your mail server via IMAP and SMTP."}},"isFeatured":false,"authors":[{"name":"Christoph Wurst, Thomas Müller, Jan-Christoph Borchardt, Steffen Lindner & many more …","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIID/zCCAucCAhAVMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTYxMDE5MTkzMDM0WhcNMjcwMTI1MTkzMDM0WjAPMQ0wCwYD\nVQQDDARtYWlsMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp++RuliQ\nlBeeiPtP0ecBn00OaU1UCpft/NVI5pnSiT9nU4l2kc5IvKjA8UxDB3gWfYTOeBFh\ntUHQ2P6UKCmHZT9sApHhqLu2n0V+YhlFIViuaxndSID/M414cl56xOYQusV3Pcae\no2dOSeRRzLab3tEaVHlkBSFkGmAwPZItsmTklvV3h1sUysDicYgfXPCkf7K+JgWA\nBP7vsWC8B7MDRhcB3enYv5tTcpsyvtGX7bb1oTIWVypcmKsGYfTX12VNBxKzNBIG\n8pwdb8Xo0o14TytWsWN7mSHf1XbwfwYMjDWOlMqiRc+mcoKMBH41TfM/CXslSivI\nsyvxasEaFdlj8lmKPENdzw1OfYRs43usIf4szwyt4rb8ocXfDipnY3P2hccN6YcZ\nl8y8Vsr69ASluDj2A2Pl5vH6xp6tNybZRnN5G6sghhaYaLNDU/TdMyYzz4AY33Ra\nHSaMypfcXjd76Aj8jZvcwk1BH+ZsvFqNK7ZKCb7WVcMH8KRcU1sxZ4rp9vviM2fL\nL7EVtznm3bSI9jjHXbiwq7RvNRRy+F6YRpAdWGwTU8uUkDabPFi41FikYyzNWauK\nJhlDJXl514XjKyMVBjAZYVr5gZZkO1J7C4XzLFbC5UzYNSzW5Iwx/1j5OeYJRxh6\n5rhiUwR+COT1wdVsl6khMC8MfBR4unSd338CAwEAATANBgkqhkiG9w0BAQsFAAOC\nAQEATBvpqz75PUOFPy7Tsj9bJPaKOlvBSklHH7s43fDDmQbJwswXarZi3gNdKf8D\nyO/ACZvO8ANWAWL/WahkOyQtKOYzffaABGcEIP7636jzBdKtgwSGzW3fMwDghG10\nqBr2dE6ruOEdSpuZxgMgh2EulgknZUXaHAMI2HjjtAMOBScLQVjOgUqiOHmICrXy\nZETmzhx0BXDt5enJYs8R2KMYJNIme1easQRYmWKliXogNY09W7ifT9FHtVW1HX+K\nxRS4JXbapjolkxyGSpP+iYSgItVnYzl6o9KZResR4yDsBv7G/8fpV4GQU9IS3zLD\nPiZOosVHWJdpUKCw9V4P1prGTQ==\n-----END CERTIFICATE-----"},{"id":"audioplayer","categories":["multimedia"],"userDocs":"https://github.com/rello/audioplayer/wiki#user-documentation","adminDocs":"https://github.com/rello/audioplayer/wiki#admin-documentation","developerDocs":"","issueTracker":"https://github.com/rello/audioplayer/issues","website":"https://github.com/rello/audioplayer","created":"2016-09-16T05:44:24.857567Z","lastModified":"2016-11-17T22:34:34.637028Z","releases":[{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=5.4.0","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/1.3.1/audioplayer-1.3.1.tar.gz","created":"2016-11-17T22:34:34.215350Z","licenses":["agpl"],"lastModified":"2016-11-17T22:34:34.867778Z","isNightly":false,"rawPhpVersionSpec":">=5.4","rawPlatformVersionSpec":">=9 <=11","signature":"p6Zz0IEFrxvw6y/3jHgGWWCxR6qpMzvU2HKfxcIVsK6sJnoRUhWLeAXwZ432fH2a S2llj+IGS9OvW+5VQElrXgPtEjDK1BT00DRJnp5RFCRlUv0LNoedJMzx6B6AHqPP JBufk3cG1O/CO0M0L1ITGSmSOzfKvWTRo3lxVGF792NyBaP/SyZCkH1N1TzBQzUi Ywl3+HiglPcXbHjtJm/arnKorbJWVKoaN93xFuaBapd2ozQSpi0fE0uGRsici+U7 HNa1M5WFE1rzUJoufE0E9246At07rFY1e+TdNEq8IlLgCXg5vGCKkEyuWpWno6aX LfRaIiT9x39UTAwNvuDKS0c+n4uWDYPsGfKhDx9N7CXpUrthfXVEWRzZEXG7as10 6ANvrRPJemSZH8FUSrdJhD7k12qa9R825y7mIG68Li8P71V92EOxFfo9tNXqXwBt VuDGxBqByFVPqSCj5I8hrzJzQl2Xt40g8+8ZcSF96RMg/pM+bwRMTv+mz0V+vQQ4 DWjqnWVPalaJ1PPD5/QFFErtXuNRbyxKZ6BMWxfJlLM9Kz66P75K+8fYaSwz+2KG NxY7I3svzS2K9LGH3fBLUy1t3Hl+c3zGFq/ll1MJrf9NswV4yxt2WmISfM/KDww8 yELkGs2cRzbw2tCvnmYlJJhIqRLkyFAbDzWRH/XdVx4=","translations":{"en":{"changelog":"2016-11-17\n- fix: one-click-play for wav not working\n- fix: wrong sql statement for PostgreSQL [#90](https://github.com/rello/audioplayer/issues/90)"}}},{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=5.4.0","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/1.3.0/audioplayer-1.3.0.tar.gz","created":"2016-11-15T18:11:19.539636Z","licenses":["agpl"],"lastModified":"2016-11-15T18:11:19.592881Z","isNightly":false,"rawPhpVersionSpec":">=5.4","rawPlatformVersionSpec":">=9 <=11","signature":"lbp7wd3JhMHW5mC8kVnQFvcwzf3aTIhYhq3ak/C/vfDXJDIPFuQ1odVRWtaHXEKQ XmKYIoTobV1TAU5q9G0O0Kds73T/XtHG4ATLxMZE8RsUWNSj5v3H4YDub6A0uoX6 rzyLEYV6SGEtdPFMwLcUjDExKpzAzKpgxcd9uyz2NhcHJEO8FJmirn34bm69//TO vjjiMW4zpL+dho+7LQbOX+L1SmwmdBqwypE9zzeuIuhUWDEQtImHAvjIO6Temajm lX0H5JaowJa8kvP6Jkh3KAvsHQ4sJklvWTPGcv0gboN+o6CmjWNOb+3LeSH0nhe6 BmiPloUDJcPQwq2gQejH2pY+qJEdRcULSKS09/dRbE3gOSlG36FThN0INpv6uNP4 qVIiYs3/SEHMmlS5CHvJDt2S2XN9LT9IX7QPeuS/0CMcuopaG/+cdC4KscVCq4D4 bllgew9asiBqix8iV8C4oerYOiC5vWcgBrZhGShoJT1Qq+NKz+H10dFgjFCAZuPj nVagJkbXmf2NdcvpSC7qsufhyEZyCSp+I7QEYsbo1PW3aUU35Syt47lgeVFX0hVQ jC1wMIhEW5Rm2nCkRSZkRupKDQ+N6uWuB0lykeMV2ShcDvvUZrhN3c49sooWgigB yIqKryzM4fLErjjNHdYgwCq6bbgPDLK3ic9b3B4rF3E=","translations":{"en":{"changelog":"2016-11-15\n- fix: handling of temporary scanner files [#68](https://github.com/rello/audioplayer/issues/68)\n- fix: simpler analysis of incorrect files in scanner [#57](https://github.com/rello/audioplayer/issues/57)\n- fix: album sorted correctly by artist and album [#80](https://github.com/rello/audioplayer/issues/80)\n- fix: neutral cover for unknown album [#16](https://github.com/rello/audioplayer/issues/16)\n- fix: error message from ID3 editor shown in front-end [#77](https://github.com/rello/audioplayer/issues/77)\n- enhancement: occ support for library scan and reset [#72](https://github.com/rello/audioplayer/issues/72)\n- enhancement: select a dedicated folder for scanning in personal settings [#79](https://github.com/rello/audioplayer/issues/79)\n- enhancement: exclude folders from scanning via .noaudio file [#79](https://github.com/rello/audioplayer/issues/79)\n- enhancement: significantly reduce database reads during scanning [#79](https://github.com/rello/audioplayer/issues/79)\n- enhancement: cleanup of classes; move from \\OC\\Files\\View to \\OCP\\Files\\IRootFolder [#72](https://github.com/rello/audioplayer/issues/72)"}}},{"version":"1.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=5.4.0","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/1.2.2/audioplayer-1.2.2.tar.gz","created":"2016-10-06T21:21:05.414691Z","licenses":["agpl"],"lastModified":"2016-10-06T21:21:05.483224Z","isNightly":false,"rawPhpVersionSpec":">=5.4","rawPlatformVersionSpec":">=9 <=11","signature":"toeS45z50Lm0djgrQokOTN7gA8a113IZtiKKiLsGUKWrCV/6AKJBmEFcSun6rhLH\nbz/RtIdFKwQql6O3E0m1Zch2y1A8aLWHzFTO+5orLCVi7y15SshrJYbb9aI5Pj3i\nSR7+kMHGS8uNx2uIn3B4mO6UYF8AzCfp+ule18DOjnpu86KWvEOGtFXsQkLtgepp\nbJhOGWW/uOVIos/T1xPP4GCmtVmgn7U3b9q0pMYRH7ONXEiNsfQxDrR66EZH3Jfo\nlVyM9UvQmMKoDSdBUlvLlhCEGJGqFOD7hFntLYloI4oXv9uGqcagaJVh3TkEysY2\nMbBZpVhch5zRJ/HGlZOvmEzZ8Inxkk3iap+JmJ5/gZTefwfKUyYHALsILlh820U2\nNA/1B5A015XH5a5uflGE/tnlPtrOeecIN4mg+1njo2RG89HJWJNHM2ZDO4SkXjSR\njgygmAS5aR5+KKifiA/pwjhLozDWPU4lNzsj3Foz3bx3Okopy7eq83LORqieT4Jp\nFvP64q/45LOSRBWIWLitYzRzZp7HYywMsnz12WpxtqxIjO7+7y/ByeWWOBNU1IJC\nK2D+035ZGWZr0CxDJte33WOISwjVoSwrcov++O3BQW8lM5IkcDNcJFyzNPKAXcQU\nPUXmQpYurHoIw6odAYcbrG6iOiSesuNOf2kQWbjV3/c=","translations":{"en":{"changelog":"2016-09-18\n- fix: icon issues with alternative apps folder [#65](https://github.com/rello/audioplayer/issues/65)"}}}],"screenshots":[{"url":"https://github.com/rello/screenshots/raw/master/audioplayer_main.png"},{"url":"https://github.com/rello/screenshots/raw/master/audioplayer_lists.png"},{"url":"https://github.com/rello/screenshots/raw/master/audioplayer_share.png"}],"translations":{"en":{"name":"Audio Player","summary":"Audio Player for ownCloud and Nextcloud","description":"Audio Player for MP3, MP4, Ogg, and Wave with a lot of flexibility for all your needs."}},"isFeatured":false,"authors":[{"name":"Marcel Scherello","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBjCCAu4CAhAIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYwOTE1MjExMjA4WhcNMjYxMjIyMjExMjA4WjAWMRQwEgYD\r\nVQQDDAthdWRpb3BsYXllcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\r\nALyC+iLscLs62NeNmUXEBmg+xMuUtDmZKr+xzJWtl6SSNRz+8K1JygvUIXFJ3RIL\r\nCYA3xyq8/wyZH1gNrLKyz5eTeYawG+eT3ges/FT6MWGUbZoRrBrikVcLC94QzxTH\r\nxOl8Dn+SCV/2bhcvPTQdhK+dqtvGilOtjHa40iMrk9gSdlKVys5CK/xdlEp8uiMa\r\nkz1WENn8MVCCJV58bAUbaCupDWXR9CCoSsw8XinNsCenZ2B2XlnmbM44280w0ojs\r\n72rfQRgj3yDG+ZUUyUOuxIuodu8liXYciLf0ph6t/f/qoSmctbBdsR5Fl1Upj1Ac\r\nqeHb5Yf/B3Vi6Mn3XfDx0H2EHk1v9Dhzxay+v9BHUzyIX2iH/q+7TE0/Jzo5AwBW\r\nvFKWXvG7wXaALcHYZf5v/M93IE0iCHsv2EsZKQPBnzXVGmp4DwFSP4po1B7hcog1\r\ngAMaellAzzvUAizgCovN6Qct3qDEANYniPlvtnlcaQGonajW4N019kFQRHLIzPFR\r\njab5iUMMwSnT8FhZO2ZOWuWhJven+gXjxC8mfMVgBfZnAVgydNfx9rN+KzTc88ke\r\nobUdZ0OOeBzA7pIxGEFg9V6KTEEWZ+qH048vxXz4HI9B1I+2wQLBrZl8CvweEZ5U\r\n5ID8XrrE/UaNZ1CvLKtCgB24gj/m1Elkh7wA3gEcEo2JAgMBAAEwDQYJKoZIhvcN\r\nAQELBQADggEBACtgUp+FCmjWIkQUuWSdzKWdO+IH4v9wBIrF9mo0OLIakFyDYyM5\r\nLlkYZXbplGXd4cfn3ruIqJNzlIb4xa5CU0bM4TMbD4oOSlLMKM/EamKPHI3bzr++\r\nzi7mQDFxmAE6FWSMBgKKUb4tqLc5oBap8e12tPEZl/UR6d9iUB2ltvrm3T3vrjjl\r\n2Worm0eYBNqnagXmX5+wS11AQqeJemGqRy5e1yXRlTgB0IJhH0dCsFNwifEigutp\r\nFNvGFVBn4r5qCiChEoq+rCXHRjPi/eCfbW21XeLFDiLxapcZyc85JIcA7znUYoFe\r\nP7Y/ekMscwWhLbF91OaQlcWpRtEMyde/DaI=\r\n-----END CERTIFICATE-----"},{"id":"calendar","categories":["organization"],"userDocs":"https://docs.nextcloud.com/server/10/user_manual/pim/calendar.html","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/calendar/issues","website":"https://github.com/nextcloud/calendar/","created":"2016-10-01T12:40:39.060903Z","lastModified":"2016-11-22T20:31:13.029921Z","releases":[{"version":"1.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/calendar/releases/download/v1.4.1/calendar.tar.gz","created":"2016-11-22T20:31:13.020268Z","licenses":["agpl"],"lastModified":"2016-11-22T20:31:13.087340Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"nThwe9CJBCan9nuDLdhfBiQyPhmum6Aa0UcYsIDdhGMw+C2acf81KhEmBJuTTWxo\nWGby6WcrcJJmeuCW+ePU91ju7Pd76RirprhVXIEceIDzSCxin+K0oZCZ1IGVIJjP\nIkVehTsLuCeTBbjvz1b3k5QFyhUhvd32Xt7k5d7VARyI4OqnqYYNBtH9vvgeRrFw\nAxsQr4o4axof6i3iykLg6WfWarYArY4dIuu5DkPuGPWf2bbgjwWEra4sQejhOs7G\nsk1xcsfYv2NpArIbpw/wnATdjiax+Gjz1URMD3NgL5ky0ecuZmNvN25QErg3nlVr\nhh1FBfA5pvCJbkJ6nr5bU4bKaffwDX1nr5h77FS5zzn0Pyd7ZIExmVmNtaeJfnfV\n5vnclapzXMNU+R6t/ATJQd1srvSJhyljQapzsqnrjNMEUojOEvqqygJp0KwNVPqs\n3g9XGSoOnO+WULWBeISW7UVOg8BOF8pwvHIU2++bSzOdpypW0Eq6p2DPWO6qL/H1\neFLKrUg3EvnTjvknbBxMB55h9jNJr0SAlkrmyEVm6+CE3BwRWpKB+cJMBuGiwPwv\nr/ASRiJrkDThbNWAUtX70rUmCqDV6/MujLXViqOc/Q2OHvcXd1oGDccJSQT92/1z\n7nonnedyYQIDqUt7u68WL8JRxp7pFsEqKLVuWSgxW3c=","translations":{}},{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/calendar/releases/download/v1.4.0/calendar.tar.gz","created":"2016-10-06T19:58:12.724588Z","licenses":["agpl"],"lastModified":"2016-10-06T19:58:12.790604Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"b//hJbICFMLR0Va1BGMzpLpaPREOo9QhjgfrHvDOfXVpddhvCM8ocz74X1s5hKyy\nGg67EE0pOp0dBf6RyJjduI+Dz1wQX55My7J9G1vXGCN30C/8zAcKSJoA218IWcub\nICavLkz2PkiitIOSZyBCAfEiSAeHPop/JGkq3KxQDC7QwFC78BnE9/adD9tO55c/\nDGLhvP/uTJIeH8RUifikTqVMmPH+aP3uPbZzl+AxhUezRiNCpEtZPA5QGqtQdJU4\nFc6x3d9y4IWbJV4TEIAP8jdfqtLVUQ6szFVnN8Oi1wtN9e8LIylBSYbmIZRj0+qh\nZcgntzEq6U843ZwXcAnL5jNYV0m+KNI+EkXFeWHkjvbwfCdvGPBvgFVbhc0YPzXU\nqHOe4Lvcx9X20ALG/MacV9zX69GzNnWgbBp9RnIHuaSRPFEKrNXUeXl2THuKsTyQ\nF9QtTwS5U5DcMyTO2RAN45NrRxIh8IL4stoIg5rmF7/ZaOm/Jza2gnUquOTarDE/\ntiWnNW5kWUAWyYYHvQgQix/of9qXvc2hhZaw0y623WDNrEwA+rngnjDMLA/vNv3B\nhgwQ6NbCOuHWsRK3S8DcJFpB9Kj/i7CDvDLEuJYnjSTvQ/q1XqawbJPDoRlydX43\n3/L0LvHvKVakYybv2OE5gy6bQ2Dw8e7D27DtZ6XTaBY=","translations":{}}],"screenshots":[{"url":"https://raw.githubusercontent.com/nextcloud/calendar/master/screenshots/1.png"},{"url":"https://raw.githubusercontent.com/nextcloud/calendar/master/screenshots/2.png"},{"url":"https://raw.githubusercontent.com/nextcloud/calendar/master/screenshots/3.png"},{"url":"https://raw.githubusercontent.com/nextcloud/calendar/master/screenshots/4.png"}],"translations":{"en":{"name":"Calendar","summary":"Calendar GUI for Nextcloud's CalDAV server","description":"The Nextcloud calendar app is a user interface for Nextcloud's CalDAV server.\n\nIt integrates with other apps, allows you to manage calendars and events, display external calendars and invite attendees to your events"}},"isFeatured":true,"authors":[{"name":"Georg Ehrke","mail":"","homepage":"https://georg.coffee"},{"name":"Raghu Nayyar","mail":"","homepage":"http://raghunayyar.com"},{"name":"Thomas Citharel","mail":"","homepage":"https://tcit.fr"}],"ratingRecent":0.944444444444444,"ratingOverall":0.944444444444444,"ratingNumRecent":9,"ratingNumOverall":9,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhARMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYxMDAzMTMyNjQwWhcNMjcwMTA5MTMyNjQwWjATMREwDwYD\r\nVQQDEwhjYWxlbmRhcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMm6\r\nFTeqgzCXprkU83VM4/DrZWn3kqtfaR/edkC4gYT3ug7RHa/Uv1C/S++vr7pvgpnk\r\nYzQoavl/0Qlh5sKEYX+0ud/LQDoiidwBRDckFUQ1bRfVLxAD9UAVvDRHxDqJMOx2\r\ngZArbeQ3ztdSHZp4ThzBFWq2FILsJD86weG7LwHjzhW6SWgLb/YTLbuuW6tRCDVV\r\nbtB0I/a0vCwj2u91Chw3u6pWWjPakc9DQrIDH4HCIBKQ4zVrYDxAmJDRFGDvVVWx\r\nuIAeux8sd8drqSMqAhX+XMcZPRD71NQTWbCupSwWO8kgjmZnBpIiBNpzvMQzJf3A\r\nQloZtjZ2RDXAQG88eTeT8pp8yEOCEoDLpGdraKxJrh/z2Dsk30JP3lOiNYJ9vBaB\r\nC8NJbJ3oAlG7THwUaFF9fsdAKoTwzs5Xms04TI7W/v4Z/GClOzMymnR1T4sR72Oy\r\n3WaMNHv/1QGffvQn2/TtZt23Ou3P083xWx2vn5FgTcac8+x85vRgWsVCA4hq9v6m\r\nAlktB0+UWDEXpDTKD9BdFNWM8Ig9jQf7EJrvTLNnS7FIJZMB4GK8lpvPxyvACWnh\r\nR2hQOe987Zvl3B1JZNO5RvtSeYld9Y9UfMgW1aPRweDNjSuZYAKlugx1ZoyI5HyA\r\nQjfzAwicIMwZsCJDV/P5ZO8FE+23rdWaoJczpBqDAgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBAHQXwvj8q5khWR/ilg3JGYpmMNBYHE9OeDaOcNArkKaGMd478SDPOXeu\r\nyW7hCvNEpiTk5g0h3g3yleZFws0xH8fPsQgZANgvQXb3RCcD61NL77d0cMTr7Xzr\r\nN3Lq/ML1YLc/WwL4uV1XvpMQMwALFL1p63BU2c0ysO31zbLOjMKAJi0hHFDYz5ZQ\r\nD3xxtc17ll3B5IqrMnMHRqmOQ39Sbe56Y7T4agaIz/sUWpseo85D5kt7UAIOR+Mr\r\nQ0Bl/QinETk72afGR46Qvc7tC1t9JjQQD3AUbEGuJdGvXjJJ9GREYu01XoODmPdT\r\njXXOI8XIOK6kxXhPHUc3iWu9b4KqGm0=\r\n-----END CERTIFICATE-----"},{"id":"gpxpod","categories":["multimedia","tools"],"userDocs":"https://gitlab.com/eneiluj/gpxpod-oc/wikis/userdoc","adminDocs":"https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc","developerDocs":"https://gitlab.com/eneiluj/gpxpod-oc/wikis/devdoc","issueTracker":"https://gitlab.com/eneiluj/gpxpod-oc/issues","website":"https://gitlab.com/eneiluj/gpxpod-oc","created":"2016-10-31T10:57:44.387319Z","lastModified":"2016-11-23T17:27:37.793159Z","releases":[{"version":"1.0.8","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=9.4.0","rawVersionSpec":">=9.4"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=5.5.0","rawVersionSpec":">=5.5"}],"shellCommands":[],"phpVersionSpec":">=5.6.0","platformVersionSpec":">=9.0.0","minIntSize":32,"download":"https://gitlab.com/eneiluj/gpxpod-oc/uploads/963bbf246412bcbe8979bccadb3b8d03/gpxpod-1.0.8.tar.gz","created":"2016-11-23T17:27:37.783365Z","licenses":["agpl"],"lastModified":"2016-11-23T17:27:37.862469Z","isNightly":false,"rawPhpVersionSpec":">=5.6","rawPlatformVersionSpec":">=9.0","signature":"hqhMh1l/mnwbYf4uPzEjjLFtZWHidzgR57X471OuXv2K/s87T5WhIkTSKk+2r8sp\nS7CtrF5+Pc5AgCCHvwzawN3e2+4eO4cK0+HD9CCzygzzHZEbSjufNHMMQucVoSD8\nPqR6MV9azzUpwHa/5d8fp3cFLVAle+aG0o4v5eHky9c7eaKxVJcgfjw3pjDE73N6\ngJVdtw1jf1kOFYk5pZQxDfBKFDrO5BRo5ZfZGuOuP2u/SmTwj42oTZiT7oTVWhqd\nLvJw+2TPv7B8s0Gin+J5e9K1Rs6CEWQ6WBxM+NhS5KgWB5Ig3pwm0QvMgza2cvoh\nlwVobOotfKLUBJzg0+wR7B2YH9Ao+m94h93vg7H0OKPReoTKhlDj2UExoTyeurV8\nhJdQv8sKVAxjC7/xrVaGSjM4YxFdBpzq8Zl8z4zq1o2voH5+u4ko3c62C1loDpsC\n8KrL1t6A7QpMk/XAMrPqwEPmFqlLEdv6FhzpOGyt4IEVnv6vdMTShcYw3tPvU/mD\njPtiVwpo8gWbGVIfpmwBg4wPaTrWK8V3+/1iTahIQHZfu4Lebb5mzht80HLQIcd8\n+oB4cGDEX4Rix1WxnCmE5ZzURY8xQXcvqYN+mTrUDh/3OtxQPSm5yC945SGoFNpr\nBYxfEyQcwulZrOMBdY0Ssj1AB5NOeC9OHwjJrnVe7dQ=","translations":{"en":{"changelog":"### Added\n- save/restore options for logged user\n- option to choose picture style (popup/small/big marker)\n [#25](https://gitlab.com/eneiluj/gpxpod-oc/issues/25) @eneiluj\n- add average speed and average moving speed in comparison table\n\n### Changed\n\n### Fixed\n- bug when python PIL is not available\n- deletion of bad parameter given to getGeoPicsFromFolder() in controller\n [#20](https://gitlab.com/eneiluj/gpxpod-oc/issues/20) @eneiluj\n- bug in file cleaning, bad use of array\\_unique\n [#22](https://gitlab.com/eneiluj/gpxpod-oc/issues/22) @eneiluj\n- python script do not need to be exectuable now\n [#23](https://gitlab.com/eneiluj/gpxpod-oc/issues/23) @eneiluj\n- jquery.colorbox was brought by \"First run wizard\" app, now included\n [#21](https://gitlab.com/eneiluj/gpxpod-oc/issues/21) @eneiluj\n- avoid JS error when failed to get options values by ajax"}}},{"version":"1.0.8","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=9.4.0","rawVersionSpec":">=9.4"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=5.5.0","rawVersionSpec":">=5.5"}],"shellCommands":[],"phpVersionSpec":">=5.6.0","platformVersionSpec":">=9.0.0","minIntSize":32,"download":"https://pluton.cassio.pe/~julien/gpxpod-nightly.tar.gz","created":"2016-11-16T14:06:33.937534Z","licenses":["agpl"],"lastModified":"2016-11-16T14:06:33.971502Z","isNightly":true,"rawPhpVersionSpec":">=5.6","rawPlatformVersionSpec":">=9.0","signature":"JtUhKRDFGYDx9xtHjdfEUFOb0O4idexUYw6ixlBhKPP8Dn7NfyBfV6KH6MJTIVLU\nQ5Jw6tv/Nr1YDOvVikcWPG0p23mQdn1+7w8DzzIGKmknxCat9/vKr83oJZdWYxS7\nTJ4I7qTvWNlbMfK8OEdl13VJXgc6ftX+1isluLYqLjEm3aBFCS+/awYNMmXO55a1\nyG0NgJRu3pw1CBCMhDaRLsunhpRNDVLsamZj1SPmeT8qy0I/arFaG6hQnAo6JosE\ndi1XkvK6TEt9g16L6eizd+JpGE7xiWFP9ZEmMmmQSOLQYwU5Sk1YWcrW3EX4vtz5\nWnEIC0SENyyAyzBO6YJfu/EP2lLnlbNJiuc4zzKLqRw/zyz3j+imJLcXHIA78ZkQ\nuyUOBkkk3xeyBGeUcYfDuBqYQOQs+F/7+cNMsIBKJhx9ef3OPURBc7X16upk3mxV\n6GsOktbHkgUwWk3WiXRriBIqbAZocvDp0+PN++PAEZVWFEZEJzztd4Fxaeo+QSN5\n5Pz/9yXYRsoSPZv82Tlh7dx5tIPUvYb+UsANh5eGWUGufTSwgYBN0H2KT/iO35D7\nkDzNyh1qNakfBhAgPjrC2p4mBKBJJjlM0D9erDwr5D4GSTW2fp92vlRHeD0X8sqo\n3kBbwGuWnmhdJhbd7zYy0jVM6tVX/zgbhycimNALG0I=","translations":{"en":{"changelog":"### Added\n- save/restore options for logged user\n- option to choose picture style (popup/small/big marker)\n [#25](https://gitlab.com/eneiluj/gpxpod-oc/issues/25) @eneiluj\n\n### Changed\n\n### Fixed\n- bug when python PIL is not available\n- deletion of bad parameter given to getGeoPicsFromFolder() in controller\n [#20](https://gitlab.com/eneiluj/gpxpod-oc/issues/20) @eneiluj\n- bug in file cleaning, bad use of array\\_unique\n [#22](https://gitlab.com/eneiluj/gpxpod-oc/issues/22) @eneiluj\n- python script do not need to be exectuable now\n [#23](https://gitlab.com/eneiluj/gpxpod-oc/issues/23) @eneiluj\n- jquery.colorbox was brought by \"First run wizard\" app, now included\n [#21](https://gitlab.com/eneiluj/gpxpod-oc/issues/21) @eneiluj"}}},{"version":"1.0.7","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=9.4.0","rawVersionSpec":">=9.4"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=5.5.0","rawVersionSpec":">=5.5"}],"shellCommands":[],"phpVersionSpec":">=5.6.0","platformVersionSpec":">=9.0.0","minIntSize":32,"download":"https://pluton.cassio.pe/~julien/gpxpod-1.0.7.tar.gz","created":"2016-11-14T00:57:37.521001Z","licenses":["agpl"],"lastModified":"2016-11-14T20:35:45.363487Z","isNightly":false,"rawPhpVersionSpec":">=5.6","rawPlatformVersionSpec":">=9.0","signature":"SigBof6QJZ9IMZyFgc+B3LO2+EXaAPvnxUHjJQjIl3jLzomocpDGR6WjO6gtvB81\nzXUHjJ8+huc+P9TvgjUGRTmn9a/29HZ4IKTXnYBKIUY7wSLcJNMbJSp2Zd3OFHAG\nJwRaEdh/cIRk2X6NE1VT6dFCxB+LhTM4BXOEwuNYQvU1lZDVQgTz/r68zFLWBt6R\nqhBCNJHrVp87ecS4+XaGq/CfT4k1ihiOv+f4eX9iaPzUhxBJ71iYKF7wHpDoVmIk\nNrzWFUJH3BLBuW9oiC0PApli6Xu5RXrWUsOV7OAmxXgylRCPuTFwe09hw16JMbiS\nii8WFiUtp4qW53+7eoS7Fllm7CRi/Dg6Jvjtp3msrf1m+OiYM7dLyoKw22/S4P/a\nBIErZpSCHaCfrZ+DBXrAYcas27GWE7HizzG3yXk3aDJMa0Otcsq56bSPo01JDfNx\nm1y9iuwmlon8zKKoxsJCwxaFDnQpqazaLcUO0ATHUk8LdomTA7MCXVvNFPaO86Ea\n16iyw7Cfs0k3GrvN71+SdpvWss359CEEwBMpDwJZqwSFbLRyHtogUgbRWLIJqR4n\n5uVvJqirxWkr/EtXw6UkDWAI3ZoMhMRtjn4H4ekANP5mC8R0yp+UuFs2RkEC5uA0\nKzzh73WmxmpeUl6jcMZ49gXn3PTCC2fJNrdmSYch5Dc=","translations":{"en":{"changelog":"### Added\n- option to choose waypoint style\n- show elevation, lat, lng in waypoint popup\n- ability to display geotagged jpg pictures on the map\n- pictures slideshow with colorbox\n- pictures work in public dir link\n- use NC/OC thumbnails to display pictures on the map\n- options block hidden by default\n\n### Fixed\n- fix bug in geojson generation for waypoint-only files"}}},{"version":"1.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=5.6.0","platformVersionSpec":">=9.0.0","minIntSize":32,"download":"https://pluton.cassio.pe/~julien/gpxpod-1.0.6.tar.gz","created":"2016-11-07T12:11:00.619161Z","licenses":["agpl"],"lastModified":"2016-11-07T12:11:00.699921Z","isNightly":false,"rawPhpVersionSpec":">=5.6","rawPlatformVersionSpec":">=9.0","signature":"WBts2fm2rW/7LMHYjcx9a0k0WTXV6PnGRxTl+158cjfV7ruMpNvhK58iTjrox69k\nFWAoIi1wNAlLBu9Xet1j7HKi4TC9q61IEN+lPlnwBCu0uHawiqS2gqB4i8A019Ei\noLsgAPWh8ndy6+gyUtPhVLVduLH76aT6KTwAiHPknV0zPtxsUy1P6nbbNOS5A5rG\nSQBqljy0TbcjOctTudEPp1IqjJIwcd12eZ9MLG4CEIO13n53pMAsuXJf4jnKSCm0\ngimvsFOwFRjBab3ZPwtOqeVw6aIh/lYF3U3/k8YBpaDN74m30nDtkp8teXBgshSY\nVYvX3yOAYe0PIR419IX0eoHb61K0VfZYvPT4FsOqjDr0zlVB8Rjq+6SiK4vMD2+6\neGE0aHbjR9HV5jymUnFYdm/hlhcZGaKrAiQKfBY6Vh0SWKfIv7bdGfQYauePAdZt\njlsV8lIwOy7FGAeP81CcjzWWfDeBgYr+MSzfoDNoTi41MvUaT14iWPIU/s5P1/Qv\nALGxgsbmB19wEgNbdh1UtTUY3xARLpWPYdUqU7yDcsddX9vCoCG2G5wCcbYJRj8o\nC+H7wdgPJoiMY/p4Go/lyWkvmzhfXrOeXytZIFXjb3ERVd1vD9WSt1DSy/7gsFYt\nxzzOPgqMvL3BbeluNuzNv366oT872s3OuFKa1ZOYY7A=","translations":{}},{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=5.6.0","platformVersionSpec":">=9.0.0","minIntSize":32,"download":"https://pluton.cassio.pe/~julien/gpxpod-1.0.5.tar.gz","created":"2016-10-31T11:08:41.017766Z","licenses":["agpl"],"lastModified":"2016-10-31T11:08:41.068782Z","isNightly":false,"rawPhpVersionSpec":">=5.6","rawPlatformVersionSpec":">=9.0","signature":"UXeZVh5f0/WZE+r/dHWc1pu9q4qr/zACX6XraMhhIuKIp7vNCwUESeqJtVc99QZw\nw9kJp0isvib6l0zbQBRS1vI7xwKKBQyeaEhIciEs1JjsaCiato1Gyi26N+fY2N0Z\nFWlTwCsF3DdlwERXTYfeCpsOWCoxLxHKhnJIjUc0PVme/Ste4zxYj+5Su1RpadSw\n4vGnkW8zy/0tzua50NQCrOg+B4jXzH9kMWAP47w3sdP5CYalHSHl8EX0D1RjgGU5\n7vZYX3wF853FvQDbL4JXXCJupj3wZe8py8McWpQIcgz1p3KmE7A7d/rdNWExT+T+\nDxtStJ56qTRMz4aFwoSFxJrrEfgHIsE9Gv+Vo7nshCUYA8gkfHeckiaUtH1EiFTh\nVNeO6mTIqGpRosFvfUrZMKcuF5j74vGQjNM1o+M5N31gtLoPSkU605f/U4v+j2oC\n3/N1rYF2SEDFO0EgAGXaXVhB0ltSDkHJw6vZJ1L8Qz6tooUMDxaMri8vycA6LHvE\nqN+z+S6TXMfLvN/6ATYPGhicrWmkMT/k7v1az/hcnfH+zRyLZyFx94s88JWF7Jf+\nI+tgDbfqTMAIcytJUC+KfdQW1ueXh5F0owrOYM6jgBRvhqj1T8s+Twgw8orGmRPe\n9h8G9Z3wZAooQvmC0KdVhLuOeIkqt/S5krELNFFBRnk=","translations":{}}],"screenshots":[{"url":"https://gitlab.com/eneiluj/gpxpod-oc/uploads/db5af6ba7ae1cd4d22ea81d418f5c762/screen1.jpg"},{"url":"https://gitlab.com/eneiluj/gpxpod-oc/uploads/123588561a8067185572a8d1887ef906/screen2.jpg"},{"url":"https://gitlab.com/eneiluj/gpxpod-oc/uploads/427688b80bf8428dd45bd15d69b19075/screen3.jpg"}],"translations":{"en":{"name":"GpxPod","summary":"Display, analyse, compare and share gpx tracks","description":"\n# GpxPod owncloud/nextcloud application\n\nIf you want to help to translate this app in your language, take the english=>french files in \"l10n\" directory as examples.\n\nThis app's purpose is to display gpx, kml and tcx files collections,\nview elevation profiles and tracks stats, filter tracks,\n color tracks by speed, slope, elevation and compare divergent parts of similar tracks.\n\nIt's compatible with SQLite, MySQL and PostgreSQL databases.\n\nIt works with gpx/kml/tcx files anywhere in your files, files shared with you, files in folders shared with you.\nkml and tcx files will be displayed only if GpsBabel is found on the server system.\nElevations can be corrected for entire folders or specific track if SRTM.py (gpxelevations) is found.\nPersonal map tile servers can be added.\nIt works with encrypted data folder (server side encryption).\nA public link pointing to a specific track/folder can be shared if the corresponding gpx file/folder is already shared by public link.\n!!! GpxPod now uses the owncloud database to store meta-information. If you want to get rid of the .geojson, .geojson.colored and .markers produced by previous gpxpod versions, there are two buttons at the bottom of the \"Settings\" tab in user interface. !!!\nGeolocated pictures can be displayed if python PIL is installed on the server.\n\nGpxPod proudly uses Leaflet with lots of plugins to display the map.\n\nThis app is tested under Owncloud/Nextcloud 9.0/10 with Firefox and Chromium.\nThis app is under development.\n\nLink to Owncloud application website : https://apps.owncloud.com/content/show.php/GpxPod?content=174248\n\n## Install\n\nNo special installation instruction except :\n!! Server needs python2.x or 3.x \"gpxpy\" and \"geojson\" module to work !!\nThey may be installed with pip.\n\nFor example, on Debian-like systems :\n\n```\nsudo apt-get install python-pip\nsudo pip install gpxpy geojson\n```\nor on Redhat-like systems :\n```\nsudo yum install python-pip\nsudo pip install gpxpy geojson\n```\n\nThen put gpxpod directory in the Owncloud/Nextcloud apps to install.\nThere are several ways to do that.\n\n### Clone the git repository\n\n```\ncd /path/to/owncloud/apps\ngit clone https://gitlab.com/eneiluj/gpxpod-oc.git gpxpod\n```\n\n### Download from apps.owncloud.org\n\nExtract gpxpod archive you just downloaded from apps.owncloud.org :\n```\ncd /path/to/owncloud/apps\ntar xvf 174733-gpxpod-1.0.0.tar.gz\n```\n\n### Post install precautions\n\nJust in case, make python scripts executables :\n```\ncd /path/to/owncloud/apps\nchmod +x gpxpod/*.py\n```\n\n## Known issues\n\n* bad management of file names including simple or double quotes\n* _WARNING_, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n "}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""},{"name":"Fritz Kleinschroth","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhAaMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTYxMDMxMTA1MTI2WhcNMjcwMjA2MTA1MTI2WjARMQ8wDQYD\nVQQDDAZncHhwb2QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCq9p5l\nzNzR98l/xPgrplWrGQBhF6aQSLpnIyCdLAYKk+CmXn47W1pHh5CRYyCCyB8YPBBG\nTwbpP69pP1updfK2vUt+ShYmCXLxOLB3qEdhnwgqFfwpC48Ocev9d6XcacYp7jwu\nRNtv0ocMkm5o0TWWupcutQWkmqzCVq+OkrqM0xrf3mfPymuM6edEREshukoL86Ei\ngTuMMGT0XO99LikszvdceNQYEATix1MHzSVhkE7jHCNBXb95H6nQGr0v7R1MIbrI\nGFlgqxwwNNKwBFNfPMWZVnKwz9hoIwW6WOuu7ntwVcPqwB/gUsRZJTu7EjIW0trX\nnhA6xLlc4X66W1sdUCkJOxsV+Y21akz6wynI0SzIfjALLI2Ls4QWrPM8GOX8nPVM\nm+Y5WXzqLJScdWYoefFJKS7kxwUJRewREB9ykCG5OdDubV+Iu/6jh6HWx3h4p3ih\nqkDypPWoxpfLgA8VZkLD1RRKGkRa858QBGdF/RHbYT3JfLEp9l9gJVKZE/yw7HKk\nwsZ/T6CMpLyorpd1XWtp2wLX8lr3pp9ecVDOdAMSqD2thDMDsZA82JrJ/vITwkCF\nBlqtDZmT0UnpxYNYTfYBam5Cd00jsqCt+Hr+QkODNe8Yae9c/D0zE3h2Vt7g9H+W\n7Ei+rF5nDYTBAApoETxK7+aUZpycBf3THAJOcwIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBbCGAEwg3M5QJDMnZgu0zNOH2f9bamAS9ksyCZqzLoeQic1W7GYYe9NqAi\n7lO5jXRZpTN4L133IUQPtxCxuDooD2vFmCne92tLxJbc7uqlSVfhL8uMVOlnrA99\nKTAhySTZU5so8/OibrngnBmcdWwbhaWoCQ671M8aXM1wg2FVYDqB2GP3RvbpW11L\nOc+4tfh4mO4TwXygf7KYMOJyJW8mNNY7PZ+XW2Qe3vSXR3DuN8H8fgMh5wppXPJf\nE0+yNs42hwFjSojtI8BCb0s5DTleaakpDo8HQGNzEXP8tBlUYudtjzdP0jxFXbFa\nsT9pcMdeJ0/t5HqJSx1EjUCLYS4y\n-----END CERTIFICATE-----"},{"id":"ownpad","categories":["tools"],"userDocs":"https://github.com/otetard/ownpad/blob/master/README.md#mimetype-detection","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/otetard/ownpad/issues","website":"","created":"2016-09-29T15:58:52.814912Z","lastModified":"2016-11-19T17:37:52.278497Z","releases":[{"version":"0.5.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/otetard/ownpad/releases/download/v0.5.6/ownpad.tar.gz","created":"2016-11-19T17:37:52.234684Z","licenses":["agpl"],"lastModified":"2016-11-19T17:37:52.423930Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"dh+Txg1iVfqXr8+cxplNQuBZGErSnXUo0ewGwnybNMJqp8/EjEo72+zPpW3dVnhY\n67YCvhrm2bo+VRdFFymEfymzSJu9nWVFkGJhEwvTxPyIdAtuD5YAVrzmnR6L+H7m\n7Q1nXE63ICPCAQpHkxIfIXLh25OhWeyofBB8AVsjDUNn58FEYJ8fFkr6dCgPriZS\nsM2J+xtZMDYufy+xFMsVf/Q3WopjFuBjMC3qOecW76ZTwtREaswOC2RtpzUku2r1\nsogrfFlFer3Ii9/CWgOktnLfjB1DzbTwdEkM2xNVBRJgdMXt2VLA9FsxFFkjmr5A\nl7x9cNLWA8RLpOIpIMBbaef75u5HgRBvSvq114UsA9GCu/EYbIgD8YxEt7xuKd4t\nenksJB5gJ2IQNdHrPbsil59AsJ/dismDN6ktYgWQEk5dINzvm9EAvucueW0Gt+Jr\nqEC5WBgJucsFxSvkHh52v43M8jgPYBfHWEL/M/+377z3+mbuIh+BcQ+vcDdiqxTF\no3n0+gw3QYIhLEe75sUhxG6ynVUdW25AKKju1kVj3KJnZTBH1R8t8/zy4DnJG8d4\nuRGqyU4BXpZjEC3nVlsC7vCncWWhxl0WZQ/MWKqsfjVAU4I88E518D6NioqMnPEJ\niCZ2x+69UCDEQyfCSKajgAYT17r3OhZei8F9KSCH8Vw=","translations":{}},{"version":"0.5.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <11.0.0","minIntSize":32,"download":"https://github.com/otetard/ownpad/releases/download/v0.5.5/ownpad.tar.gz","created":"2016-10-06T07:51:05.278637Z","licenses":["agpl"],"lastModified":"2016-10-06T07:51:05.348825Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=10","signature":"nYsQ9U5r7uXwtcquaWGm2XMJBNYCcA95aUx9gLZ/wEmjCHqId7+MzcCdBnom33+j\nat2XR2a4R96UAUP78bfSC4Yb7nPepFT51Y8CSpV3mDT85/+SgJdq500fXldq+qGY\nffXLneadAztyOfZO9TXljaCLdREYI0LJIGVENsxBQVKM/eyGIuZO7fF70cH5vbfS\ns37+BXB+fxcDTlP2Xuulra8HsNoS81bzjsdVMLM7B7QwwO6rZ1zd5c3UzQ1LmY5g\npQUBNd0KjfHfZ6+Fd64XZO6NGfgucGNmL3lgxdsfUqKiLtikvFxK39dYW5MckV8p\nvLoS2nZ7cgETQmAW9Ahn3ro7gXWcPxzL41oWtZOOHRRC2Yz5zlZ3Bky1o+bF9g5a\nYdDF13zV6utUkhlplZhWbjKaXa04rzOvmut8Iqhx/tmDtZRYtaQXJZWutVJYtPC3\nH86uJJnUHHNFHeoT560mp1Hq0dTeR+G+yWsPacPD1rTYgZOUVEtj3Y+YdbTODR2o\nOdGzeYFl+6CL/OcY4wPGRUCTFwvc31lIUd4DK5SPfN+IGtuuXhAqVhwy6lpkcKRs\ncj8sBoVXbMvEtMnt5uARBvA4tyVffUL4oyoIsUnvXz4u+q4WVt3T17swLm6HjGVC\nNVqU0srHN7EeBRhHlXP1CrKQWGQlS4k9j9Li4Iw+X8s=","translations":{}}],"screenshots":[],"translations":{"en":{"name":"Ownpad","summary":"\n Create and open Etherpad and Ethercalc documents.\n ","description":"\n Ownpad is an ownCloud application that allows to create and open\n Etherpad and Ethercalc documents.\n\n This application requires to have access to an instance of\n Etherpad and/or Ethercalc to work properly.\n "}},"isFeatured":false,"authors":[{"name":"Olivier Tétard","mail":"olivier.tetard@miskin.fr","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhAPMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTYwOTI5MTU1NDA3WhcNMjcwMTA1MTU1NDA3WjARMQ8wDQYD\nVQQDDAZvd25wYWQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6CY7I\nHRJTaqDu376vt+kruX+QOL864joScxRuh3IOVcQktCvxasuA0EtrX7TCAQrV1tBK\nfkqJxU9uOV54RTgyh30yH/ZtnF2bYQwViGM06Snc0riqWydFrN5fxK52dpZWs63o\nUFCNhHxrX4aUGyfXu5nQMISLm4QHoZ3LDLofk1ZsiK62fM/Jz8N2PM8qeHzf1ATo\nSKcAOd3UeaS9C8bv2DuiZM7unkSO/tjrBzkMiq8ds9sIzBBsyk6BRh2HQjHPOtmO\ned+pS9mIZmc2xhssXoHL4IfZwTqwhktpsaTl7v0ROw2dwDATz/QoKMkUpboQ5lkz\nwgLQhoIZw6uAZ1R/Qjze59I3iU8zIo9quDarHBotZNXboYCmg9FRfE4mHtegVaa8\nv1a1JvFQ5gvsWEsKSV6Bzb65GTp4KG4q7YnUrzh6HJyDCGLvLlWm5OWsFj6sNzXX\nwLOv6JLORMbF4ZIo2iybb3x7gdfCu9JxMZ4JtOUC8KSJ6+ub15C1Aia3lN68dNts\nY6KwUF1Ted0o4OQPAulq5pUc+g6dTYmIKsavIiPKhMtl86AbUK50vRTeuGdFsT7X\nav73IanPdFI9bKth+tajgvB6dxcVnvBXbrsLUyEcsxsxtBJvQcMYS4aZ6ZJYLTep\n7AdK0Zt1iMdXB8+4PCps4rcG6bYB/uJeEAVm7QIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQCM10O+sCYhIExnx01vGzKlnRS7MSQNx8ZMmbR5Elfz4AVJAEJ96ytS2DXH\n2c+hcD0wAenXQEFk920AEqFQBT8DP34p0FmF83aMHW08ovzFiu4MdlhcqrLnko0h\ncZTXHVyS/8JZh+o6SVm8R0/BBLF1MQQ5TqRkJehbmk6gL0+MSYxehUDKWTjJITkR\nifneTw/Ba1d0AXBOq0c0HFyGxMPIlWe4qn5LtxH5t0wyVGeSj4jyv4nvd3ZGuAgY\nEUa2uYht/z475k4+vf0YhV98iQH07GnmlfD2TDZgmOCQGKlNfJh1v88OZyLLa3dz\ngRHzGwKbAiJ8T8bbpZ3e2ozXxADr\n-----END CERTIFICATE-----"},{"id":"announcementcenter","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/announcementcenter/issues","website":"https://github.com/nextcloud/announcementcenter","created":"2016-09-14T10:38:53.939634Z","lastModified":"2016-11-24T11:21:50.324839Z","releases":[{"version":"2.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=10.0.0 <11.0.0","minIntSize":32,"download":"https://github.com/nextcloud/announcementcenter/releases/download/v2.0.1/announcementcenter-2.0.1.tar.gz","created":"2016-11-24T11:21:50.317635Z","licenses":["agpl"],"lastModified":"2016-11-24T11:21:50.386203Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=10 <=10","signature":"lmqeE6xBqUJfhuXPbjCfuWiIP0FEB4V/SsF/OvYar6rLpvDpJVf3DJoeIoxXurRP\nE9/xCcNN44P8PreRRDnFLCa0XsKOtwoGa56Lxk7IKvtiQG6xu4J6PKM+q/tIeF9K\nakw0LQXtjZB5InPhnCDDbY5YS9jgGEBylSHsgNgrElipcW+BzOBu1Amw4FECVlQw\ncQ83bio+YPZvsnE5+v3/bAx0m6QNxfyN9Sn6rMEqRkY3jfA3vejXGQH/XkputfV+\n5hOz48KbOVg7cKxg+ieJlSwC0aYjb+RXiopjc3icCoIF1llltOOeSsVYSflOb080\nupociPgQ6qIab/VNNXa2YQ==","translations":{}},{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=10.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/announcementcenter/releases/download/v2.0.0/announcementcenter-2.0.0.tar.gz","created":"2016-10-06T12:41:56.195206Z","licenses":["agpl"],"lastModified":"2016-10-06T12:41:56.263124Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=10 <=11","signature":"NVWYz73KtuoZ7ti2sluztJO5aFUc7PzhlDcg0VWyAQd1H7sk5wjw7i0bhrjw8O7M\nLsrb+PegnsL9eMlYM2WrRom+RF1PDP482xymZf1T8vh8qcTCm3TK89xSuiSm8yoA\niWUb/Uv/ODj74wVDWqWxAFKaAG/FestCB3InOOZQqQZLzlAV0U9ziYDGNzBjFqof\n9rLNxJ2IOqZOA7hhMIKhSrpA0KkSfNhBsVf8CWClYnVkZQiq0LoYkHkHIlXmXUr3\nOfQFKEjtsx+bNLa6CkAaocHGHJXAofX3GQZ9cjBsjZqiTfbXfcVk0kRfz7pwL92L\nI1McfJYvgMxDQG5bjRpNJw==","translations":{}}],"screenshots":[{"url":"https://github.com/nextcloud/announcementcenter/raw/stable10/docs/AnnouncementCenterFrontpage.png"}],"translations":{"en":{"name":"Announcement Center","summary":"An announcement center for Nextcloud","description":"An announcement center for Nextcloud"}},"isFeatured":true,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.75,"ratingOverall":0.75,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIDDTCCAfUCAhABMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYwODIzMDkyNTQ0WhcNMjYxMTI5MDkyNTQ0WjAdMRswGQYD\r\nVQQDDBJhbm5vdW5jZW1lbnRjZW50ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\r\nggEKAoIBAQDPx4Hp1HdBo5v7bDEiVcv2UrVjNW+fPPKS/5rwbagtPcE/1v3WDcwX\r\nvFwaXk8qCn2UpPSQ2b1rTuTDm51G1ZmEZhNiio+rBfEe9F+3tLsq9lElqIPKhkAq\r\nEUVI6dcN+jSqvLmLhuwloEoQQSYaLrX75mY3lGqTb83h1l2Pk/brVixuVf4vJW31\r\nTgeieuGKnC+keLzKOrvTHffJakU8ktwB2Nuu1o+jN5a7u1bxKkP3LjEWPjq236hk\r\nAoOcW/wi1dUEyUKUZsZQeJyvTJh1UXdLHKwYywtUu1/VLZ1IUtNyPBfiQ8ukPp3T\r\nTnSSmG3ZnvsfM6DmAvLZ8bBQkMBzEcTLAgMBAAEwDQYJKoZIhvcNAQELBQADggEB\r\nAAB3i2NgiZ4rpNag7cXYdaFxAxdDWnke1+LX2V2R3hzGmx73/W6cKLpo3JBn9+zT\r\n1aEjlqkt0yHu4aAPVYQzOa5zIV8mjP84p3ODSyV9J8lfjFNXT7wdA8+9PVx3lVki\r\n2ONoCNBh1kOxnxI4+BsMlQfF00ZbBSuGcMm3Ep3lTFWXzuUn3MQITzPwkL5LkW6a\r\nsli/yAYQRTVDsXD8A3ACYT7BG31jGxyXtIHzqCci0MhZFdKKayMYkwfjZchIUtGN\r\nJJoU8LQoHwGRtp3wutk0GlFzpEQEvSsn/Lsvvot5IfIe46tnzA6MVj5s64s5G8+Q\r\nphhXFlzXqO/VxquPdbfYjvU=\r\n-----END CERTIFICATE-----"},{"id":"ocsms","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nerzhul/ocsms/issues","website":"https://github.com/nerzhul/ocsms","created":"2016-09-19T21:56:04.745481Z","lastModified":"2016-11-11T16:29:55.864273Z","releases":[{"version":"1.10.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0","minIntSize":32,"download":"https://ftp.unix-experience.fr/owncloud-sms/v1.10.1.tar.gz","created":"2016-11-11T16:29:55.856768Z","licenses":["agpl"],"lastModified":"2016-11-11T16:29:55.947926Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9.0","signature":"hVzbkmmtJCtiOkZGe1mkWElqS3IPQ8wLtSzikVvoKmcg+Zq3YLQjpQWzy0t3UVjo\n9I/BfnL0bF+kjtGc9xF6M8IQaFqPrfJmN+lNT8WYIKLI97TTsLmJGg8Q8PAux3nY\n8/NxMjWdByMw9nVBClKo0o9eSW4+EnaUSJ62Gl/XWjq728kbB16WZm+iesk8LjJJ\nqqAgczWGwz6lkZTCN5o9n0a/YoLJTf4iT+OItHZyS609Cqaxx9CAmZPj/Xn5g1fm\n8hqO2ITAXLoBj4rYS/QsZTMcubtGkJ8fq3XYKVSv2UXZfvGsNWbbGV7puKN33uWJ\n5MrdoMlJ8XnJRPDlCBcb00LY+AB+hAMooLnNy765/Ew6ztp4KNLEPWGG+Ut8/Lkk\n0jIULl1RF/FjlW8P26NfwH36K30RCJFY06OFcWnxGBkkQaNFORDIsKcqTAxkl4x5\nnfKBkNdQZppCVfOSKOZj4NkWfWx75Ouq1S0QksmOsMZoOcjy1TbBKR8h6dt9DQub\nWpYBL0QwyQShGp0Vb1qCKkP69ZQAHVUJNzIFPz9LyoguvFyv8iZmAPLYDnFBvlf2\nnSHtA19rnJmZ4H7RJ02r6BdkstxISvEiHU7RLjNQxcb+DptIWX5C03wH87HTNIhr\nvptPorEoSY1KwW9fqUvvLE/c+vfkr5cvIEwZlyVKVXU=","translations":{}}],"screenshots":[],"translations":{"en":{"name":"ownCloud SMS","summary":"A app to sync SMS with your ownCloud","description":"A app to sync SMS with your ownCloud"}},"isFeatured":false,"authors":[{"name":"Loic Blot","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEADCCAugCAhALMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYwOTE5MjE1MzU5WhcNMjYxMjI2MjE1MzU5WjAQMQ4wDAYD\r\nVQQDDAVvY3NtczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANqZVIzM\r\nwBJuacuvgYKr2KnXuYhjKjZ58nfspSebsaGLr0ifBbo8L+NH5eaynnLCNhpegmu0\r\nO8D+KrbM1LtIkcdg1/eFpN5dTc6G2OAc9H9stmHs9nroF6MNhszgdZCz8Q8xkSoD\r\nGdSm8hdPg5GcfLrH27UilGtzdQlWJ1DralLMt3l+SfGJo152c/dc+e6SuT8+EbY2\r\nCeLdH5ImasXNpUgY+tAoEt2ZvhBrUghykBJTJVOjwL1jGLT37ybMtV4FBKo6hpeg\r\ntq/YzEk1ijBAC4pmoNWixDKCdolpVJVz0fijI9mlda3llurcp8eMhxfYJ9soXLHp\r\njvLX02YY6RfPcyy48uWVk4IEt9BvZWEVAAp7hCGA2yXrVSsR37E6sDbLsBcKav9A\r\n6dkGAgfmGkr2WT6O1/EhK/MakmnYO4WD1B+E7PnxtP/wOa+aQBmntQcd7igDiwzG\r\n6h05NYAWcRhqfZ4KWYsq0t0SezMbuHOhwzzi22q8wijC5YZbmhKSh+b3N8XwYKDi\r\nZaw+fSahPbRWaLyR3wn9zh7vKCwqrG3ugrNo6CtyoACAnmxKZ97ROFJIQTe3ndLL\r\nmv7Wy8iCZLhRYUaW/GKrF11AFwBVec9xmvkgU+PIKq2HSjwi9sCF+pFyhVjmq29C\r\nmZEPKUV7ySIpNHXpsXm8kTJJfqjSdb2ECbLfAgMBAAEwDQYJKoZIhvcNAQELBQAD\r\nggEBABvn97e8Nw8KAscf6FX/nZ99rEX+3IrZxTC8fmBgNwAvlbF2A+QZQcFI4G9/\r\n85nHK117+u7XDuwWl4QG3flWlI0hDE59Ud9Bd4AiTQ12VoXlNdYoTg/mXARxVozb\r\nKYqZ+1xRQclZKb2AqW8YiGo18okIKovn9VVRAFYPYx4O3Ve1FjgfsaMlIZLiXUFm\r\nkk+2qWo6kYsdU9FABLo6izx7RFOMbnYNre5FmDrWP1Dga/U7ErK/Dilh8g9b3HrP\r\nwP8OIZhdtFWw21wDTfyqrb9EhC/tsjPVP9u+bqyognHeiMhjbVYRbSvz5o8T7Mhj\r\nbxalCt4/LnMIfMwVyIvye7Uy2GY=\r\n-----END CERTIFICATE-----"},{"id":"rainloop","categories":["social","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/RainLoop/rainloop-webmail/issues","website":"http://www.rainloop.net/","created":"2016-10-20T04:17:37.217555Z","lastModified":"2016-11-18T11:36:04.309739Z","releases":[{"version":"4.26.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=5.4.0","platformVersionSpec":">=10.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/pierre-alain-b/rainloop-nextcloud/releases/download/v4.26.0/rainloop-4.26.0.tar.gz","created":"2016-10-20T04:28:21.491747Z","licenses":["agpl"],"lastModified":"2016-11-18T11:36:04.619927Z","isNightly":false,"rawPhpVersionSpec":">=5.4","rawPlatformVersionSpec":">=10 <=11","signature":"nTYIVSB6mIwKtXIrKoVGsOGFflpLjed8jFem1VLQNtXQj4bztnNrdc4YaPIn0yzM\nyLpMSqRDNzdYNFuOeDiyKLPJPTA++MotLCNjEe7kxUekek+m+qzgnGBdcT7RQT6R\np9xWGecnVx94d6aA55uiRhgQRyHpdDMMLCOz1be+HvpwHy69DRFZ1+SPmGUt6eW0\nu5yS0vHCu1K22cbrVNXFKjxAOlGcIDm61oQuz7ycl3uAujZO4rZbWt55jilgKGak\new559A5gTp9W+j+TWKIcg6LIZ9zLRlGjcQrWJrsc+OBZQcqiYimSFyO6HhfT9TPS\nPof//I+dSsd+H0SRGGeL8DvSnK+NKZL1q5EX5pziqsv6nZFITpCDwmAN+I8AnXXL\nSNkFi53M8RZTOABpD2x7YPYP1cEvwrRweqV/C/oHcYnpfh7D2DjFeWwXsjeAXrHY\nhgFhPrg+7rf7g6UmJFOCp0dC9sBdyQ3KtJkv7bGqPr854r2cdA7xW0QHWQ2in9qQ\nLhIczc32ECi3ZVVgyF8zyT4Y/3MRS05oX3FHvHyt88mjni6bVaO78F7ZRSha8gHh\nNOAkku7AMXPvUCHaZP2iVCCoAViEso8GeR3O8xh2G42Ai61RLYwx8LB1+23EoJTr\nmfFuRYNSg+qAKCokXNnh+lDlwu4AkaQo3vtKGPXvU7A=","translations":{}}],"screenshots":[{"url":"https://raw.githubusercontent.com/pierre-alain-b/rainloop-nextcloud/master/screenshots/2016.10.20-screenshot.jpg"}],"translations":{"en":{"name":"RainLoop","summary":"RainLoop Webmail","description":"Simple, modern and fast web-based email client."}},"isFeatured":false,"authors":[{"name":"RainLoop Team","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhAXMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTYxMDE5MTkzNDEwWhcNMjcwMTI1MTkzNDEwWjATMREwDwYD\nVQQDDAhyYWlubG9vcDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANqB\n5jnF9qZ/qjckt0kRjpHCOMtJumW/KiQoMeNP5nGv4ad0DS3KemOapUef8Zn7qCYb\nMnODhK7HBwPifFzI1j8bnT2hP6E0geFLb0MdN59d2NF0n4CCs1+BnepQPJ1kFbPK\n35wQRi0RDeTf/GQ+/owEVCU9a9W1P/VUXk8Z0vMoQxCXEdRqnB63SgsKl7DB9G/C\n4SYrgGor+OHVGl4ntMZhJujiM996DttrNK3iZRGkQ07L+lfUIwQ52XOhQNRdic4p\nB03lw7PpChwPGMv/EEvdR5HpCJQBJniqJbbu3Jh8bMBKTE/8fCzN3vMXICB2g3Bq\nlKkZW6fnJRGsrZ79fsQnl+WBPNSrWRLOxOfe1fyCFV1ljFB4nTH7uF3pC8ZRgJes\nkHIESHz3GJm28hn4+17ESMGHBCbs7L9FK2GY31cobU0VRntLxpSG+d9njbIAgMG1\nS7U+oKVFQhSVpdXNOaUNqhcQ3HkbQTLEP0k53A/lhLQb2+KPd8nntaELjwNyrmZg\nsVMgHj/zdlvrbguZjZFzUzDBFvkuv/5M58lNT/D1C6ufVp/R6eLsYI+nnk1ojAjz\nl7N6U8X5SXpD+Bm7+Kn1PH+bHl7cViCx8oXJXO2RhP+COXckw7BDZKtjItYHNG7M\npFwgYqWpvCu9LN6IN5a/eLqSI76dOOP3iYbaTH+NAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAGB0Vq0l6ndGTgNbZxSEFyBR3u3tiR3pWK81DYjsui7qBoO6P/BaGmf+\nraSwHPaBOwA9XNS8jcGLh5xdqY2p/m0dTS64xNjVL9nweWsG+FwVnPANo8C4nXdm\n9ajJ4cdg54stQK8qn1uh/xPcd23GKfYJazjYSwYmZ3pXXdzlGN9NxkeYJQxJ6B+5\npzAeVGiABI/e5URpxzz2UayRX7EE+vtpe3B84hzkLqsq0N39ZN6KLfaTyEBGLzqE\niLYeXQTV0XSRs8xVt+iyGlj7nPkv2DR0oCqRpWUFWeSBI//niDG5WxS3qg8kacSW\nfDSYhSN+IjrnIkwNtc8V9t7/GeQB5FE=\n-----END CERTIFICATE-----"},{"id":"richdocuments","categories":["integration","office"],"userDocs":"https://nextcloud.com/collaboraonline/","adminDocs":"https://nextcloud.com/collaboraonline/","developerDocs":"","issueTracker":"https://github.com/owncloud/richdocuments/issues","website":"","created":"2016-10-31T08:55:45.631429Z","lastModified":"2016-11-24T12:13:53.905352Z","releases":[{"version":"1.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=8.2.0 <9.3.0","minIntSize":32,"download":"https://github.com/owncloud/richdocuments/releases/download/1.1.3/richdocuments.tar.gz","created":"2016-10-31T09:03:40.389355Z","licenses":["agpl"],"lastModified":"2016-10-31T09:03:40.439510Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=8.2 <=9.2","signature":"s5giQeiU2zwV5X6FmxWXiG9LtNDeKBlFqK+hfvGNbGZ+nic77Y+AnXHodV4lb3Ko\n0C0ThFLuafaZRdp9rBIN2K/acCfCYKJewGuYErb7FlEl+P9J4OQbb9pva0htZJw6\niuG5eyeTufi5MKB4vuj4+jo9zhepOFAtZMa7o+ZCfJkt8vDBuq5AXxomEiZRtW+n\nf9PPUnq0z7DJVwINhHvvBZJlSLjkpJ6VIHAr+/ElWr8O/mDKq5S5ohbvpDcPqR7b\njnsBckFDLFUz1FX9dA0JCJEKMMfkcfGqZcjH17NdjKAxRW2soN5cEKluu5MkOhz9\nFEPKfshzbrfUIm5MaFGv6w==","translations":{}},{"version":"1.1.14","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/owncloud/richdocuments/releases/download/1.1.14/richdocuments.tar.gz","created":"2016-11-24T12:10:13.337165Z","licenses":["agpl"],"lastModified":"2016-11-24T12:13:53.963638Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"prDGlfRPxqT6LP0BsAFPwGww7P4Bngha2N4u5B6+F02N+RVOjGtTcXKqvM1KjZb1\nCo7qJvgJmjpvIvDmB+rup02i8ObfwP2ct6UdsD7ouzOWJG2sJANXK31bHyvOmQ2h\nvKu5eNcOkf+WFyFKYi51TbsfWn2+1Wge3WWujKAVcEvqtcOOz+uMWNtqzBptEupk\nE1aaRnQfTx488YB8Ubul06LIY0PNCHgGCWPgy817tOVT7JA+V0P0FFonl/PXE0dr\nWgtxRJmvGaNiFzYq+kQmdKMfayZTm3kdVgP0W52t5wp878K0i4s2KPg5lANvjTz7\nDCT+VV2IGIE52o4RpMUGyQ==","translations":{}}],"screenshots":[{"url":"https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-document.png"},{"url":"https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-app.png"},{"url":"https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-presentation.png"},{"url":"https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-spreadsheet.png"}],"translations":{"en":{"name":"Collabora Online","summary":"Edit office documents directly in your browser.","description":"Collabora Online allows you to to work with all kinds of office documents directly in your browser. This application requires Collabora Cloudsuite to be installed on one of your servers, please read the documentation to learn more about that."}},"isFeatured":false,"authors":[{"name":"Collabora Productivity based on work of Frank Karlitschek, Victor Dubiniuk","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIDCDCCAfACAhAZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTYxMDMxMDg1NDExWhcNMjcwMjA2MDg1NDExWjAYMRYwFAYD\nVQQDEw1yaWNoZG9jdW1lbnRzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEA1jk29m6JykcJ2Ld0YEpjPMYh6kwxY6GysNJnfkA/th7tPWL3+vBJ9oTYyVnZ\njwAE1Cqwfa9MyBKMZ2IdfIqtT8PeWzuFP7Ib942EdxUpwwh9F3lykeGsj0h4zQwX\nF9OooiS99PfLX+JpkKm15Ujb00iLB6xQmq0+3NeOT1CTD1ziJ1ueOcxBKMwaFp2a\nPuz3F5ywqCvpmxG/OBuOs0LI3/zStXhBNbUMxBrWblr7zaVNJXl/I2JCKj8Wah/H\nXUEEGbW15fAUP1f+90eQSxpEoCZDBHXOQCTJYzySGv+BjU+qlI9/gS0QbrsiyzUf\nO5lyvi8LvUZBzpBw+yg1U75rqQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQA9jU3m\nZmD0ywO3MUsG/GLigFtcWi/p7zp2BliR+NpuY2qNFYDcsIb8ZUudmUc/cJRRctzy\nAPaLLj/d+h5RFaxjTVvim1PSe6M7urK/IMSvyUVYCeQRYpG8ZJixKTCOVIBaWHMz\nxTfc51tm9EPlpJpK6JtaWrYYoWGE3k9sINdJ4JkvKkE2CBAqVhX6ZGyEQ0bnEhtk\nRu1DXn+LW7TJ4NZ8VtLWvmW/6Kfmi7dQ1V++Kmn0lO5ntRt5altePbStCHC8bhGp\nmyBOrjhrJgLIwvgH26MYZhdiSkFzoE38nMPZdrUmUDxcPCwucWJqgzDPudguFthj\nWCVZ3TTG/2z3+tWM\n-----END CERTIFICATE-----"},{"id":"ocr","categories":["files","tools"],"userDocs":"https://janis91.github.io/ocr/","adminDocs":"https://github.com/janis91/ocr/wiki","developerDocs":"https://github.com/janis91/ocr/wiki","issueTracker":"https://github.com/janis91/ocr/issues","website":"https://janis91.github.io/ocr/","created":"2016-09-19T12:07:49.220376Z","lastModified":"2016-11-21T11:22:21.024501Z","releases":[{"version":"1.0.0","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":["ocrmypdf","tesseract"],"phpVersionSpec":">=5.6.0 <8.0.0","platformVersionSpec":">=10.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/janis91/ocr/releases/download/v1.0.0/ocr.tar.gz","created":"2016-10-24T06:50:43.283900Z","licenses":["agpl"],"lastModified":"2016-11-21T11:22:21.269108Z","isNightly":false,"rawPhpVersionSpec":">=5.6 <=7","rawPlatformVersionSpec":">=10 <=11","signature":"CBJkCIiUKyf2NuWfz2zJ3grhf8p7wJes7DPV/OxUzhlxIH0Fh7K54+U5A9JOOi6f\nWPhjXG1ylkyIVY1glr/B8svWNsD4jAclpnUi1/9ZW5UPT8LnRBfTbtF9Uoj0OgNs\ntsGQYbpuREoHnjbJWTRe0kq1OsOfX44xuf8PuX43B+lpQPW4iRSSz3ZIhdPcDGq1\n7pyqQM7gdKhBQ6/tOiwd7Enyt5Hi4V6jhwhUOCYeTNiLD2V3yKL+qA9DzpXUfNNw\nLGTjcaMrifibHQIZBZWbPPMmCfMJZ7GO9oR4gWHwkhWqt0yVWAJXAHJBLd5vXC5I\njtRTXRpHO/k6Dtqem8tZCVoDE5MAC7fDZ/0XzoFiXHciP6MenVasVcXo6xJOJc5y\nGsrecNftUEhP/ngxA6lMBVkLmmdpiexVisvsavPi64i34OUA6qOuxjgNVBDwg56i\n2lOEVvHa3nn0UX7ZZoQ/Nu6Mz7J3Hx/VDlttPuWe42eeJAphyDGubT1M62gW8dVB\nD3tJOF7spnK6I3BhVLviou/zs30AIRVBDTU0Orzx78cbInwy6/vyJib2a1olAaHz\nv05SzlQRnBWM4jYBe0mA/2ds9AO6VrXGrT/iLlHemj6JYoGBM185TGewA7OJyX3a\nHSlSDqaremmi+aS3onx3AKhXykDxTRkMVarePwTzzFs=","translations":{}},{"version":"0.8.8","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":["ocrmypdf","tesseract"],"phpVersionSpec":">=5.6.0 <8.0.0","platformVersionSpec":">=10.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/janis91/ocr/releases/download/v0.8.8-beta/ocr-0.8.8-beta.tar.gz","created":"2016-10-10T18:01:16.076330Z","licenses":["agpl"],"lastModified":"2016-10-10T18:01:16.169733Z","isNightly":false,"rawPhpVersionSpec":">=5.6 <=7","rawPlatformVersionSpec":">=10 <=11","signature":"uEvhHfQCrzb6z+QuOoO8rYXiMsZFkrFWEqDvTyOTSgFKvo7dVoj3EfDfaApgcKEB\nIM/SqjLSO0lNhrp8F2mST3twbvLDprKsfrDWKFE6eiH0yKl2aNB+cHWE27utARaX\n/QZBD114vbWeDnbaBa4b9OwtBXDqKJrnO1LmqSLFP8guAlVTkU1jSPkRTpmwAcAZ\nJA/aiN/D2LSGfiNp/YdeTuzU+gPINIs9dCb6+PPkyam8PCBaXUSSaW+c0lAQHln+\ntb3EXxZ5YXdjPWrpEyHvFLk1N8s/w615QoMxr5fEs1M8D29aGbcL/wu7LXH4X0Yn\noiWwIFbpfrpJQlrIFumxWZR74JXiNr9J7ijnQ7SjxdHCcrLxMdnZ2cwq4iD6PnYm\nnIojhlhPOqUIzsWYCYutLWDQbUQz9eyWbj/+7XL+5KjetUUr/MnCu6xJ27IqFbAX\nHc8KRCO+9I0/qMQ2/rCZXBMeo39MGhhkgkVl5YAKwC1IEN/jlfyVNXZwYlfcHLKj\n6aNQ4zN6gGOerWWZ8qXtOeNJN+qv0nmXUKrZdnZUAhxOdB4G9Ym+JujxJZ9yNIWV\nsiqAI9J+OIzCwv/dzZhaHadONoo/RTF+Fl6Hy56HyBtMehb8w9p8ksVediqf33yt\nFAE/tzKtNK5NiRd+8MZkq/GbocaFUv3C7Y6pLMpTE1c=","translations":{}}],"screenshots":[{"url":"https://raw.githubusercontent.com/janis91/ocr/master/screenshots/sc1.png"},{"url":"https://raw.githubusercontent.com/janis91/ocr/master/screenshots/sc2.png"},{"url":"https://raw.githubusercontent.com/janis91/ocr/master/screenshots/sc3.png"}],"translations":{"en":{"name":"OCR","summary":"Character recoginition for your images and pdf files.","description":"# Description\n\nNextcloud OCR (optical character recoginition) processing for images and PDF with tesseract-ocr and OCRmyPDF brings OCR capability to your Nextcloud 10.\nThe app uses tesseract-ocr, OCRmyPDF and a php internal message queueing service in order to process images (png, jpeg, tiff) and PDF (currently not all PDF-types are supported, for more information see [here](https://github.com/jbarlow83/OCRmyPDF)) asynchronously and save the output file to the same folder in nextcloud, so you are able to search in it.\nThe source data won't get lost. Instead:\n - in case of a PDF a copy will be saved with an extra layer of the processed text, so that you are able to search in it.\n - in case of a image the result of the OCR processing will be saved in a .txt file next to the image (same folder).\n\n**One big feature is the asynchronous ocr processing brought by the internal php message queueing system (Semaphore functions), which supports workers to handle tasks asynchronous from the rest of nextcloud.**\n\n## Prerequisites, Requirements and Dependencies\nThe OCR app has some prerequisites:\n - **[Nextcloud 10](https://nextcloud.com/)** or higher\n - **Linux** server as environment. (tested with Debian 8, Raspbian and Ubuntu 14.04 (Trusty))\n - **[OCRmyPDF](https://github.com/jbarlow83/OCRmyPDF)** >v2.x (tested with v4.1.3 (v4 is recommended))\n - **[tesseract-ocr](https://github.com/tesseract-ocr/tesseract)** >v3.02.02 with corresponding language files (e.g. tesseract-ocr-eng)\n\nFor further information see the homepage or the appropriate documentation."},"de":{"name":"OCR","summary":"Schrifterkennung für Bilder (mit Text) und PDF Dateien.","description":"# Beschreibung\n\nOCR (Automatische Texterkennung) für Bilder (mit Text) und PDF Dateien mithilfe von tesseract-ocr und OCRmyPDF ermöglicht Ihnen automatische Schrifterkennung direkt in Ihrer Nextcloud 10.\nDie App nutzt Tesseract-ocr, OCRmyPDF und den internen Message Queueing Service von PHP, um so asynchron (im Hintegrund) Bilder (PNG, JPEG, TIFF) und PDFs (aktuell werden nicht alle Typen unterstützt, näheres [hier](https://github.com/jbarlow83/OCRmyPDF)) zu verarbeiten. Das Ergebnis, welches jetzt durchsuchbar, kopierbar und ähnliches ist, wird anschließend im selben Ordner gespeichert, wie die Ursprungsdatei.\nDie Ursuprungsdatei geht dabei nicht verloren:\n - im Falle einer PDF wird eine Kopie mit einer zusätzlichen Textebene gespeichert, damit sie durchsuchbar und kopierbar wird.\n - im Falle eines Bildes wird das Resultat in einer txt-Datei gespeichert.\n\n**Ein großer Vorteil ist, dass das Ausführen und Verarbeiten asynchron im Hintergrund stattfindet. Dies geschieht mithilfe der PHP internernen Unterstützung einer Message Queue (Semaphore Funktionen). Die Aufgaben werden somit getrennt von der Nextcloud in einem eigenen Arbeits-Prozess (Worker) abgearbeitet.**\n\n## Anforderungen und Abhängigkeiten\nFür die OCR App müssen folgende Anforderungen erfüllt sein:\n - **[Nextcloud 10](https://nextcloud.com/)** oder höher\n - **Linux** server als Betriebssystem. (getestet mit Debian 8, Raspbian und Ubuntu 14.04 (Trusty))\n - **[OCRmyPDF](https://github.com/jbarlow83/OCRmyPDF)** >v2.x (getestet mit v4.1.3 (v4 empfohlen))\n - **[tesseract-ocr](https://github.com/tesseract-ocr/tesseract)** >v3.02.02 mit den dazugehörigen Übersetzungs- und Sprachdateien (z. B. tesseract-ocr-deu)\n\nFür weiter Informationen besuchen Sie die Homepage oder lesen Sie die zutreffende Dokumentation."}},"isFeatured":false,"authors":[{"name":"Janis Koehr","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIID/jCCAuYCAhAKMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTYwOTE5MTEzNTAxWhcNMjYxMjI2MTEzNTAxWjAOMQwwCgYD\nVQQDDANvY3IwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDDpXiwec4f\nXAT//7YBPSb4z6ZsBJSMfBq0VTL/HagjJnQ7BL+WagzWlS69IStNDqlIlenamYRX\n4B40heJIUinzYKjTRbr5UAw6MX29HibZccm/qgrk36o1XTgIsoRhmvSxbXDVIo1k\nbDOJN8gc2Gvswa8X+uOe9pfcDgAdqGxOvFnoKW89GnB01pCNT+xakNErGAFqVLsr\n2AeademAZnbxJ1cB54tQn2Bygb/7DKKY8EmFfIq6/27n9Jbph1FG9HIlWRT4/M2H\nU2pG3cCScWMEBPsW7kpfpnzLk7Q30Oj6k/rEYjJgmNYgg6oVnn0D9uRmhBYBnGyx\nMab1ilsK53lyuzQY0pmU8V5ULqpnNFAK6DVFfofEamDUhBPO+TZXEA5cZmuULRpf\nQQXmGpUQSyV6pS9WirMIqXFp9wmQ4vtjMdhu/6CP7cmtYZdq9uOhWEHbQM0mZUkb\n8hMjeItPx9XITI7Cge1JUOI8ZIwiB3USnQXcMd3v82l++/VgqHB7s5OaKPhygsWI\nM6RCoBcGiuQB5/fEUOg5ACOpGVyJiBda0Mi57AdoxdJmfnr7Bxcf2tAWIJL9Y7T3\nE1+V2BMxJOWwvVz26Cq83F41yXK2hJS+SbfQTqNUR8Cfh50CS9POvgRxNrJK9yvI\nkKle3ITRtGVM1XU0njWjnsdGg3D3O2mmjQIDAQABMA0GCSqGSIb3DQEBCwUAA4IB\nAQAbFddMbgfPI1szT57V1FKZrOrdYqQ7qjewlIQOzshGydbMtqS/9XL5hYocJCMt\nY6w+C/i6iEzO2Jx8D/k4rcZMXoVR6y3ZvO0Ke0gzSRsU+5eYj2FK1VV+cNIQW5Iu\nCYYIVa7pVPVHdeQH2Bba680bLV0HMF6b1fI9IwkfdCAinvCYZLjyEXZlmB7YjyA8\nHR7qPCNz4uG2Va7mlUHE3UYUYnlv8JFOV3YdbVL0nxhWwIdzSri5sxFIhdlabpzY\nyA1z/MCBEyTRo80jxFmL+MpwbsdbUJi7Qxlnd56zb6HHDGrLHXZTh9LXgyVbnhWL\nkxomWjIXQh4aMHQL4QF7U4EK\n-----END CERTIFICATE-----"},{"id":"spreedme","categories":["tools"],"userDocs":"https://github.com/strukturag/nextcloud-spreedme/blob/master/README.md","adminDocs":"https://github.com/strukturag/nextcloud-spreedme/blob/master/README.md","developerDocs":"","issueTracker":"https://github.com/strukturag/nextcloud-spreedme/issues","website":"","created":"2016-09-27T08:43:07.835196Z","lastModified":"2016-11-21T16:51:23.703819Z","releases":[{"version":"0.3.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://apps.owncloud.com/CONTENT/content-files/174436-spreedme.tar.gz","created":"2016-11-21T16:51:23.689599Z","licenses":["agpl"],"lastModified":"2016-11-21T16:51:23.826509Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"Mhy3hXeGWlIujx1Op39MMRdqHYOo360BCwr4FPWoTNNggH3aS0gWlh48DAfGYK9W\netNiOqIuRyA0NrVlsqR2vDILgFtODJSbKPyHd3PQn3hcGsjogjQ+dkKciLNLinw7\nOhbv6aDdRFLBeRHpX/7wOnWL5W3ko/gyn0Awvi88M9+nC5aARtqncQqPy2SxDGzH\nKlOZHSNDnEQCGMhA8hNWWKdVwNUJHod/wmBWpW5QVNSJq5DqrKZcNwpGM2UUJoql\nEqUMwDXk5uVH5r5k62Tr9kguDWoUEG1OqQSyeMY24AmA64tq/HSlAdZ+CX32bc4E\nZvm+n8poJBrdSVmWEaa4ZfYaLFdOc6Kcuid1B1Sv9kPhD9WD6T1sicdzjDzcorBK\n/MLReCuSb2E8aPTnFWRoAZ4xCUGs1IXzX5fmxI8VdzwR42R6RhGJ/rqMuZRFenZF\nbOks45K5gE1da4QpkYOUQa3GVMNPqPiT3CqjmJ8tjxq7bGpb6v+YoCLACjjPpPZL\n2Y28qLxwHVaINDFUUxD75WWdrlulRbqHwiSw8jolP9qrpXhDuLAqYam9tRwV5K5R\n8uNawnFwWkicBEYkN/WtBTouWzehOPn38tHXov6SyEyD6lkuxUBZrsGQ2ru+t33U\nk0kKCbV0GFw43I+3Ji5DiB4TUVNZYVoPG1B7Qve+UfA=","translations":{}},{"version":"0.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <11.0.0","minIntSize":32,"download":"https://apps.owncloud.com/CONTENT/content-files/174436-spreedme.tar.gz","created":"2016-10-20T09:09:26.520692Z","licenses":["agpl"],"lastModified":"2016-10-20T09:09:26.666738Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=10","signature":"D62Ck7JUnrYbrfFlX7xXVaYUMZIh2acmykIKapqfemD/tuX5Bvb08GYGTeFG61MA\nQzsqcIylDfGnC1UJbf8yWEX7PbyJD5w/R4WlbFv34njDvM8rBs4HpzSjkqQoykOF\nZpYAjH2ydfKqtZadgoIRm7et5B8X2AeoGg11ec52DId5t1wAEBcDIv824CDBUt8t\n0pVY8Z8n1MUYwU7DCjCbPy23br2+EBODFCHp+cFfMBLg3F0BJI5nY3Q8ku+0tqMR\n0NDxQcscNZ2Ck/wpVDWylfhpS+ICIxSMiyq7urP593mRrK3399SUyaMqDfgl/pxo\nqTzdBxHLaAqcnKZYglbqp+Gxbyj4teqCod8TiSMlp90VaxhC72ACuVQQRWQKuTNI\nZeW3YweWB5d7VErqBNmQR1tGnX5YFFHiKo41fVDQFsrOqHx4zP6AeU3nkl2ol/r/\n3pg553so1MOxMkyLEhGYGMfrdQqVEtajNWHUdj3B73LS+M3jcjBFIdOD+AGXPtDX\njCRymt07c1znhkL+aT8yY5SHMVbKBZj9mExL49hcLjAYYc4U++60uq9MFH5r9g4T\ndph+yT6VVEM/UH2HjvKsHv2wm937sNgG3EXQdh79JU8nCXIz7cVrJ8f5/9r6n1VP\nBbjtfDAPEjmfVCXX2gmgLuZHV+GMhLBS9bTh+61AhhE=","translations":{}},{"version":"0.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <11.0.0","minIntSize":32,"download":"https://apps.owncloud.com/CONTENT/content-files/174436-spreedme.tar.gz","created":"2016-10-06T08:14:05.212553Z","licenses":["agpl"],"lastModified":"2016-10-06T08:14:05.278533Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=10","signature":"X9zXDyMBPoXPMpZ+XXWK3MLufjY2MG8lJ+93LiW3rv0iq9yd8PafK4IvP9czO6o9\nf/vNilq+1mfl6mjTvL6QF5+sySlzbRGbT3uTBwYXyYL07HVYgl1ZLrwe0kxvxqaW\nxTvPem7+HzwClI3VnWc7ylQfzGrcYIaSIg7nNq1GOHocsgZVNyj/nVW/eQx24MjZ\nuLzZs9SJqYoBGq+mo63vRswhqv5OzGebo+G6dHm0hvRSOw9qsWCDWBugiSRU8zU4\nD9PQ0e8WbyrIrQhBoUvvkuijO3zCySx606S1HUyaHmbJzMc4Fbpwz6ggmi6IRBbT\nFBKB1DWJDwN/7mY4fhS4KhircVnAHDqiBVCTu5i3pSfMPrwFymcmbn9OBuFHAFuZ\nd9PZvWQg4v32w+Q/NNvZVW5lRi+l0w5DEqNREaj79hljk2reZMaB65lvtV9NCYw+\nHmwWqsGqZ1SgGZuhYkOzEIkCfJ2fF/VpyavJ4X6bHP9yYdkt1pxnSSoZ2HC8mkG4\nBnPf28mEXRcY8EJv0rEePqKSBIhAt8yfEW+joH/8nupe1qOdfPvP08ifLad5m76s\nt23UzlSljzq9kVO+d16z2uagKomN9USZaNnJcUDVblfjvCPpdiHLfRPEJnRsDZCm\nNffFWEMcz+TWmwBboZgTRO9v0bPDEuwfCCEW0zy8rT0=","translations":{}}],"screenshots":[{"url":"https://raw.githubusercontent.com/strukturag/nextcloud-spreedme/master/screenshots/appstore/conference.gif"},{"url":"https://raw.githubusercontent.com/strukturag/nextcloud-spreedme/master/screenshots/appstore/presentation.png"},{"url":"https://raw.githubusercontent.com/strukturag/nextcloud-spreedme/master/screenshots/appstore/import.png"},{"url":"https://raw.githubusercontent.com/strukturag/nextcloud-spreedme/master/screenshots/appstore/users.png"}],"translations":{"en":{"name":"Spreed.ME","summary":"Audio-, video- and text chat for your Nextcloud","description":"Securely communicate with your friends and family using rich audio-, video- and text chat, and much more right from your Nextcloud – in your browser"}},"isFeatured":false,"authors":[{"name":"struktur AG","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhANMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYwOTI2MTYxNzMzWhcNMjcwMTAyMTYxNzMzWjATMREwDwYD\r\nVQQDEwhzcHJlZWRtZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKLx\r\n2dCPBLIgX948BnOdLij0YyI2+FKD6uZOvzxMaoi3rlxNf8MJgraNMzTBWEXtxT5b\r\n7ZISNp89WEXhaQ1dwwCocodd/xow4Ek63m5nUvTZXsm+YSbMgrFbxzsBhYU7KuIE\r\nT/jhKdzYgemzErwwN/gtwkLMfPo3jkgg6c8NPPohYv6k7V4VnsqtJ0JS0kX19FqM\r\nMiNz9XkcncBHy9x0BSxy4+YnwbFcgIx/MtYKlBL8NkPuuJaB/6C1O+IPYhdEdnpX\r\n+RaIue71nSStOYOqT4YDqHAIw7EmqgA1my09mmK+0Pn92GJVEAEN7JGBSQ+F32RI\r\ndB3ivGAOVtUtVvJlepWdbHxj1xqeP+LCjWzHMLQjm0TyH8VqU4Cg/wxwAEFnBATH\r\naOaWwrggzY2d9KBo1mp0k71NArLbBdlHykFU4bgiSDWrXXMz0fZzLQVwGI0Eqcxc\r\nouf6t0kvrK8oKjrnso+FjBoT7lHV/H6ny4ufxIEDAJ/FEBV/gMizt5fDZ+DvmMw4\r\nq+a088/lXoiI/vWPoGfOa77H5BQOt3y70Pmwv2uVYp46dtU8oat+ZvyW9iMmgP1h\r\nJSEHj1WGGGlp45d10l4OghwfTB0OSuPUYwWR+lZnV8sukGvQzC9iRV1DGl/rREMC\r\ncQ5ajRAtO5NPnThvN5/Zuh4n8JoDc0GK4jEZsIivAgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBAGHMRbPV0WTI9r1w6m2iJRrMbZtbBb+mQr8NtOoXQwvSXWT1lXMP2N8u\r\nLQ1a8U5UaUjeg7TnoUWTEOqU05HpwA8GZtdWZqPPQpe691kMNvfqF64g0le2kzOL\r\nhuMP9kpDGzSD8pEKf1ihxvEWNUBmwewrZTC3+b4gM+MJ3BBCfb5SCzMURLirfFST\r\naxCNzc7veb2M98hS73w5ZE6vO+C/wz0GTsxuK0AoLitApT5naQnjvxSvSsjFPEGD\r\nsUNUEU2Decyp0jxLVnrrpz6Y5UupfBR0V8yAv1t5Od/mCKLc5DxHsDWiKOpsob9U\r\nJN+bdzJil2NNftihD4Dm7Ha7OS3O8W0=\r\n-----END CERTIFICATE-----"},{"id":"nextant","categories":["files","tools"],"userDocs":"","adminDocs":"https://github.com/nextcloud/nextant/wiki","developerDocs":"","issueTracker":"https://github.com/nextcloud/nextant/issues","website":"https://github.com/nextcloud/nextant/wiki","created":"2016-09-14T14:34:35.977699Z","lastModified":"2016-11-22T16:02:57.758477Z","releases":[{"version":"0.6.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/nextant/releases/download/v0.6.6/nextant-0.6.6.tar.gz","created":"2016-11-16T15:11:14.344704Z","licenses":["agpl"],"lastModified":"2016-11-16T20:39:59.030384Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"aOZeEeThyZ0V/vXBcn6c+Z0vyCsZcN6nfSJ8oWEea4zXh4g705Si+MFZESqix3M2\nOPCnA/U8eASwdRTAEwQJrW5ECmu1THXSIsrzQzc9kFycvyOGzCgAWtuu0ayzZD2/\nU5aDWlzpLHC1Czg9QJ5UnfZR0AfChWQ402N1YzGqMShdJv6AHXFrVE+uYnIyxuYI\noPJQBUYbQwthVUjpYwFwSxw50YU17gmx5RZ0Y0OPz3i/EiuEUrxopXtfDVYAuCML\npDw37LOTRQ2JqxSU3teALh8LcrwJbTeOP0n4bTeV+vU3jvtiaEoRrwfVrK41F701\nQymGXy1/EFG0kxPGS2dRNPBAXYLZfeoWlROl3D5BWlbsCcXKU1S+22yn0TEdS7x1\nY44x8jRKnBddDE7qkn+QoQYHNNcxOREsFFLmIoyCUpdNOdDX2PvTFUYkIqdnXaJy\noAKv2GkvWPQ0aiiBtA1i4oXuzvHW/M2wOrK7v7DCpNfILrD/sjxpljxcX082nRCd\n9P3iPd2hQ6yOM9fG21LVN74b6wggI81BzFf/xJPd4ZqYLjfeG/yqd0zaiMOzMm1W\nse+kc/a4iB3BoCNX3E942pBBzew4ya8LkCXdCHUUsuelDf1va1ikTh/G7D84ll9/\n2avNqQnUh3hgOnxFCLI/5VrbqxfSTVdO6O/LTuAmwgw=","translations":{}},{"version":"0.6.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/nextant/releases/download/v0.6.5/nextant-0.6.5.tar.gz","created":"2016-11-09T16:58:06.856332Z","licenses":["agpl"],"lastModified":"2016-11-09T16:58:07.139404Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"DVOIbLEVggiLkNkuPW+pXqu8WYT15unUsMoqHSw81NiU6HF0Nuf3XiwnHJJDDqo5\nyX+QyHADO4ZiQpvXhGigvwD2eS1jVLatAztyxE0tEQv5eBU/7R0jQYxI8YCnC/jE\nZDa0qs+TI58EkDek0LBzueVQqrLubKgGU9P+E9H8gbWi1JHvl/2LdY7CplPqaJ+J\nMRokobPntzgx9m4DZC1RsCoXzSON7o2gp2cmunPJiXVHPhMUfIfolGEbNGJ1/xdp\nra7Y7XkPnDx4po98a38UpUh1x/2m5goOV54em35bWbh4ShNDykiE5ttz6tOywlYN\ngxceSsStTKyqscVaOV2Xu6Ive0pY9CInvrSfRnRktIWBYDyWdbK9sJuqs/s69kqn\nKQ/SjzE2smw0zwOUMnSaz0Jzr1vdPFgNu2xDYAVQO5G03V+wQ5AhxuhBz5Xp5Fll\nLaOhymZLCC7lq0DUqkeTeQ2QCfiG23hvG2VUPsIqW7xFe2YzKHZVXi9JuH//Gwym\nDmJmcyZDMvNwNiObx3ZRKsZNH2XwbldFZ9nTpb9AafyoSR/qbwd473NewaDLRTiY\nLrOP5Wx1xx6DOkRmDF2l2iT1bSJ6eoAoWQU2I0aYRH9NAr2Ugd4f2Um4o61EJaL+\nRHT9cERRySEloU/NdgmZEOi+CG0rEu+9LC5G/jGlHE8=","translations":{}},{"version":"0.6.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/nextant/releases/download/v0.6.4/nextant-0.6.4.tar.gz","created":"2016-11-05T18:17:47.622023Z","licenses":["agpl"],"lastModified":"2016-11-05T18:17:47.678445Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"RdkvnhNjw+kAnT6Or3+N9FzAv9DjJ9BAlmgANMwZZcaqo1gZRFewsGD2Rx1KEb9X\numSC28tl2B5/3r/+dprVJmOnYJny/7+kDmI/d+vigKfnaQJOUZ0ya5+f72pFgow7\nth8fw9rX/3+zIBs2IeEN66cis8ioFq97BJDsnDMBDr7wl7CnFJjYe6eviWuiFTnC\n4sBXlYjHoaIRRu561nwAooV+WXmWsparYPVhj2cXdyP/CnWo5HSF5jA51WCsz7Up\n7a0URXdh85xmxEbZtnjUymTW2BIegdxj9Erbfiuy/m3ApgnP+DiEQRcM13J7pXqg\n4cgFOBSzKDZgim599WBW2uNO1ztnDYOzz47GXDfJhcdvKiZZoQpUF9W4LMRtheMz\nxD9YArO3j3d+VOInSYU2Rpvhugwo1LExhwnRdT4+cOZfEeq0VojiM7yBZLDdEjIb\nGdYUJtNWSU0F6cPab2Au8FgZymLrHL9EpGvxuA1oAwtRxHAgMElJG2O6Jp89gGl9\nh/AptypeTvzNEc9/Kg24ueBKqmSUd5a45pZ3gM2pNATJhUK7fzLb/K6cq/kEzZtj\nOPra1ZfP0/20u8VP32Rgw1cFmIjqt8DFzUmOMpMfyoJkdldtTwQtGk+yIvtN1zp6\nT2zDknAKA2N/rZ/0SJl8KxVVNLhQWtYBJ+rFAdapuxI=","translations":{}},{"version":"0.6.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/nextant/releases/download/v0.6.3/nextant-0.6.3.tar.gz","created":"2016-11-03T21:51:27.654342Z","licenses":["agpl"],"lastModified":"2016-11-04T18:25:35.697130Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"Hf5GB4xd+rVXzWvVpGbbF5tqmnI+DGHlNHdLYPImFLS/Z4K5wKeNp80E5sd/RkAi\nhyuEsdWHlGDVMT6s7oeCmH/ClyWqLNSz9VH4KYqyFgD4+usHZp9PrEeEKbvPDPKv\nD3eB7Ats34cWcpf4E1oR5wsPicgmdgIgb2uMXzc/1G9xUBRWzocwCstzjEEAB/VJ\nvJuHvhDTGG294P4gOb82MxKCQ8LZ4i1QXzOf/mLETOubiUbZtJgTReYvpdAo2Wct\nbdfDFw13LYZkCf71r9jIQ3PSPlIpD+0BwAlE1fi0Br9dP2JjIfiKN6CGVaki6O0v\nKR42jtcE9xXiAop0Ym1FYMWJvQUy5PFLMwYDfEd6CvfEFJl+fi+RjXNDNZcTyw00\nHa48sACoGzxwts2JknWMU57mwvi0Z4uwpE0cFp/PRzBsXmSlCzWHjJhu7+2qambE\nAabdP9nH2NvqJHUJyPsxtDSrSWCBY4CoL3wYu36UrIA4NepyudMPNe9fhKTEU0bg\n8DLclw6hYdj5p9Zj3OUuwOZLz6r85KwnooTsUjOYkBXvdUuHWkgONqqZlPMApS4i\nChRQ7ysHAinPyyzsvr0PR9g6J52CSCO/7qwSJy6yqSzuSWrbZUa4FVTcKIwWJJPu\nJ2XzB4rWVG1wWjzMM6MIvFbO2HY9upzh651OdOwsYvk=","translations":{}},{"version":"0.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/nextant/releases/download/v0.6.2/nextant-0.6.2.tar.gz","created":"2016-11-01T11:24:58.054892Z","licenses":["agpl"],"lastModified":"2016-11-01T11:24:58.151609Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"h8KgwMh2RGGIp7q/II23VSfE5Ibkha7p/C1kvIfG6QIIc2Zu/Mm3Oekynnysh5ZJ\nZuMTaeWbejbBAmlnxW+AwBWa/s2PoMhv7foVvdtg76l9/qr+9jGvUM7D1LbbBvAy\n/XW6JSrhhBZHOohdU7kwV5Xnwsn/NC/zUe0G4eZ+9fc9uSntkob9wnWvUs2daAeD\nY6Mi7Xt/XAIX65OIVTKfC6ah1SlbXgtJ2i2j4G32I9jRhmbkpt/UJEangn90fHnY\nQXNJ85OyV0aNMafNHoMSL3uLscdvjp0Hy8w4iBeavsRlCs0GiUoG1+YdwTwmC9EM\n4CjbMfRJ0DYK7u697TOmS8MQzk8O7f5THtjeokZlrom2YnV9t6gLvjnxl/+gXPdJ\nmgLixnA8P6tPsff9pquHKQZsvxjv6vVa2DVJc8VpcqJRih7yj/3V7rxesEP7MUnP\nznIOcwzTsKXHuAnvujpCwyQj3QtpQK2XJPQ5WkKgwbTdvriVJfnzPironhcHo1vC\nbuUDOdhL59aySChw2cZGD9lCWaxYR7I1BDDzWKNl9Qg0AZ2auyGUGTv8P2vi5qUB\n0CmnkzkZurR5ju6Nb9/2lcZvda7QJdIdMtm2Wnn+Ak/Z3Y4IehB5PPDP5/MMAhQY\nXE8Jqe0mGtiU/O2346L5IThkS58JlRmep4kYv+II9zE=","translations":{}},{"version":"0.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/nextant/releases/download/v0.6.1/nextant-0.6.1.tar.gz","created":"2016-10-27T21:16:47.066097Z","licenses":["agpl"],"lastModified":"2016-10-27T21:16:47.125641Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"axSX4Kz2P4PbKU676DibjPZsxk8hCIG3lLOmeMXoiBhp3ka4wJ8u5tNwTzgY8/MV\n3mjXe5DNttD66SqmiRNSPKbotYHVFFW3wFK+Dgh/++n/KTomGYUeIwt88Z9ecbuG\nNT6U46jFrfZBYzRHWzbgiJ4c7MCoid9cfmoB7HDuQSyw+E0S2vbLL8+jzMcIzF+5\nTh/sJEterXCyrWSciw/9x98F+4svNbskdEIvrOox3+K6UIhpsojqJR2+bQhG3rsM\nPerOb6J+bzHdLV1ZL/4nWEz1F30T7B08QxY/4pHD68JFQcdtzmHMIhXfCoRvWhN2\nVRnizx3IXBALY4F49Ql6bjsnr6BCp+LroM5RSQ3eupDcqejDJLbjPz8xfOMOwlx7\nz84Xd0MUyqaEkxg1ihsWLbPlYACUZ2aoDkSQUIbfZTTiov7eqTM8UBc/UqVID/LU\nyEW4gjFZzQy6kX76XRAGq1vebKFjCU63asCnVyJhF/YQVTu1hPGbFslkRKnYuh8W\ne4MeaNfbdjcSEX+7oTcPJz6V09pOPvukXL0M1m7lS9PhTisI6oGj8c33GPYp/DSK\n6SGk+ukbt1mwFuFKdTvAMxo1lk96D+pKUv4MX/ralaaoIAmwPTGsSQ04RyL454ae\nU6q8PApwrVyPHYwMBPtXGoQMyb2ZV9rylazYbKCQ8I0=","translations":{}},{"version":"0.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/nextant/releases/download/v0.6.0/nextant-0.6.0.tar.gz","created":"2016-10-26T01:46:48.419025Z","licenses":["agpl"],"lastModified":"2016-10-26T01:46:48.521063Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"W2TmbX/NbbfPPjIJLalO0kCDhhQF1pEohH/CxO9bY+yR+a5NKiTbpAhG2McqpTSj\nmgC4J8/thmwGlWGC+VW+KlpXzzjc7wCgMGMKViOpGD3pIy8p8U5MXTqVgjjrEb9g\nKgr9uErXzxJ5oDfkx8Uh1bUeBJTsAAivGJqMlhBYFGxw8BSB09sfOZytNxo4wbwZ\nNAcYP1qvkUQ8CVR0nInSTRfLvAp5+e/8xxyYZwJIWrdNgpoP0CxiwzKP/VSjBk/U\nsPU4R72UQnVZB0InRCeh/KNTwu1YiPkUKm+mNmt2hCfN7Fm6bY2rUMH7oa8KTkqn\nh52FhbaYRSAR1OPdC5RnHiQWlPh71gq+4Xqgp19Eawnl/QiVteVifSjNQZ+Ban8M\nRyw/PxHnzIWg/OAjx81Jx9mXjUIHSeUxMTJTKTp+lEqIAzjku0iHeU5UPGCfE+VM\nwmopZfnlfk2nLkUwjQXLCIcnZD1ME1m0h/H4Ad0Q/qXpBScUp47npkxg2b8zPIhk\n3aXUmNPLgwyXPWvAuaBK/WwpNefUnqWFns8t2Alpzg/EpC2PrZqciCNDcRFEycoa\nX+JsFyD7eYA7Dc9iIf09gXZX+tZ+Jinb+iPDwYrl1u/7IIBoBlUGCgo+cF7/dL9S\nc3vYeWw6MCH8Sv+ckgS2g726BfdN5EjB/8cb071b4lE=","translations":{}},{"version":"0.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/daita/nextant/releases/download/0.5.1/nextant-0.5.1.tar.gz","created":"2016-10-17T15:23:04.515057Z","licenses":["agpl"],"lastModified":"2016-10-17T15:23:04.576640Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"Pp3rC/9RmAYURneGpGit4HZ2t1qH9A9nwsUnGDgRuJ0akIii7CtJC+n8l1b9k73/\nhxMYnp2JOBu2HWKgFp9a3yeo1xphI5hOUdVQ1UZAWxIQyDI1FZVYDr81l7GCdkqm\n2lMxgviFADSYURCgEnAsj9Nt0NZ6LDcJZiJg3iPAjkDI0U+KnEBjtx/XRFqGUnfp\nCUZ/XLHh/hvoEitSHepTBDCMKkTNjbDEwBYfA2rAoz4zbMR5zKLU+1r1DIUgWSRe\nbk2i8TaTDVL4cbb6MhkGKwkujb+Atikvkpi45o7+fyQMs84c6fjjh/TZJaC+dMyG\n1GCikMPwwtEPjXtnLzynERAxJOd5mP4Ee4sD8ZrnzNUehpyFR88pwWU6r+dmiebb\nnsYlGkhIu2aIO2O4HZ4sUTsO5sfjZ9me7jsafhgJl6iG4IBeHa/L1MsSbhsh6mvH\nYsz4Xsluwr0QcFLmSDDQQYynyogKfJZG2xQsadM0GETWgXE44dVeRvMUsILfB4uZ\nmfKgd23SgaOhYC8m4bg5Hxnkl+xHJnyGZ6jhqg7bhuKwsoLymc18Vmjmb7a45HGV\nXbL5CTmw9yaPOBS3v7v91TnlB+0lhlzbKzZ0xIhY55qsTC76uScbTLwndPqNGaF7\n2koxRbJ3jcmf/Z2MLymdRi2BTZbZkPkxgVrSf9plaR0=","translations":{}},{"version":"0.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/daita/nextant/releases/download/0.5.0/nextant-0.5.0.tar.gz","created":"2016-10-11T11:47:46.191539Z","licenses":["agpl"],"lastModified":"2016-10-11T11:55:40.393000Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"qzQJSLK8nkrQedwwxUdhxL8bq3aXyppAlWJo+n3GqSvqA8uNTzl3Wsci0LsnBV0E\nDvDNW8K0enhl563F/bywQrDhgKl8jTX/CA5KCxqO9P+tvE80zAfMqiRnQayVcWuY\nSWX6RqfI/kqiWyN1SsFp2EDlas6eb+xfIoiJamlfsN0qzHYOFt5W77wmw2Bn9dB5\n9nwHHyC0z60Pf2pPduc/KuZ/971WrDFaIapL7Gm+z9XoaKSwUT575VtS+RNJkOKy\niBrwnHdc8x/62HPFOXsUYjCt2aEmLzPCQN8Ke5pd3596hm5wbAVzTHuxf2H35tb3\nljfGqAZ5AJX2Xd13d4aHXFdSEILwv6IFq2fx0hO3vkvFEoKF5oQ2t3hi++Mw/h8R\n15OKZCOC1bFH3gTwdshmnHSTSr3LxDeTF60aH16wpXcehQuJHagpb/aG8mPD1w+v\n759/mekqa4LYlqT9TLWTqX3UPeQXYIwcPijG84IvW1BDK1M4Mj2Vqsld4jXwG6CP\nORIL8xoQbA52dQI1Y19JXcU9zxIb6GaHYgpV0wejatsZRfhPv2Yd0CBShF4HY7aw\nnfcm88pqzOKNvjnLZjTFQwuJ0AUUSOsWhgZzYt8tATJ2KDZ+lxz+WAMGXJAC/ciY\ntrrglY7YxwJNLbYp+arE0sowZx+IOVaSZBvmUGHiEBY=","translations":{}},{"version":"0.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/daita/nextant/releases/download/0.4.2/nextant-0.4.2.tar.gz","created":"2016-10-06T10:31:12.482416Z","licenses":["agpl"],"lastModified":"2016-10-06T10:31:12.551117Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"QHJhYcBMi5HyPofshZ7EdcXsOfRrl7o48Y3BBBq8CkmYtFDbekghdJqjFbwwZa5u\n8FtgMVwssql/RSDNP6M2Zc/MpQ3K9gDm+DyxE5KRmtMEpzHB+oD+1DxP7kAoyW8/\nnBr5iiQSdLCelddMcTwbdxskLFUXIs3cFuLGhMvr8pdQOAgfxte5lolrj4/8EsJ0\n0yUImgIYG4NlgmvCygGApdpVaOcK7XVtv4oH+x43JmX9YZ3Ce0DQPYPUbFTCf4ZS\nS075j1vcnPx2cRFGxc+YpKzYVVYoy7ZdB75Hq+kaei/atxrTyV5+gcCrVPnH1RkX\n6G8rgu5l8FoGJYopi8/9dd8LsGLFx53CHMdEVob3tFR0WeK4TJAGJa403zE6S3hM\nxr86WCedmjuti0uOhSQr5AEVAoXZ/JUWQMMsPAUMuKEYVjKfmve6TlcNMC2oM5XT\nXcOf4OP3pcQq4ViN53o4Pj6NGSci6IzD6xLeAxKZUoTX37ArVKH6RHS5Najc193H\nRhYRnfE7D5YOr1u10HaZCFCVJif2MgMP0/uH2759NoRjXFowrh7Z6dW7JQG5lbHN\ne0jjJH1Y8m8H1peGGcmM0YxFiOVZ0ER7P+AxT4Cbau/cVhaS8vnPF2a2a6YFRiFS\nVH4aqazvvXrtifDr3lfvlyPCrP/570nwvOJgZGk+K/Y=","translations":{}},{"version":"0.10.0-alpha","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=9.0.0 <12.0.0","minIntSize":32,"download":"https://github.com/nextcloud/nextant/releases/download/0.10.0/nextant-master-0.10.0.tar.gz","created":"2016-11-22T16:02:57.740378Z","licenses":["agpl"],"lastModified":"2016-11-22T16:02:57.900805Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=9 <=11","signature":"kDO3xbPpoUdl2qo362tXfJIqKeiKE12M8FkMXbdKiRNzuQyvDOehQq3dErALZDOr\nLG47Tpez/Kn9Fsx1y4dQDx0w9SD3pyoqvjj1O6KkTYN6srpitQcj9EzEItCY+MZd\ngRSc7Px9MzxpFpgwtuThGVlSt5kLMd0vjWFLVcv7k07rZfWEsTwXd24INIDtlr1A\nC7hyLB777nEOGa7oAzx8nr+FJcIbmu9opVZk8AL40FOFDNBgfAy2AS9hGZreUmRV\ndV9Zh7UAR+RsEeO51xcU/CKqC8Jb0jL1gkYyUaQy16oe1HF9bRs1PWuNL5mYwsmy\nZNn0ay/a7mb7hxJbza1F3lbgBtodvbgUm7+So/QvaR29CSAqqoUXeQy6FfSBVWhZ\nYlTxdQfKcBcUPFO14BBk/O5p5iQaG8JCLJ/EZGDPDIVDMn7crGQ4oLZJv80eqTeB\n7ueDmWaD3gQ9j2XKsMk1uLSyY4unt9AaTofBylsKD1SjLhyxofGZym4jc2+M1GnQ\nyLcoEMSexnKuextu4nzrA0y5k3z9tvO07R29lwT1GFp6oGAakMLob/6XrGsm3YQY\nRQXgfXKFw8XmXBumqG8ayEIyvQ/O8nO6r4R1H8a7ooj6oWa3PhPsen+gLE0SpJPZ\nz3e2TLliwC4VtZp69H7u3px5Qn1Fc6RMDTh571edCr8=","translations":{}}],"screenshots":[{"url":"https://raw.githubusercontent.com/nextcloud/nextant/master/screenshots/displayResult.jpg"},{"url":"https://raw.githubusercontent.com/nextcloud/nextant/master/screenshots/admin.jpg"}],"translations":{"en":{"name":"Nextant","summary":"Navigate through your cloud using Solr","description":"\n\t Navigate through your cloud using Solr\n\n\n**Nextant** performs fast and concise _Full-Text Search_ within:\n\n- your own files,\n- shared files,\n- external storage,\n- bookmarks\n\n\n### Recognized file format:\n- plain text,\n- rtf,\n- pdf,\n- html,\n- openoffice,\n- microsoft office,\n- image JPEG and TIFF (will requiert Tesseract installed)\n- pdf with no text layer (will also requiert Tesseract) _[work in progress]_\n\n\n\n## Installation\n\n- [You first need to install a Solr servlet](https://github.com/nextcloud/nextant/wiki)\n- Download the .zip from the appstore, unzip and place this app in **nextcloud/apps/** (or clone the github and build the app yourself)\n- Enable the app in the app list,\n- Edit the settings in the administration page.\n- Extract the current files from your cloud using the **./occ nextant:index** commands\n- Have a look to this [explanation on how Nextant works](https://github.com/nextcloud/nextant/wiki/Extracting,-Live-Update)\n- _(Optional)_ [Installing Tesseract](https://github.com/tesseract-ocr/tesseract/wiki) ([Optical Character Recognition](https://en.wikipedia.org/wiki/Optical_character_recognition) (OCR) Engine) will allow Nextant to extract text from images and pdfs without text layer.\n\n\n\t"}},"isFeatured":false,"authors":[{"name":"Maxence Lange","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhAFMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTYwOTE0MTI1NDQwWhcNMjYxMjIxMTI1NDQwWjASMRAwDgYD\nVQQDDAduZXh0YW50MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsbnQ\n+9acjKHfcrUj4yqBpD++GmQ5z2Sp8C8uOz4ZbLyM9bUXEYHo4a4u3CdC49kGUkb3\np5MkEAEzslTWDi1eh5MZgPWpbPgItsDsXY1o55O3jtxNkzSG5/yYcPQcuKtIOm9S\n7DY0K+UQt3nK+RrXEZfARMNrzFbEzpE3b7w901Yl5n+m/B8rhW4pqg8uSfx3u04J\nwduV1fHwoHUB0Ox5HyWib4Pq1XppNh7xdc2Fg93JxshwuCPJyOOzrFTnxC7s1yzQ\nUvaqkjPW5QeQRunQjZ2XtpYH8f8v01W18bNEiHwqtFwuDEyCVx1rvEMgUDVXdPkP\ngZrlB5TzGmz0U3HzYvf6205WuzfHxz7kPj502wP51PoZBKpniggKzmuXkx6BpsZC\nZX45VpDHdiATLwRj1t2bMs3C01nzpIWO5ZwFtkepH3Y+mvwX5lDh/XDsqJC2Yo8o\nWMmniWNW7dspufYOsBUqqYGP7rkailgVT4oYk6D1j6oFZ5SSpfPF5lsyYedDSM6y\nbIGVkSF+sjLK6R9BenBijKceAKsS//WwRYCBPC+JHlsYpXKW12bL+C47Kj2/N6d4\nrYryzV6ofVSF6pwIq0oEjoyfBfNpYavf3xrRkSSmIIlPSnMY7DT1xkGD5retxSm6\n+WIfkWKRZpv2S6PhMHGLspYc4H5Dj8c48rG5Co8CAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAOZUwyPaUi+1BOUgQJMWqYRoTVZUyBshTXSC7jSwa97b7qADV9ooA6TYF\nzgsPcE41k7jRkUbnjcY45RGtL3vqsgZbx5TjPa5fGMxlqJ6eYBOY61Q6VIHEVm3u\nxnPEO9dsMoDBijvo5D7KtE+Ccs907Rq70kCsbrdgPHkyb5tDSnCKogN1LiQrg1EP\nmy7Z1C7jG9/h57vx0+QBMDCYnTmqLsvMKqo27uHskzAiB7VXLEdSZ2FtMGHkLUQO\n0bfhnvTZ2VhMmK83t7ovo71An4ycmsolGD/MA0vNI78VrVISrdI8rRh2WntUnCBU\nEJL3BaQAQaASSsvFrcozYxrQG4VzEg==\n-----END CERTIFICATE-----"}]
EOD;
public static $expectedResponse = [
- 'data' =>
- [
- 0 =>
- [
+ 'data'
+ => [
+ 0
+ => [
'id' => 'direct_menu',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'customization',
],
'userDocs' => '',
@@ -61,27 +62,27 @@ class AppFetcherTest extends TestCase {
'website' => '',
'created' => '2016-10-01T09:16:06.030994Z',
'lastModified' => '2016-10-06T14:01:05.584192Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '0.9.2',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '*',
'platformVersionSpec' => '>=9.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/juliushaertl/direct_menu/releases/download/v0.9.2/direct_menu.tar.gz',
'created' => '2016-10-06T14:01:05.578297Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-10-06T14:01:05.643813Z',
@@ -99,32 +100,32 @@ class AppFetcherTest extends TestCase {
bkR1DTBCyDjdpNBidpa3/26675dz5IT5Zedp4BBBREQzX08cIhJx5mgqDdX3CU09
uWtzoaLi71/1BWTFAN+Y9VyfZ8/Z3Pg3vKedRJ565mztIj0geL3riEsC5YnPS0+C
+a3B9sDiiOa101EORzX3lrPqL7reEPdCxrIwN+hKFBQ=',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://bitgrid.net/~jus/direct_menu_nc.png',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Direct Menu',
'summary' => 'Provide easy access to all apps in the header.',
'description' => 'Provide easy access to all apps in the header.',
],
],
'isFeatured' => false,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Julius Härtl',
'mail' => '',
'homepage' => '',
@@ -159,11 +160,11 @@ class AppFetcherTest extends TestCase {
2OmWZo7UBREWenjKyFZZ/iKoqH5sdenBtpo=
-----END CERTIFICATE-----',
],
- 1 =>
- [
+ 1
+ => [
'id' => 'apporder',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'customization',
],
'userDocs' => '',
@@ -173,27 +174,27 @@ class AppFetcherTest extends TestCase {
'website' => '',
'created' => '2016-10-01T09:16:47.111889Z',
'lastModified' => '2016-10-12T19:50:16.038821Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '0.3.3',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '*',
'platformVersionSpec' => '>=9.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/juliushaertl/apporder/releases/download/0.3.3/apporder.tar.gz',
'created' => '2016-10-12T19:14:10.802359Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-10-12T19:50:16.104357Z',
@@ -201,22 +202,22 @@ class AppFetcherTest extends TestCase {
'rawPhpVersionSpec' => '*',
'rawPlatformVersionSpec' => '>=9 <=11',
'signature' => 'nhlT9lhrmBxIsqh/e3RLm2NDw/U8ZvvoMyYQTLMM3H19DQmVcPYPYC9QWVTsowUzXblVaOXVGylbpKma9yOlOAqJtF3qyXecLl4+tA/Awb6BBhKPgHFdcLDAL5yy1K7/uei3SgEojMlJoI9vEK5I1C5YTh43yNH+//Im6MAuNYFUTlMXK426zdOe6ogpCI5GlYdXopqYANxcpT+WXWET6DDSM5Ev+MYwMcSAY4r8+tvARRU4ZAenRgjkBT6R5z6cD76emRax14tbV6vkjjwRcO+dQtM0tFPbd+5fsNInbauv50VzIMgjA6RnKTOI17gRsSdGlsV4vZn2aIxEPWauu6T/UohMvAE9HMn13vtbpPBSFwJAktj6yHASYGzupNQLprA0+OdyALoLZPpQAKNEXA42a4EVISBKu0EmduHJlUPeqhnIGkkGgVNWS8AWqzP2nFoPdXBgUWateiMcBTHxgEKDac5YmNc9lsXpzf1OxBaXHBhGYKuXPwIfyH3jTWb1OdwixJEuRe9dl63T9qOTRre8QWns/bMqKLibGfMtFhVB21ARJayBuX70eVvabG/2N7Y5t1zUlFygIKu51tvo3AVCRDdRrFWDvkAjxzIz5FIdALVZ+DReFYu/r4WF/w3V9rInFuEDSwb/OH4r8sQycs07tSlMyA74Y3FpjKTBxso=',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://bitgrid.net/~jus/apporder-nc.gif',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'AppOrder',
'summary' => 'Sort apps in the menu with drag and drop',
'description' => '
@@ -242,10 +243,10 @@ class AppFetcherTest extends TestCase {
],
],
'isFeatured' => false,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Julius Härtl',
'mail' => 'jus@bitgrid.net',
'homepage' => '',
@@ -280,11 +281,11 @@ class AppFetcherTest extends TestCase {
CpW1GUIA1cyulT4uyHf9g6BMdYVOsFQ=
-----END CERTIFICATE-----',
],
- 2 =>
- [
+ 2
+ => [
'id' => 'twofactor_totp',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'tools',
],
'userDocs' => '',
@@ -294,27 +295,27 @@ class AppFetcherTest extends TestCase {
'website' => '',
'created' => '2016-10-08T14:13:54.356716Z',
'lastModified' => '2016-10-12T14:38:56.186269Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '0.4.1',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '>=5.4.0 <7.1.0',
'platformVersionSpec' => '>=10.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/ChristophWurst/twofactor_totp/releases/download/0.4.1/twofactor_totp.tar.gz',
'created' => '2016-10-12T14:38:56.174612Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-10-12T14:38:56.248223Z',
@@ -332,28 +333,28 @@ class AppFetcherTest extends TestCase {
3y+csRqpEJYd9fcVMPsTu7WBRRrpBsAqdAHJcZEwak2kz1kdOgSf8FIzP1z6Q71d
Ml2RKcPeutMHHSLiGIN/h7fM5aSs49wGgGZmfz28fHVd7/U0HFSMYmkT/GMq5tMP
Iyc+QZAN4qbX8G0k/QSTkK/L4lOT2hQiQqiSqmWItMk=',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
+ 'screenshots'
+ => [
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Two Factor TOTP Provider',
'summary' => 'A Two-Factor-Auth Provider for TOTP (e.g. Google Authenticator)',
'description' => 'A Two-Factor-Auth Provider for TOTP (e.g. Google Authenticator)',
],
],
'isFeatured' => true,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Christoph Wurst',
'mail' => '',
'homepage' => '',
@@ -388,11 +389,11 @@ class AppFetcherTest extends TestCase {
RBO7PLY3m4TXCeKesxZlkoGke+lnq7B8tkADdPI=
-----END CERTIFICATE-----',
],
- 3 =>
- [
+ 3
+ => [
'id' => 'contacts',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'office',
1 => 'organization',
2 => 'social',
@@ -404,27 +405,27 @@ class AppFetcherTest extends TestCase {
'website' => 'https://github.com/nextcloud/contacts#readme',
'created' => '2016-10-30T14:00:58.922766Z',
'lastModified' => '2016-11-22T22:08:01.904319Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '1.5.0',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '*',
'platformVersionSpec' => '>=9.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/nextcloud/contacts/releases/download/v1.5.0/contacts.tar.gz',
'created' => '2016-11-22T22:08:01.861942Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-11-22T22:08:02.306939Z',
@@ -442,44 +443,44 @@ class AppFetcherTest extends TestCase {
H3aH8GljatAFjrwItw1JzR0THt0ukkOK+bw/pfCslk10sjHMitmz/GXa4qMS91DZ
BKLUd0dSfQUQzkfwcojImbzJRvca4/DYe3mfG7+RCH0tDL6t72dKL9joB++u5R1u
VZPgkToexlXcKWpiDB8H2/SEShKr4udAOjR5de9CYWM=',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://raw.githubusercontent.com/nextcloud/screenshots/master/apps/Contacts/contacts.png',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Contacts',
'summary' => 'The new and improved app for your Contacts.',
'description' => 'The new and improved app for your Contacts.',
],
],
'isFeatured' => true,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Alexander Weidinger',
'mail' => '',
'homepage' => '',
],
- 1 =>
- [
+ 1
+ => [
'name' => 'Jan-Christoph Borchardt',
'mail' => '',
'homepage' => '',
],
- 2 =>
- [
+ 2
+ => [
'name' => 'Hendrik Leppelsack',
'mail' => '',
'homepage' => '',
@@ -514,11 +515,11 @@ class AppFetcherTest extends TestCase {
52bVrGMxJwOuL1393vKxGH0PHDzcB1M=
-----END CERTIFICATE-----',
],
- 4 =>
- [
+ 4
+ => [
'id' => 'mail',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'tools',
],
'userDocs' => '',
@@ -528,27 +529,27 @@ class AppFetcherTest extends TestCase {
'website' => '',
'created' => '2016-10-19T19:41:41.710285Z',
'lastModified' => '2016-10-19T19:57:33.689238Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '0.6.0',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '>=5.4.0 <7.1.0',
'platformVersionSpec' => '>=10.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/nextcloud/mail/releases/download/v0.6.0/mail.tar.gz',
'created' => '2016-10-19T19:57:33.676730Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-10-19T19:57:33.834580Z',
@@ -566,10 +567,10 @@ class AppFetcherTest extends TestCase {
D4c6b+qYn68kx3CLaPPiz+tFAZQZQdj7+Kx/lohso8yTnVSiGYrMj4IvvCbpsQjg
WF3WSqF/K/tTnPYTWb9NUPSihTbVNv6AXOfTsPEp/ba2YSS5DjvjVjkr5vhR9eg1
ikQ3Cw6lW3vaA4LVCC+hFkMRnI4N0bo5qQavP3PnZPc=',
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'changelog' => '### Added
- Alias support
[#1523](https://github.com/owncloud/mail/pull/1523) @tahaalibra
@@ -607,23 +608,23 @@ class AppFetcherTest extends TestCase {
],
],
],
- 'screenshots' =>
- [
+ 'screenshots'
+ => [
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Mail',
'summary' => 'Easy to use email client which connects to your mail server via IMAP and SMTP.',
'description' => 'Easy to use email client which connects to your mail server via IMAP and SMTP.',
],
],
'isFeatured' => false,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Christoph Wurst, Thomas Müller, Jan-Christoph Borchardt, Steffen Lindner & many more …',
'mail' => '',
'homepage' => '',
@@ -658,11 +659,11 @@ class AppFetcherTest extends TestCase {
PiZOosVHWJdpUKCw9V4P1prGTQ==
-----END CERTIFICATE-----',
],
- 5 =>
- [
+ 5
+ => [
'id' => 'audioplayer',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'multimedia',
],
'userDocs' => 'https://github.com/rello/audioplayer/wiki#user-documentation',
@@ -672,27 +673,27 @@ class AppFetcherTest extends TestCase {
'website' => 'https://github.com/rello/audioplayer',
'created' => '2016-09-16T05:44:24.857567Z',
'lastModified' => '2016-11-17T22:34:34.637028Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '1.3.1',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '>=5.4.0',
'platformVersionSpec' => '>=9.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/Rello/audioplayer/releases/download/1.3.1/audioplayer-1.3.1.tar.gz',
'created' => '2016-11-17T22:34:34.215350Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-11-17T22:34:34.867778Z',
@@ -700,10 +701,10 @@ class AppFetcherTest extends TestCase {
'rawPhpVersionSpec' => '>=5.4',
'rawPlatformVersionSpec' => '>=9 <=11',
'signature' => 'p6Zz0IEFrxvw6y/3jHgGWWCxR6qpMzvU2HKfxcIVsK6sJnoRUhWLeAXwZ432fH2a S2llj+IGS9OvW+5VQElrXgPtEjDK1BT00DRJnp5RFCRlUv0LNoedJMzx6B6AHqPP JBufk3cG1O/CO0M0L1ITGSmSOzfKvWTRo3lxVGF792NyBaP/SyZCkH1N1TzBQzUi Ywl3+HiglPcXbHjtJm/arnKorbJWVKoaN93xFuaBapd2ozQSpi0fE0uGRsici+U7 HNa1M5WFE1rzUJoufE0E9246At07rFY1e+TdNEq8IlLgCXg5vGCKkEyuWpWno6aX LfRaIiT9x39UTAwNvuDKS0c+n4uWDYPsGfKhDx9N7CXpUrthfXVEWRzZEXG7as10 6ANvrRPJemSZH8FUSrdJhD7k12qa9R825y7mIG68Li8P71V92EOxFfo9tNXqXwBt VuDGxBqByFVPqSCj5I8hrzJzQl2Xt40g8+8ZcSF96RMg/pM+bwRMTv+mz0V+vQQ4 DWjqnWVPalaJ1PPD5/QFFErtXuNRbyxKZ6BMWxfJlLM9Kz66P75K+8fYaSwz+2KG NxY7I3svzS2K9LGH3fBLUy1t3Hl+c3zGFq/ll1MJrf9NswV4yxt2WmISfM/KDww8 yELkGs2cRzbw2tCvnmYlJJhIqRLkyFAbDzWRH/XdVx4=',
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'changelog' => '2016-11-17
- fix: one-click-play for wav not working
- fix: wrong sql statement for PostgreSQL [#90](https://github.com/rello/audioplayer/issues/90)',
@@ -711,35 +712,35 @@ class AppFetcherTest extends TestCase {
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://github.com/rello/screenshots/raw/master/audioplayer_main.png',
],
- 1 =>
- [
+ 1
+ => [
'url' => 'https://github.com/rello/screenshots/raw/master/audioplayer_lists.png',
],
- 2 =>
- [
+ 2
+ => [
'url' => 'https://github.com/rello/screenshots/raw/master/audioplayer_share.png',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Audio Player',
'summary' => 'Audio Player for ownCloud and Nextcloud',
'description' => 'Audio Player for MP3, MP4, Ogg, and Wave with a lot of flexibility for all your needs.',
],
],
'isFeatured' => false,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Marcel Scherello',
'mail' => '',
'homepage' => '',
@@ -774,11 +775,11 @@ class AppFetcherTest extends TestCase {
P7Y/ekMscwWhLbF91OaQlcWpRtEMyde/DaI=
-----END CERTIFICATE-----',
],
- 6 =>
- [
+ 6
+ => [
'id' => 'calendar',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'organization',
],
'userDocs' => 'https://docs.nextcloud.com/server/10/user_manual/pim/calendar.html',
@@ -788,27 +789,27 @@ class AppFetcherTest extends TestCase {
'website' => 'https://github.com/nextcloud/calendar/',
'created' => '2016-10-01T12:40:39.060903Z',
'lastModified' => '2016-11-22T20:31:13.029921Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '1.4.1',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '*',
'platformVersionSpec' => '>=9.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/nextcloud/calendar/releases/download/v1.4.1/calendar.tar.gz',
'created' => '2016-11-22T20:31:13.020268Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-11-22T20:31:13.087340Z',
@@ -826,34 +827,34 @@ class AppFetcherTest extends TestCase {
eFLKrUg3EvnTjvknbBxMB55h9jNJr0SAlkrmyEVm6+CE3BwRWpKB+cJMBuGiwPwv
r/ASRiJrkDThbNWAUtX70rUmCqDV6/MujLXViqOc/Q2OHvcXd1oGDccJSQT92/1z
7nonnedyYQIDqUt7u68WL8JRxp7pFsEqKLVuWSgxW3c=',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://raw.githubusercontent.com/nextcloud/calendar/master/screenshots/1.png',
],
- 1 =>
- [
+ 1
+ => [
'url' => 'https://raw.githubusercontent.com/nextcloud/calendar/master/screenshots/2.png',
],
- 2 =>
- [
+ 2
+ => [
'url' => 'https://raw.githubusercontent.com/nextcloud/calendar/master/screenshots/3.png',
],
- 3 =>
- [
+ 3
+ => [
'url' => 'https://raw.githubusercontent.com/nextcloud/calendar/master/screenshots/4.png',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Calendar',
'summary' => 'Calendar GUI for Nextcloud\'s CalDAV server',
'description' => 'The Nextcloud calendar app is a user interface for Nextcloud\'s CalDAV server.
@@ -862,22 +863,22 @@ class AppFetcherTest extends TestCase {
],
],
'isFeatured' => true,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Georg Ehrke',
'mail' => '',
'homepage' => 'https://georg.coffee',
],
- 1 =>
- [
+ 1
+ => [
'name' => 'Raghu Nayyar',
'mail' => '',
'homepage' => 'http://raghunayyar.com',
],
- 2 =>
- [
+ 2
+ => [
'name' => 'Thomas Citharel',
'mail' => '',
'homepage' => 'https://tcit.fr',
@@ -912,11 +913,11 @@ class AppFetcherTest extends TestCase {
jXXOI8XIOK6kxXhPHUc3iWu9b4KqGm0=
-----END CERTIFICATE-----',
],
- 8 =>
- [
+ 8
+ => [
'id' => 'ownpad',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'tools',
],
'userDocs' => 'https://github.com/otetard/ownpad/blob/master/README.md#mimetype-detection',
@@ -926,27 +927,27 @@ class AppFetcherTest extends TestCase {
'website' => '',
'created' => '2016-09-29T15:58:52.814912Z',
'lastModified' => '2016-11-19T17:37:52.278497Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '0.5.6',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '*',
'platformVersionSpec' => '>=9.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/otetard/ownpad/releases/download/v0.5.6/ownpad.tar.gz',
'created' => '2016-11-19T17:37:52.234684Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-11-19T17:37:52.423930Z',
@@ -964,18 +965,18 @@ class AppFetcherTest extends TestCase {
o3n0+gw3QYIhLEe75sUhxG6ynVUdW25AKKju1kVj3KJnZTBH1R8t8/zy4DnJG8d4
uRGqyU4BXpZjEC3nVlsC7vCncWWhxl0WZQ/MWKqsfjVAU4I88E518D6NioqMnPEJ
iCZ2x+69UCDEQyfCSKajgAYT17r3OhZei8F9KSCH8Vw=',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
+ 'screenshots'
+ => [
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Ownpad',
'summary' => '
Create and open Etherpad and Ethercalc documents.
@@ -990,10 +991,10 @@ class AppFetcherTest extends TestCase {
],
],
'isFeatured' => false,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Olivier Tétard',
'mail' => 'olivier.tetard@miskin.fr',
'homepage' => '',
@@ -1028,11 +1029,11 @@ class AppFetcherTest extends TestCase {
gRHzGwKbAiJ8T8bbpZ3e2ozXxADr
-----END CERTIFICATE-----',
],
- 9 =>
- [
+ 9
+ => [
'id' => 'announcementcenter',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'organization',
],
'userDocs' => '',
@@ -1042,27 +1043,27 @@ class AppFetcherTest extends TestCase {
'website' => 'https://github.com/nextcloud/announcementcenter',
'created' => '2016-09-14T10:38:53.939634Z',
'lastModified' => '2016-11-24T11:21:50.324839Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '2.0.0',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '*',
'platformVersionSpec' => '>=10.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/nextcloud/announcementcenter/releases/download/v2.0.0/announcementcenter-2.0.0.tar.gz',
'created' => '2016-10-06T12:41:56.195206Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-10-06T12:41:56.263124Z',
@@ -1075,32 +1076,32 @@ class AppFetcherTest extends TestCase {
9rLNxJ2IOqZOA7hhMIKhSrpA0KkSfNhBsVf8CWClYnVkZQiq0LoYkHkHIlXmXUr3
OfQFKEjtsx+bNLa6CkAaocHGHJXAofX3GQZ9cjBsjZqiTfbXfcVk0kRfz7pwL92L
I1McfJYvgMxDQG5bjRpNJw==',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://github.com/nextcloud/announcementcenter/raw/stable10/docs/AnnouncementCenterFrontpage.png',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Announcement Center',
'summary' => 'An announcement center for Nextcloud',
'description' => 'An announcement center for Nextcloud',
],
],
'isFeatured' => true,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Joas Schilling',
'mail' => '',
'homepage' => '',
@@ -1130,11 +1131,11 @@ class AppFetcherTest extends TestCase {
phhXFlzXqO/VxquPdbfYjvU=
-----END CERTIFICATE-----',
],
- 11 =>
- [
+ 11
+ => [
'id' => 'rainloop',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'social',
1 => 'tools',
],
@@ -1145,27 +1146,27 @@ class AppFetcherTest extends TestCase {
'website' => 'http://www.rainloop.net/',
'created' => '2016-10-20T04:17:37.217555Z',
'lastModified' => '2016-11-18T11:36:04.309739Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '4.26.0',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '>=5.4.0',
'platformVersionSpec' => '>=10.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/pierre-alain-b/rainloop-nextcloud/releases/download/v4.26.0/rainloop-4.26.0.tar.gz',
'created' => '2016-10-20T04:28:21.491747Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-11-18T11:36:04.619927Z',
@@ -1183,32 +1184,32 @@ class AppFetcherTest extends TestCase {
LhIczc32ECi3ZVVgyF8zyT4Y/3MRS05oX3FHvHyt88mjni6bVaO78F7ZRSha8gHh
NOAkku7AMXPvUCHaZP2iVCCoAViEso8GeR3O8xh2G42Ai61RLYwx8LB1+23EoJTr
mfFuRYNSg+qAKCokXNnh+lDlwu4AkaQo3vtKGPXvU7A=',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://raw.githubusercontent.com/pierre-alain-b/rainloop-nextcloud/master/screenshots/2016.10.20-screenshot.jpg',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'RainLoop',
'summary' => 'RainLoop Webmail',
'description' => 'Simple, modern and fast web-based email client.',
],
],
'isFeatured' => false,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'RainLoop Team',
'mail' => '',
'homepage' => '',
@@ -1243,11 +1244,11 @@ class AppFetcherTest extends TestCase {
fDSYhSN+IjrnIkwNtc8V9t7/GeQB5FE=
-----END CERTIFICATE-----',
],
- 12 =>
- [
+ 12
+ => [
'id' => 'richdocuments',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'integration',
1 => 'office',
],
@@ -1258,27 +1259,27 @@ class AppFetcherTest extends TestCase {
'website' => '',
'created' => '2016-10-31T08:55:45.631429Z',
'lastModified' => '2016-11-24T12:13:53.905352Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '1.1.14',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '*',
'platformVersionSpec' => '>=9.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/owncloud/richdocuments/releases/download/1.1.14/richdocuments.tar.gz',
'created' => '2016-11-24T12:10:13.337165Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-11-24T12:13:53.963638Z',
@@ -1291,44 +1292,44 @@ class AppFetcherTest extends TestCase {
E1aaRnQfTx488YB8Ubul06LIY0PNCHgGCWPgy817tOVT7JA+V0P0FFonl/PXE0dr
WgtxRJmvGaNiFzYq+kQmdKMfayZTm3kdVgP0W52t5wp878K0i4s2KPg5lANvjTz7
DCT+VV2IGIE52o4RpMUGyQ==',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-document.png',
],
- 1 =>
- [
+ 1
+ => [
'url' => 'https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-app.png',
],
- 2 =>
- [
+ 2
+ => [
'url' => 'https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-presentation.png',
],
- 3 =>
- [
+ 3
+ => [
'url' => 'https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-spreadsheet.png',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Collabora Online',
'summary' => 'Edit office documents directly in your browser.',
'description' => 'Collabora Online allows you to to work with all kinds of office documents directly in your browser. This application requires Collabora Cloudsuite to be installed on one of your servers, please read the documentation to learn more about that.',
],
],
'isFeatured' => false,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Collabora Productivity based on work of Frank Karlitschek, Victor Dubiniuk',
'mail' => '',
'homepage' => '',
@@ -1358,11 +1359,11 @@ class AppFetcherTest extends TestCase {
WCVZ3TTG/2z3+tWM
-----END CERTIFICATE-----',
],
- 13 =>
- [
+ 13
+ => [
'id' => 'ocr',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'files',
1 => 'tools',
],
@@ -1373,37 +1374,37 @@ class AppFetcherTest extends TestCase {
'website' => 'https://janis91.github.io/ocr/',
'created' => '2016-09-19T12:07:49.220376Z',
'lastModified' => '2016-11-21T11:22:21.024501Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '1.0.0',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
- 0 =>
- [
+ 'databases'
+ => [
+ 0
+ => [
'id' => 'pgsql',
'versionSpec' => '*',
'rawVersionSpec' => '*',
],
- 1 =>
- [
+ 1
+ => [
'id' => 'mysql',
'versionSpec' => '*',
'rawVersionSpec' => '*',
],
- 2 =>
- [
+ 2
+ => [
'id' => 'sqlite',
'versionSpec' => '*',
'rawVersionSpec' => '*',
],
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
0 => 'ocrmypdf',
1 => 'tesseract',
],
@@ -1412,8 +1413,8 @@ class AppFetcherTest extends TestCase {
'minIntSize' => 32,
'download' => 'https://github.com/janis91/ocr/releases/download/v1.0.0/ocr.tar.gz',
'created' => '2016-10-24T06:50:43.283900Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-11-21T11:22:21.269108Z',
@@ -1431,30 +1432,30 @@ class AppFetcherTest extends TestCase {
D3tJOF7spnK6I3BhVLviou/zs30AIRVBDTU0Orzx78cbInwy6/vyJib2a1olAaHz
v05SzlQRnBWM4jYBe0mA/2ds9AO6VrXGrT/iLlHemj6JYoGBM185TGewA7OJyX3a
HSlSDqaremmi+aS3onx3AKhXykDxTRkMVarePwTzzFs=',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://raw.githubusercontent.com/janis91/ocr/master/screenshots/sc1.png',
],
- 1 =>
- [
+ 1
+ => [
'url' => 'https://raw.githubusercontent.com/janis91/ocr/master/screenshots/sc2.png',
],
- 2 =>
- [
+ 2
+ => [
'url' => 'https://raw.githubusercontent.com/janis91/ocr/master/screenshots/sc3.png',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'OCR',
'summary' => 'Character recoginition for your images and pdf files.',
'description' => '# Description
@@ -1476,8 +1477,8 @@ class AppFetcherTest extends TestCase {
For further information see the homepage or the appropriate documentation.',
],
- 'de' =>
- [
+ 'de'
+ => [
'name' => 'OCR',
'summary' => 'Schrifterkennung für Bilder (mit Text) und PDF Dateien.',
'description' => '# Beschreibung
@@ -1501,10 +1502,10 @@ class AppFetcherTest extends TestCase {
],
],
'isFeatured' => false,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Janis Koehr',
'mail' => '',
'homepage' => '',
@@ -1539,11 +1540,11 @@ class AppFetcherTest extends TestCase {
kxomWjIXQh4aMHQL4QF7U4EK
-----END CERTIFICATE-----',
],
- 14 =>
- [
+ 14
+ => [
'id' => 'spreedme',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'tools',
],
'userDocs' => 'https://github.com/strukturag/nextcloud-spreedme/blob/master/README.md',
@@ -1553,27 +1554,27 @@ class AppFetcherTest extends TestCase {
'website' => '',
'created' => '2016-09-27T08:43:07.835196Z',
'lastModified' => '2016-11-21T16:51:23.703819Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '0.3.4',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '*',
'platformVersionSpec' => '>=9.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://apps.owncloud.com/CONTENT/content-files/174436-spreedme.tar.gz',
'created' => '2016-11-21T16:51:23.689599Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-11-21T16:51:23.826509Z',
@@ -1591,44 +1592,44 @@ class AppFetcherTest extends TestCase {
2Y28qLxwHVaINDFUUxD75WWdrlulRbqHwiSw8jolP9qrpXhDuLAqYam9tRwV5K5R
8uNawnFwWkicBEYkN/WtBTouWzehOPn38tHXov6SyEyD6lkuxUBZrsGQ2ru+t33U
k0kKCbV0GFw43I+3Ji5DiB4TUVNZYVoPG1B7Qve+UfA=',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://raw.githubusercontent.com/strukturag/nextcloud-spreedme/master/screenshots/appstore/conference.gif',
],
- 1 =>
- [
+ 1
+ => [
'url' => 'https://raw.githubusercontent.com/strukturag/nextcloud-spreedme/master/screenshots/appstore/presentation.png',
],
- 2 =>
- [
+ 2
+ => [
'url' => 'https://raw.githubusercontent.com/strukturag/nextcloud-spreedme/master/screenshots/appstore/import.png',
],
- 3 =>
- [
+ 3
+ => [
'url' => 'https://raw.githubusercontent.com/strukturag/nextcloud-spreedme/master/screenshots/appstore/users.png',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Spreed.ME',
'summary' => 'Audio-, video- and text chat for your Nextcloud',
'description' => 'Securely communicate with your friends and family using rich audio-, video- and text chat, and much more right from your Nextcloud – in your browser',
],
],
'isFeatured' => false,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'struktur AG',
'mail' => '',
'homepage' => '',
@@ -1663,11 +1664,11 @@ class AppFetcherTest extends TestCase {
JN+bdzJil2NNftihD4Dm7Ha7OS3O8W0=
-----END CERTIFICATE-----',
],
- 15 =>
- [
+ 15
+ => [
'id' => 'nextant',
- 'categories' =>
- [
+ 'categories'
+ => [
0 => 'files',
1 => 'tools',
],
@@ -1678,27 +1679,27 @@ class AppFetcherTest extends TestCase {
'website' => 'https://github.com/nextcloud/nextant/wiki',
'created' => '2016-09-14T14:34:35.977699Z',
'lastModified' => '2016-11-22T16:02:57.758477Z',
- 'releases' =>
- [
- 0 =>
- [
+ 'releases'
+ => [
+ 0
+ => [
'version' => '0.6.6',
- 'phpExtensions' =>
- [
+ 'phpExtensions'
+ => [
],
- 'databases' =>
- [
+ 'databases'
+ => [
],
- 'shellCommands' =>
- [
+ 'shellCommands'
+ => [
],
'phpVersionSpec' => '*',
'platformVersionSpec' => '>=9.0.0 <12.0.0',
'minIntSize' => 32,
'download' => 'https://github.com/nextcloud/nextant/releases/download/v0.6.6/nextant-0.6.6.tar.gz',
'created' => '2016-11-16T15:11:14.344704Z',
- 'licenses' =>
- [
+ 'licenses'
+ => [
0 => 'agpl',
],
'lastModified' => '2016-11-16T20:39:59.030384Z',
@@ -1716,26 +1717,26 @@ class AppFetcherTest extends TestCase {
9P3iPd2hQ6yOM9fG21LVN74b6wggI81BzFf/xJPd4ZqYLjfeG/yqd0zaiMOzMm1W
se+kc/a4iB3BoCNX3E942pBBzew4ya8LkCXdCHUUsuelDf1va1ikTh/G7D84ll9/
2avNqQnUh3hgOnxFCLI/5VrbqxfSTVdO6O/LTuAmwgw=',
- 'translations' =>
- [
+ 'translations'
+ => [
],
],
],
- 'screenshots' =>
- [
- 0 =>
- [
+ 'screenshots'
+ => [
+ 0
+ => [
'url' => 'https://raw.githubusercontent.com/nextcloud/nextant/master/screenshots/displayResult.jpg',
],
- 1 =>
- [
+ 1
+ => [
'url' => 'https://raw.githubusercontent.com/nextcloud/nextant/master/screenshots/admin.jpg',
],
],
- 'translations' =>
- [
- 'en' =>
- [
+ 'translations'
+ => [
+ 'en'
+ => [
'name' => 'Nextant',
'summary' => 'Navigate through your cloud using Solr',
'description' => '
@@ -1777,10 +1778,10 @@ class AppFetcherTest extends TestCase {
],
],
'isFeatured' => false,
- 'authors' =>
- [
- 0 =>
- [
+ 'authors'
+ => [
+ 0
+ => [
'name' => 'Maxence Lange',
'mail' => '',
'homepage' => '',
diff --git a/tests/lib/App/AppStore/Fetcher/CategoryFetcherTest.php b/tests/lib/App/AppStore/Fetcher/CategoryFetcherTest.php
index 0beb68bf03a86..a703a0376530b 100644
--- a/tests/lib/App/AppStore/Fetcher/CategoryFetcherTest.php
+++ b/tests/lib/App/AppStore/Fetcher/CategoryFetcherTest.php
@@ -1,4 +1,5 @@
>>
* [appId => [configKey, configValue, valueType, lazy, sensitive]]
*/
- private static array $baseStruct =
- [
+ private static array $baseStruct
+ = [
'testapp' => [
'enabled' => ['enabled', 'yes'],
'installed_version' => ['installed_version', '1.2.3'],
diff --git a/tests/lib/AppFramework/AppTest.php b/tests/lib/AppFramework/AppTest.php
index b44ddd6082b7a..64b4bccbac6a2 100644
--- a/tests/lib/AppFramework/AppTest.php
+++ b/tests/lib/AppFramework/AppTest.php
@@ -63,11 +63,11 @@ protected function setUp(): void {
$infoXmlPath = $this->appPath . '/appinfo/info.xml';
mkdir($this->appPath . '/appinfo', 0777, true);
- $xml = '' .
- '' .
- 'namespacetestapp' .
- 'NameSpaceTestApp' .
- '';
+ $xml = ''
+ . ''
+ . 'namespacetestapp'
+ . 'NameSpaceTestApp'
+ . '';
file_put_contents($infoXmlPath, $xml);
}
diff --git a/tests/lib/AppFramework/Controller/AuthPublicShareControllerTest.php b/tests/lib/AppFramework/Controller/AuthPublicShareControllerTest.php
index bcc0daf002f74..4efcac2dccf02 100644
--- a/tests/lib/AppFramework/Controller/AuthPublicShareControllerTest.php
+++ b/tests/lib/AppFramework/Controller/AuthPublicShareControllerTest.php
@@ -1,4 +1,5 @@
setOCSVersion(1);
- $expected = "\n" .
- "\n" .
- " \n" .
- " ok\n" .
- " 100\n" .
- " OK\n" .
- " \n" .
- " \n" .
- " \n" .
- " \n" .
- " hi\n" .
- " \n" .
- "\n";
+ $expected = "\n"
+ . "\n"
+ . " \n"
+ . " ok\n"
+ . " 100\n"
+ . " OK\n"
+ . " \n"
+ . " \n"
+ . " \n"
+ . " \n"
+ . " hi\n"
+ . " \n"
+ . "\n";
$params = new DataResponse(['test' => 'hi']);
@@ -81,8 +81,8 @@ public function testJSON(): void {
$this->createMock(IConfig::class)
));
$controller->setOCSVersion(1);
- $expected = '{"ocs":{"meta":{"status":"ok","statuscode":100,"message":"OK",' .
- '"totalitems":"","itemsperpage":""},"data":{"test":"hi"}}}';
+ $expected = '{"ocs":{"meta":{"status":"ok","statuscode":100,"message":"OK",'
+ . '"totalitems":"","itemsperpage":""},"data":{"test":"hi"}}}';
$params = new DataResponse(['test' => 'hi']);
$response = $controller->buildResponse($params, 'json');
@@ -99,17 +99,17 @@ public function testXMLV2(): void {
));
$controller->setOCSVersion(2);
- $expected = "\n" .
- "\n" .
- " \n" .
- " ok\n" .
- " 200\n" .
- " OK\n" .
- " \n" .
- " \n" .
- " hi\n" .
- " \n" .
- "\n";
+ $expected = "\n"
+ . "\n"
+ . " \n"
+ . " ok\n"
+ . " 200\n"
+ . " OK\n"
+ . " \n"
+ . " \n"
+ . " hi\n"
+ . " \n"
+ . "\n";
$params = new DataResponse(['test' => 'hi']);
diff --git a/tests/lib/AppFramework/Controller/PublicShareControllerTest.php b/tests/lib/AppFramework/Controller/PublicShareControllerTest.php
index 97216845617eb..48ec17b3edff9 100644
--- a/tests/lib/AppFramework/Controller/PublicShareControllerTest.php
+++ b/tests/lib/AppFramework/Controller/PublicShareControllerTest.php
@@ -1,4 +1,5 @@
request = new Request(
[
- 'server' =>
- [
+ 'server'
+ => [
'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'REQUEST_URI' => 'nextcloud/index.php/apps/specialapp'
]
@@ -680,8 +681,8 @@ public static function exceptionProvider(): array {
public function testAfterExceptionReturnsTemplateResponse(SecurityException $exception): void {
$this->request = new Request(
[
- 'server' =>
- [
+ 'server'
+ => [
'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'REQUEST_URI' => 'nextcloud/index.php/apps/specialapp'
]
diff --git a/tests/lib/AppFramework/OCS/BaseResponseTest.php b/tests/lib/AppFramework/OCS/BaseResponseTest.php
index a04f517db0b0a..e04f785662384 100644
--- a/tests/lib/AppFramework/OCS/BaseResponseTest.php
+++ b/tests/lib/AppFramework/OCS/BaseResponseTest.php
@@ -50,7 +50,7 @@ public function testToXml(): void {
$writer->outputMemory(true)
);
}
-
+
public function testToXmlJsonSerializable(): void {
/** @var BaseResponse $response */
$response = $this->createMock(BaseResponse::class);
diff --git a/tests/lib/AppScriptSortTest.php b/tests/lib/AppScriptSortTest.php
index ae7b5c326ec51..7dc2bde189745 100644
--- a/tests/lib/AppScriptSortTest.php
+++ b/tests/lib/AppScriptSortTest.php
@@ -1,4 +1,5 @@
expects($this->once())
->method('insert')
->with($this->callback(function (PublicKeyToken $token) use ($user, $uid, $name) {
- return $token->getUID() === $uid &&
- $token->getLoginName() === $user &&
- $token->getName() === $name &&
- $token->getType() === IToken::DO_NOT_REMEMBER &&
- $token->getLastActivity() === $this->time &&
- $token->getPassword() === null;
+ return $token->getUID() === $uid
+ && $token->getLoginName() === $user
+ && $token->getName() === $name
+ && $token->getType() === IToken::DO_NOT_REMEMBER
+ && $token->getLastActivity() === $this->time
+ && $token->getPassword() === null;
}));
$this->mapper
->expects($this->once())
@@ -426,13 +426,13 @@ public function testRenewSessionTokenWithPassword(): void {
->expects($this->once())
->method('insert')
->with($this->callback(function (PublicKeyToken $token) use ($user, $uid, $name): bool {
- return $token->getUID() === $uid &&
- $token->getLoginName() === $user &&
- $token->getName() === $name &&
- $token->getType() === IToken::DO_NOT_REMEMBER &&
- $token->getLastActivity() === $this->time &&
- $token->getPassword() !== null &&
- $this->tokenProvider->getPassword($token, 'newIdtokentokentokentoken') === 'password';
+ return $token->getUID() === $uid
+ && $token->getLoginName() === $user
+ && $token->getName() === $name
+ && $token->getType() === IToken::DO_NOT_REMEMBER
+ && $token->getLastActivity() === $this->time
+ && $token->getPassword() !== null
+ && $this->tokenProvider->getPassword($token, 'newIdtokentokentokentoken') === 'password';
}));
$this->mapper
->expects($this->once())
diff --git a/tests/lib/Authentication/TwoFactorAuth/EnforcementStateTest.php b/tests/lib/Authentication/TwoFactorAuth/EnforcementStateTest.php
index 5323a36867aa4..f1d38c10801c1 100644
--- a/tests/lib/Authentication/TwoFactorAuth/EnforcementStateTest.php
+++ b/tests/lib/Authentication/TwoFactorAuth/EnforcementStateTest.php
@@ -1,4 +1,5 @@
expectException(InvalidProviderException::class);
@@ -88,7 +88,7 @@ public function testTryEnableProvider(): void {
$this->assertTrue($res);
}
-
+
public function testTryDisableInvalidProvider(): void {
$this->expectException(InvalidProviderException::class);
diff --git a/tests/lib/Avatar/AvatarManagerTest.php b/tests/lib/Avatar/AvatarManagerTest.php
index 5fac90e0f3405..3ce9fc4180024 100644
--- a/tests/lib/Avatar/AvatarManagerTest.php
+++ b/tests/lib/Avatar/AvatarManagerTest.php
@@ -1,4 +1,5 @@
assertNull($this->instance->get('value1'));
$this->assertFalse($this->instance->hasKey('value1'));
-
+
$value = 'foobar';
$this->instance->set('value1', $value);
$this->assertTrue($this->instance->hasKey('value1'));
diff --git a/tests/lib/Calendar/ManagerTest.php b/tests/lib/Calendar/ManagerTest.php
index 7f8afc0247b78..a136dac322425 100644
--- a/tests/lib/Calendar/ManagerTest.php
+++ b/tests/lib/Calendar/ManagerTest.php
@@ -1,4 +1,5 @@
'user', 'id' => 'bar@foo.org@foobar.io'],
['type' => 'user', 'id' => '23452-4333-54353-2342'],
diff --git a/tests/lib/Comments/FakeFactory.php b/tests/lib/Comments/FakeFactory.php
index 19d8b58ae01e4..0c3241078d7dd 100644
--- a/tests/lib/Comments/FakeFactory.php
+++ b/tests/lib/Comments/FakeFactory.php
@@ -1,4 +1,5 @@
>> [userId => [appId => prefKey, prefValue, valueType, lazy, sensitive]]]
*/
- private array $basePreferences =
- [
- 'user1' =>
- [
+ private array $basePreferences
+ = [
+ 'user1'
+ => [
'app1' => [
'key1' => ['key1', 'value1'],
'key22' => ['key22', '31'],
@@ -98,8 +98,8 @@ class UserConfigTest extends TestCase {
'key5' => ['key5', true, ValueType::BOOL, true],
]
],
- 'user2' =>
- [
+ 'user2'
+ => [
'app1' => [
'1' => ['1', 'value1'],
'2' => ['2', 'value2', ValueType::STRING, true, UserConfig::FLAG_SENSITIVE],
@@ -121,8 +121,8 @@ class UserConfigTest extends TestCase {
'key1' => ['key1', 'value1', ValueType::STRING, true, 0, true]
]
],
- 'user3' =>
- [
+ 'user3'
+ => [
'app2' => [
'key2' => ['key2', 'value2c', ValueType::MIXED, false, 0, true],
'key3' => ['key3', 'value3', ValueType::STRING, true, ],
@@ -138,8 +138,8 @@ class UserConfigTest extends TestCase {
'key3' => ['key3', 'value3', ValueType::STRING, true]
]
],
- 'user4' =>
- [
+ 'user4'
+ => [
'app2' => [
'key1' => ['key1', 'value1'],
'key2' => ['key2', 'value2A', ValueType::MIXED, false, 0, true],
@@ -153,8 +153,8 @@ class UserConfigTest extends TestCase {
'key1' => ['key1', 123, ValueType::INT, true, 0, true]
]
],
- 'user5' =>
- [
+ 'user5'
+ => [
'app1' => [
'key1' => ['key1', 'value1']
],
@@ -1563,8 +1563,8 @@ public function testUpdateSensitive(
$this->assertEquals($sensitive, $userConfig->isSensitive($userId, $app, $key));
if ($sensitive) {
$this->assertEquals(true, str_starts_with(
- $userConfig->statusCache()['fastCache'][$userId][$app][$key] ??
- $userConfig->statusCache()['lazyCache'][$userId][$app][$key],
+ $userConfig->statusCache()['fastCache'][$userId][$app][$key]
+ ?? $userConfig->statusCache()['lazyCache'][$userId][$app][$key],
'$UserConfigEncryption$')
);
}
@@ -1594,8 +1594,8 @@ public function testUpdateGlobalSensitive(bool $sensitive): void {
$userConfig->getValueString($userId, $app, $key); // cache loading for userId
$this->assertEquals(
!$sensitive, str_starts_with(
- $userConfig->statusCache()['fastCache'][$userId][$app][$key] ??
- $userConfig->statusCache()['lazyCache'][$userId][$app][$key],
+ $userConfig->statusCache()['fastCache'][$userId][$app][$key]
+ ?? $userConfig->statusCache()['lazyCache'][$userId][$app][$key],
'$UserConfigEncryption$'
)
);
@@ -1608,8 +1608,8 @@ public function testUpdateGlobalSensitive(bool $sensitive): void {
$this->assertEquals($sensitive, $userConfig->isSensitive($userId, $app, $key));
// should only work if updateGlobalSensitive drop cache
$this->assertEquals($sensitive, str_starts_with(
- $userConfig->statusCache()['fastCache'][$userId][$app][$key] ??
- $userConfig->statusCache()['lazyCache'][$userId][$app][$key],
+ $userConfig->statusCache()['fastCache'][$userId][$app][$key]
+ ?? $userConfig->statusCache()['lazyCache'][$userId][$app][$key],
'$UserConfigEncryption$')
);
}
diff --git a/tests/lib/ConfigTest.php b/tests/lib/ConfigTest.php
index 89135e0cffdf8..b2a52dbd6a449 100644
--- a/tests/lib/ConfigTest.php
+++ b/tests/lib/ConfigTest.php
@@ -1,4 +1,5 @@
assertSame('moo', $config->getValue('foo'));
$content = file_get_contents($this->configFile);
- $expected = " 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n " .
- " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n);\n";
+ $expected = " 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
+ . " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n);\n";
$this->assertEquals($expected, $content);
$config->setValue('bar', 'red');
@@ -107,9 +108,9 @@ public function testSetValue(): void {
$content = file_get_contents($this->configFile);
- $expected = " 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n " .
- " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n 'bar' => 'red',\n 'apps' => \n " .
- " array (\n 0 => 'files',\n 1 => 'gallery',\n ),\n);\n";
+ $expected = " 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
+ . " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n 'bar' => 'red',\n 'apps' => \n "
+ . " array (\n 0 => 'files',\n 1 => 'gallery',\n ),\n);\n";
$this->assertEquals($expected, $content);
}
@@ -138,8 +139,8 @@ public function testSetValues(): void {
$this->assertSame(null, $config->getValue('not_exists'));
$content = file_get_contents($this->configFile);
- $expected = " 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n " .
- " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n);\n";
+ $expected = " 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
+ . " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n);\n";
$this->assertEquals($expected, $content);
}
@@ -149,8 +150,8 @@ public function testDeleteKey(): void {
$this->assertSame('this_was_clearly_not_set_before', $config->getValue('foo', 'this_was_clearly_not_set_before'));
$content = file_get_contents($this->configFile);
- $expected = " \n array (\n 0 => 'Appenzeller',\n " .
- " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n);\n";
+ $expected = " \n array (\n 0 => 'Appenzeller',\n "
+ . " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n);\n";
$this->assertEquals($expected, $content);
}
@@ -169,9 +170,9 @@ public function testConfigMerge(): void {
// Write a new value to the config
$config->setValue('CoolWebsites', ['demo.owncloud.org', 'owncloud.org', 'owncloud.com']);
- $expected = " 'bar',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n " .
- " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n 'php53' => 'totallyOutdated',\n 'CoolWebsites' => \n array (\n " .
- " 0 => 'demo.owncloud.org',\n 1 => 'owncloud.org',\n 2 => 'owncloud.com',\n ),\n);\n";
+ $expected = " 'bar',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
+ . " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n 'php53' => 'totallyOutdated',\n 'CoolWebsites' => \n array (\n "
+ . " 0 => 'demo.owncloud.org',\n 1 => 'owncloud.org',\n 2 => 'owncloud.com',\n ),\n);\n";
$this->assertEquals($expected, file_get_contents($this->configFile));
// Cleanup
diff --git a/tests/lib/ContactsManagerTest.php b/tests/lib/ContactsManagerTest.php
index 5f7e65312f21a..378dc6eadde09 100644
--- a/tests/lib/ContactsManagerTest.php
+++ b/tests/lib/ContactsManagerTest.php
@@ -1,4 +1,5 @@
'OCP\\Migration\\Attributes\\CreateTable',
'table' => 'new_table',
'description' => 'Table is used to store things, but also to get more things',
- 'notes' =>
- [
- 'this is a notice',
- 'and another one, if really needed'
- ],
+ 'notes' => [
+ 'this is a notice',
+ 'and another one, if really needed'
+ ],
'columns' => []
],
[
diff --git a/tests/lib/DB/OCPostgreSqlPlatformTest.php b/tests/lib/DB/OCPostgreSqlPlatformTest.php
index bea3adf29a47c..af17b01fc139d 100644
--- a/tests/lib/DB/OCPostgreSqlPlatformTest.php
+++ b/tests/lib/DB/OCPostgreSqlPlatformTest.php
@@ -1,4 +1,5 @@
- [function ($q) {
+ '1 column: string param unicode'
+ => [function ($q) {
return [false, [$q->createNamedParameter('👍')], '👍'];
}],
- '2 columns: string param and string param' =>
- [function ($q) {
+ '2 columns: string param and string param'
+ => [function ($q) {
return [false, [$q->createNamedParameter('foo'), $q->createNamedParameter('bar')], 'foobar'];
}],
- '2 columns: string param and int literal' =>
- [function ($q) {
+ '2 columns: string param and int literal'
+ => [function ($q) {
return [false, [$q->createNamedParameter('foo'), $q->expr()->literal(1)], 'foo1'];
}],
- '2 columns: string param and string literal' =>
- [function ($q) {
+ '2 columns: string param and string literal'
+ => [function ($q) {
return [false, [$q->createNamedParameter('foo'), $q->expr()->literal('bar')], 'foobar'];
}],
- '2 columns: string real and int literal' =>
- [function ($q) {
+ '2 columns: string real and int literal'
+ => [function ($q) {
return [true, ['configkey', $q->expr()->literal(2)], '12'];
}],
- '4 columns: string literal' =>
- [function ($q) {
+ '4 columns: string literal'
+ => [function ($q) {
return [false, [$q->expr()->literal('foo'), $q->expr()->literal('bar'), $q->expr()->literal('foo'), $q->expr()->literal('bar')], 'foobarfoobar'];
}],
- '4 columns: int literal' =>
- [function ($q) {
+ '4 columns: int literal'
+ => [function ($q) {
return [false, [$q->expr()->literal(1), $q->expr()->literal(2), $q->expr()->literal(3), $q->expr()->literal(4)], '1234'];
}],
- '5 columns: string param with special chars used in the function' =>
- [function ($q) {
+ '5 columns: string param with special chars used in the function'
+ => [function ($q) {
return [false, [$q->createNamedParameter('b'), $q->createNamedParameter("'"), $q->createNamedParameter('||'), $q->createNamedParameter(','), $q->createNamedParameter('a')], "b'||,a"];
}],
];
diff --git a/tests/lib/DB/QueryBuilder/Partitioned/PartitionedQueryBuilderTest.php b/tests/lib/DB/QueryBuilder/Partitioned/PartitionedQueryBuilderTest.php
index 697b3ab92c980..f99adc73aa832 100644
--- a/tests/lib/DB/QueryBuilder/Partitioned/PartitionedQueryBuilderTest.php
+++ b/tests/lib/DB/QueryBuilder/Partitioned/PartitionedQueryBuilderTest.php
@@ -1,4 +1,5 @@
getTestBackend(
- GroupInterface::ADD_TO_GROUP |
- GroupInterface::REMOVE_FROM_GOUP |
- GroupInterface::COUNT_USERS |
- GroupInterface::CREATE_GROUP |
- GroupInterface::DELETE_GROUP |
- GroupInterface::GROUP_DETAILS
+ GroupInterface::ADD_TO_GROUP
+ | GroupInterface::REMOVE_FROM_GOUP
+ | GroupInterface::COUNT_USERS
+ | GroupInterface::CREATE_GROUP
+ | GroupInterface::DELETE_GROUP
+ | GroupInterface::GROUP_DETAILS
);
$backend->expects($this->any())
->method('groupExists')
@@ -242,12 +242,12 @@ public function testCreateTooLong(): void {
/** @var \PHPUnit\Framework\MockObject\MockObject|\OC\Group\Backend $backend */
$backendGroupCreated = false;
$backend = $this->getTestBackend(
- GroupInterface::ADD_TO_GROUP |
- GroupInterface::REMOVE_FROM_GOUP |
- GroupInterface::COUNT_USERS |
- GroupInterface::CREATE_GROUP |
- GroupInterface::DELETE_GROUP |
- GroupInterface::GROUP_DETAILS
+ GroupInterface::ADD_TO_GROUP
+ | GroupInterface::REMOVE_FROM_GOUP
+ | GroupInterface::COUNT_USERS
+ | GroupInterface::CREATE_GROUP
+ | GroupInterface::DELETE_GROUP
+ | GroupInterface::GROUP_DETAILS
);
$groupName = str_repeat('x', 256);
$backend->expects($this->any())
@@ -955,12 +955,12 @@ public function testGroupDisplayName(): void {
* @var \PHPUnit\Framework\MockObject\MockObject | \OC\Group\Backend $backend
*/
$backend = $this->getTestBackend(
- GroupInterface::ADD_TO_GROUP |
- GroupInterface::REMOVE_FROM_GOUP |
- GroupInterface::COUNT_USERS |
- GroupInterface::CREATE_GROUP |
- GroupInterface::DELETE_GROUP |
- GroupInterface::GROUP_DETAILS
+ GroupInterface::ADD_TO_GROUP
+ | GroupInterface::REMOVE_FROM_GOUP
+ | GroupInterface::COUNT_USERS
+ | GroupInterface::CREATE_GROUP
+ | GroupInterface::DELETE_GROUP
+ | GroupInterface::GROUP_DETAILS
);
$backend->expects($this->any())
->method('getGroupDetails')
diff --git a/tests/lib/Group/MetaDataTest.php b/tests/lib/Group/MetaDataTest.php
index 1b58432fd88e2..dee59eab8da1c 100644
--- a/tests/lib/Group/MetaDataTest.php
+++ b/tests/lib/Group/MetaDataTest.php
@@ -1,4 +1,5 @@
method('createLocal')
->with('NegativeDnsCache')
->willReturn($this->cache);
-
+
$this->negativeDnsCache = new NegativeDnsCache($this->cacheFactory);
}
diff --git a/tests/lib/Http/Client/ResponseTest.php b/tests/lib/Http/Client/ResponseTest.php
index 291dc2871481d..1acf1eb1cbd66 100644
--- a/tests/lib/Http/Client/ResponseTest.php
+++ b/tests/lib/Http/Client/ResponseTest.php
@@ -1,4 +1,5 @@
assertSame(\OC_App::getAppPath('files'), $this->locator->getAppPath('files'));
}
-
+
public function testGetAppPathNotExistentApp(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('App not found');
diff --git a/tests/lib/IntegrityCheck/Helpers/EnvironmentHelperTest.php b/tests/lib/IntegrityCheck/Helpers/EnvironmentHelperTest.php
index 379eb178b06ee..caa5ed2e782b5 100644
--- a/tests/lib/IntegrityCheck/Helpers/EnvironmentHelperTest.php
+++ b/tests/lib/IntegrityCheck/Helpers/EnvironmentHelperTest.php
@@ -1,4 +1,5 @@
assertSame($data, $this->fileAccessHelper->file_get_contents($filePath));
}
-
+
public function testFile_put_contentsWithException(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Failed to write into /anabsolutelynotexistingfolder/on/the/system.txt');
@@ -43,7 +44,7 @@ public function testIs_writable(): void {
$this->assertTrue($this->fileAccessHelper->is_writable(Server::get(ITempManager::class)->getTemporaryFile('MyFile')));
}
-
+
public function testAssertDirectoryExistsWithException(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Directory /anabsolutelynotexistingfolder/on/the/system does not exist.');
diff --git a/tests/lib/IntegrityCheck/Iterator/ExcludeFileByNameFilterIteratorTest.php b/tests/lib/IntegrityCheck/Iterator/ExcludeFileByNameFilterIteratorTest.php
index 1d0b3e4f24d07..f6507a6ee3d50 100644
--- a/tests/lib/IntegrityCheck/Iterator/ExcludeFileByNameFilterIteratorTest.php
+++ b/tests/lib/IntegrityCheck/Iterator/ExcludeFileByNameFilterIteratorTest.php
@@ -1,4 +1,5 @@
expectException(\UnexpectedValueException::class);
diff --git a/tests/lib/LegacyHelperTest.php b/tests/lib/LegacyHelperTest.php
index 0938640b89264..858069410ffb9 100644
--- a/tests/lib/LegacyHelperTest.php
+++ b/tests/lib/LegacyHelperTest.php
@@ -1,4 +1,5 @@
assertFalse($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
}
-
+
public function testDoubleExclusiveLock(): void {
$this->expectException(LockedException::class);
@@ -76,7 +77,7 @@ public function testReleaseExclusiveLock(): void {
$this->instance->acquireLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
}
-
+
public function testExclusiveLockAfterShared(): void {
$this->expectException(LockedException::class);
@@ -150,7 +151,7 @@ public function testReleaseAfterReleaseAll(): void {
}
-
+
public function testSharedLockAfterExclusive(): void {
$this->expectException(LockedException::class);
@@ -197,7 +198,7 @@ public function testChangeLockToShared(): void {
$this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
}
-
+
public function testChangeLockToExclusiveDoubleShared(): void {
$this->expectException(LockedException::class);
@@ -206,14 +207,14 @@ public function testChangeLockToExclusiveDoubleShared(): void {
$this->instance->changeLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
}
-
+
public function testChangeLockToExclusiveNoShared(): void {
$this->expectException(LockedException::class);
$this->instance->changeLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
}
-
+
public function testChangeLockToExclusiveFromExclusive(): void {
$this->expectException(LockedException::class);
@@ -221,14 +222,14 @@ public function testChangeLockToExclusiveFromExclusive(): void {
$this->instance->changeLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
}
-
+
public function testChangeLockToSharedNoExclusive(): void {
$this->expectException(LockedException::class);
$this->instance->changeLock('foo', ILockingProvider::LOCK_SHARED);
}
-
+
public function testChangeLockToSharedFromShared(): void {
$this->expectException(LockedException::class);
diff --git a/tests/lib/Lock/MemcacheLockingProviderTest.php b/tests/lib/Lock/MemcacheLockingProviderTest.php
index ec8ded11d1e08..91f9c8811ede7 100644
--- a/tests/lib/Lock/MemcacheLockingProviderTest.php
+++ b/tests/lib/Lock/MemcacheLockingProviderTest.php
@@ -1,4 +1,5 @@
assertEquals('user1@testing.com', $this->address->getAddress());
// test set by setter
@@ -34,7 +34,7 @@ public function testAddress(): void {
}
public function testLabel(): void {
-
+
// test set by constructor
$this->assertEquals('User One', $this->address->getLabel());
// test set by setter
diff --git a/tests/lib/Mail/Provider/AttachmentTest.php b/tests/lib/Mail/Provider/AttachmentTest.php
index 283391650b589..f02b1d54a7bf6 100644
--- a/tests/lib/Mail/Provider/AttachmentTest.php
+++ b/tests/lib/Mail/Provider/AttachmentTest.php
@@ -29,7 +29,7 @@ protected function setUp(): void {
}
public function testName(): void {
-
+
// test set by constructor
$this->assertEquals('example1.txt', $this->attachment->getName());
// test set by setter
@@ -39,7 +39,7 @@ public function testName(): void {
}
public function testType(): void {
-
+
// test set by constructor
$this->assertEquals('text/plain', $this->attachment->getType());
// test set by setter
@@ -49,7 +49,7 @@ public function testType(): void {
}
public function testContents(): void {
-
+
// test set by constructor
$this->assertEquals('This is the contents of a file', $this->attachment->getContents());
// test set by setter
@@ -59,7 +59,7 @@ public function testContents(): void {
}
public function testEmbedded(): void {
-
+
// test set by constructor
$this->assertEquals(false, $this->attachment->getEmbedded());
// test set by setter
diff --git a/tests/lib/Mail/Provider/MessageTest.php b/tests/lib/Mail/Provider/MessageTest.php
index 1791a03421c39..6b387e5b0106f 100644
--- a/tests/lib/Mail/Provider/MessageTest.php
+++ b/tests/lib/Mail/Provider/MessageTest.php
@@ -56,14 +56,14 @@ protected function setUp(): void {
}
public function testId(): void {
-
+
// test set by constructor
$this->assertEquals('cd02ea42-feac-4863-b9d8-484d16a587ea', $this->message->id());
}
public function testFrom(): void {
-
+
// test not set
$this->assertNull($this->message->getFrom());
// test set by setter
@@ -73,7 +73,7 @@ public function testFrom(): void {
}
public function testReplyTo(): void {
-
+
// test not set
$this->assertNull($this->message->getReplyTo());
// test set by setter
@@ -83,7 +83,7 @@ public function testReplyTo(): void {
}
public function testTo(): void {
-
+
// test not set
$this->assertEquals([], $this->message->getTo());
// test set by setter single
@@ -96,7 +96,7 @@ public function testTo(): void {
}
public function testCc(): void {
-
+
// test not set
$this->assertEquals([], $this->message->getCc());
// test set by setter single
@@ -109,7 +109,7 @@ public function testCc(): void {
}
public function testBcc(): void {
-
+
// test not set
$this->assertEquals([], $this->message->getBcc());
// test set by setter single
@@ -122,7 +122,7 @@ public function testBcc(): void {
}
public function testSubject(): void {
-
+
// test not set
$this->assertNull($this->message->getSubject());
// test set by setter
@@ -132,7 +132,7 @@ public function testSubject(): void {
}
public function testBody(): void {
-
+
// test not set
$this->assertNull($this->message->getBody());
// test set by setter - text body
@@ -149,7 +149,7 @@ public function testBody(): void {
}
public function testAttachments(): void {
-
+
// test not set
$this->assertEquals([], $this->message->getAttachments());
// test set by setter single
diff --git a/tests/lib/Memcache/CasTraitTest.php b/tests/lib/Memcache/CasTraitTest.php
index 57000049cc79b..9de04fa27260f 100644
--- a/tests/lib/Memcache/CasTraitTest.php
+++ b/tests/lib/Memcache/CasTraitTest.php
@@ -1,4 +1,5 @@
assertEquals('user', $user->getUserId());
}
-
+
public function testGetUserInvalidResponse(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Invalid user response, expected field email not found');
@@ -67,7 +68,7 @@ public function testGetUserInvalidResponse(): void {
$client->getUser('user');
}
-
+
public function testInvalidPassword(): void {
$this->expectException(ForbiddenException::class);
diff --git a/tests/lib/Remote/InstanceTest.php b/tests/lib/Remote/InstanceTest.php
index 027a67010be89..560706e45727a 100644
--- a/tests/lib/Remote/InstanceTest.php
+++ b/tests/lib/Remote/InstanceTest.php
@@ -1,4 +1,5 @@
assertEquals(false, $instance2->isActive());
}
-
+
public function testPreventDowngradeAttach(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('refusing to connect to remote instance(example.com) over http that was previously accessible over https');
diff --git a/tests/lib/Repair/CleanTagsTest.php b/tests/lib/Repair/CleanTagsTest.php
index 5964fdb7f63ee..04afabb87d901 100644
--- a/tests/lib/Repair/CleanTagsTest.php
+++ b/tests/lib/Repair/CleanTagsTest.php
@@ -1,4 +1,5 @@
expiredCertificate = new Certificate($expiredCertificate, 'ExpiredCertificate');
}
-
+
public function testBogusData(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Certificate could not get parsed.');
diff --git a/tests/lib/ServerTest.php b/tests/lib/ServerTest.php
index 58d987a102d34..1dd4ba6c1ea1c 100644
--- a/tests/lib/ServerTest.php
+++ b/tests/lib/ServerTest.php
@@ -1,4 +1,5 @@
urlGenerator = $this->createMock(IURLGenerator::class);
$this->clientService = $this->createMock(IClientService::class);
$this->logger = $this->createMock(LoggerInterface::class);
-
+
$this->trait = new CheckServerResponseTraitImplementation(
$this->l10n,
$this->config,
@@ -103,7 +103,7 @@ public function testGetTestUrls(
$this->urlGenerator->expects(self::atLeastOnce())
->method('getBaseUrl')
->willReturn(self::BASE_URL . $webRoot);
-
+
$result = $this->trait->getTestUrls($url, $isRootRequest);
$this->assertEquals($expected, $result);
}
diff --git a/tests/lib/SetupTest.php b/tests/lib/SetupTest.php
index f82060dcfa260..a01dfa60ddc95 100644
--- a/tests/lib/SetupTest.php
+++ b/tests/lib/SetupTest.php
@@ -1,4 +1,5 @@
prepare(
- 'INSERT INTO `*PREFIX*vcategory_to_object` ' .
- '(`objid`, `categoryid`, `type`) VALUES ' .
- '(?, ?, ?)'
+ 'INSERT INTO `*PREFIX*vcategory_to_object` '
+ . '(`objid`, `categoryid`, `type`) VALUES '
+ . '(?, ?, ?)'
);
// insert lots of entries
diff --git a/tests/lib/TaskProcessing/TaskProcessingTest.php b/tests/lib/TaskProcessing/TaskProcessingTest.php
index 1995b6919ab41..9a622cf30d3a0 100644
--- a/tests/lib/TaskProcessing/TaskProcessingTest.php
+++ b/tests/lib/TaskProcessing/TaskProcessingTest.php
@@ -1,4 +1,5 @@
method('dispatchTyped')
->with(
$this->callback(function (PostLoginEvent $e) {
- return $e->getUser()->getUID() === 'foo' &&
- $e->getPassword() === 'bar' &&
- $e->isTokenLogin() === false;
+ return $e->getUser()->getUID() === 'foo'
+ && $e->getPassword() === 'bar'
+ && $e->isTokenLogin() === false;
})
);
diff --git a/tests/lib/Util/Group/Dummy.php b/tests/lib/Util/Group/Dummy.php
index 50edc15c8455b..fab94cdc64580 100644
--- a/tests/lib/Util/Group/Dummy.php
+++ b/tests/lib/Util/Group/Dummy.php
@@ -1,4 +1,5 @@
getBaseUrl() . '" target="_blank">' . $this->getEntity() . '' .
- '
' . $this->getSlogan();
+ $footer = '© ' . date('Y') . ' ' . $this->getEntity() . ''
+ . '
' . $this->getSlogan();
return $footer;
}
diff --git a/vendor-bin/cs-fixer/composer.lock b/vendor-bin/cs-fixer/composer.lock
index 32ba19362f5b3..1c6ca8a14cf88 100644
--- a/vendor-bin/cs-fixer/composer.lock
+++ b/vendor-bin/cs-fixer/composer.lock
@@ -8,16 +8,16 @@
"packages": [
{
"name": "kubawerlos/php-cs-fixer-custom-fixers",
- "version": "v3.22.0",
+ "version": "v3.27.0",
"source": {
"type": "git",
"url": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers.git",
- "reference": "8701394f0c7cd450ac4fa577d24589122c1d5d5e"
+ "reference": "d860473d16b906c7945206177edc7d112357a706"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/8701394f0c7cd450ac4fa577d24589122c1d5d5e",
- "reference": "8701394f0c7cd450ac4fa577d24589122c1d5d5e",
+ "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/d860473d16b906c7945206177edc7d112357a706",
+ "reference": "d860473d16b906c7945206177edc7d112357a706",
"shasum": ""
},
"require": {
@@ -27,7 +27,7 @@
"php": "^7.4 || ^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.6.4 || ^10.5.29"
+ "phpunit/phpunit": "^9.6.22 || 10.5.45 || ^11.5.7"
},
"type": "library",
"autoload": {
@@ -48,27 +48,33 @@
"description": "A set of custom fixers for PHP CS Fixer",
"support": {
"issues": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/issues",
- "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.22.0"
+ "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.27.0"
},
- "time": "2024-08-16T20:44:35+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/kubawerlos",
+ "type": "github"
+ }
+ ],
+ "time": "2025-06-10T20:53:07+00:00"
},
{
"name": "nextcloud/coding-standard",
- "version": "v1.3.2",
+ "version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/nextcloud/coding-standard.git",
- "reference": "9c719c4747fa26efc12f2e8b21c14a9a75c6ba6d"
+ "reference": "8e06808c1423e9208d63d1bd205b9a38bd400011"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/9c719c4747fa26efc12f2e8b21c14a9a75c6ba6d",
- "reference": "9c719c4747fa26efc12f2e8b21c14a9a75c6ba6d",
+ "url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/8e06808c1423e9208d63d1bd205b9a38bd400011",
+ "reference": "8e06808c1423e9208d63d1bd205b9a38bd400011",
"shasum": ""
},
"require": {
"kubawerlos/php-cs-fixer-custom-fixers": "^3.22",
- "php": "^7.3|^8.0",
+ "php": "^8.0",
"php-cs-fixer/shim": "^3.17"
},
"type": "library",
@@ -88,24 +94,27 @@
}
],
"description": "Nextcloud coding standards for the php cs fixer",
+ "keywords": [
+ "dev"
+ ],
"support": {
"issues": "https://github.com/nextcloud/coding-standard/issues",
- "source": "https://github.com/nextcloud/coding-standard/tree/v1.3.2"
+ "source": "https://github.com/nextcloud/coding-standard/tree/v1.4.0"
},
- "time": "2024-10-14T16:49:05+00:00"
+ "time": "2025-06-19T12:27:27+00:00"
},
{
"name": "php-cs-fixer/shim",
- "version": "v3.64.0",
+ "version": "v3.75.0",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/shim.git",
- "reference": "81ccfd24baf3a10810dab1152c403981a790b837"
+ "reference": "eea219a577085bd13ff0cb644a422c20798316c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/81ccfd24baf3a10810dab1152c403981a790b837",
- "reference": "81ccfd24baf3a10810dab1152c403981a790b837",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/eea219a577085bd13ff0cb644a422c20798316c7",
+ "reference": "eea219a577085bd13ff0cb644a422c20798316c7",
"shasum": ""
},
"require": {
@@ -142,9 +151,9 @@
"description": "A tool to automatically fix PHP code style",
"support": {
"issues": "https://github.com/PHP-CS-Fixer/shim/issues",
- "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.64.0"
+ "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.75.0"
},
- "time": "2024-08-30T23:10:11+00:00"
+ "time": "2025-03-31T18:45:02+00:00"
}
],
"packages-dev": [],
@@ -158,5 +167,5 @@
"platform-overrides": {
"php": "8.1"
},
- "plugin-api-version": "2.6.0"
+ "plugin-api-version": "2.3.0"
}