aboutsummaryrefslogtreecommitdiffstats
path: root/apps/sharebymail/lib
diff options
context:
space:
mode:
Diffstat (limited to 'apps/sharebymail/lib')
-rw-r--r--apps/sharebymail/lib/Activity.php7
-rw-r--r--apps/sharebymail/lib/Capabilities.php35
-rw-r--r--apps/sharebymail/lib/Settings/Admin.php1
-rw-r--r--apps/sharebymail/lib/ShareByMailProvider.php59
4 files changed, 53 insertions, 49 deletions
diff --git a/apps/sharebymail/lib/Activity.php b/apps/sharebymail/lib/Activity.php
index ae3407c1e2b..2d8289affa4 100644
--- a/apps/sharebymail/lib/Activity.php
+++ b/apps/sharebymail/lib/Activity.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -233,12 +234,12 @@ class Activity implements IProvider {
/**
* @param int $id
* @param string $path
- * @return array
+ * @return array<string,string>
*/
- protected function generateFileParameter($id, $path) {
+ protected function generateFileParameter($id, $path): array {
return [
'type' => 'file',
- 'id' => $id,
+ 'id' => (string)$id,
'name' => basename($path),
'path' => trim($path, '/'),
'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]),
diff --git a/apps/sharebymail/lib/Capabilities.php b/apps/sharebymail/lib/Capabilities.php
index 67a0ec7a9de..425a695ff36 100644
--- a/apps/sharebymail/lib/Capabilities.php
+++ b/apps/sharebymail/lib/Capabilities.php
@@ -48,24 +48,23 @@ class Capabilities implements ICapability {
return [];
}
return [
- '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(),
- ],
- ]
+ '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 2bd58f7307f..8f27bbff6d6 100644
--- a/apps/sharebymail/lib/Settings/Admin.php
+++ b/apps/sharebymail/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php
index d6a12c83123..d28f7c51327 100644
--- a/apps/sharebymail/lib/ShareByMailProvider.php
+++ b/apps/sharebymail/lib/ShareByMailProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -426,7 +427,7 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
$initiatorDisplayName = ($initiatorUser instanceof IUser) ? $initiatorUser->getDisplayName() : $initiator;
$initiatorEmailAddress = ($initiatorUser instanceof IUser) ? $initiatorUser->getEMailAddress() : null;
- $plainBodyPart = $this->l->t("%1\$s shared %2\$s with you.\nYou should have already received a separate mail with a link to access it.\n", [$initiatorDisplayName, $filename]);
+ $plainBodyPart = $this->l->t('%1$s shared %2$s with you. You should have already received a separate mail with a link to access it.', [$initiatorDisplayName, $filename]);
$htmlBodyPart = $this->l->t('%1$s shared %2$s with you. You should have already received a separate mail with a link to access it.', [$initiatorDisplayName, $filename]);
$message = $this->mailer->createMessage();
@@ -636,11 +637,6 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
return $token;
}
- /**
- * Get all children of this share
- *
- * @return IShare[]
- */
public function getChildren(IShare $parent): array {
$children = [];
@@ -722,8 +718,8 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
// a real password was given
$validPassword = $plainTextPassword !== null && $plainTextPassword !== '';
- if ($validPassword && ($originalShare->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);
@@ -1112,29 +1108,39 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
}
public function getSharesInFolder($userId, Folder $node, $reshares, $shallow = true): array {
+ return $this->getSharesInFolderInternal($userId, $node, $reshares);
+ }
+
+ public function getAllSharesInFolder(Folder $node): array {
+ return $this->getSharesInFolderInternal(null, $node, null);
+ }
+
+ /**
+ * @return array<int, list<IShare>>
+ */
+ private function getSharesInFolderInternal(?string $userId, Folder $node, ?bool $reshares): array {
$qb = $this->dbConnection->getQueryBuilder();
$qb->select('*')
->from('share', 's')
- ->andWhere($qb->expr()->orX(
- $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
- $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
- ))
+ ->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
->andWhere(
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_EMAIL))
);
- /**
- * Reshares for this user are shares where they are the owner.
- */
- if ($reshares === false) {
- $qb->andWhere($qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId)));
- } else {
- $qb->andWhere(
- $qb->expr()->orX(
- $qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)),
- $qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId))
- )
- );
+ if ($userId !== null) {
+ /**
+ * Reshares for this user are shares where they are the owner.
+ */
+ if ($reshares !== true) {
+ $qb->andWhere($qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId)));
+ } else {
+ $qb->andWhere(
+ $qb->expr()->orX(
+ $qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)),
+ $qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId))
+ )
+ );
+ }
}
$qb->innerJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid'));
@@ -1167,10 +1173,7 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
->from('share')
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_EMAIL)))
->andWhere($qb->expr()->in('file_source', $qb->createNamedParameter($ids, IQueryBuilder::PARAM_INT_ARRAY)))
- ->andWhere($qb->expr()->orX(
- $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
- $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
- ));
+ ->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
$cursor = $qb->executeQuery();
$public = false;