]> source.dussan.org Git - nextcloud-server.git/commitdiff
Mutualize expireDate handling when creating and updating a share 37958/head
authorLouis Chemineau <louis@chmn.me>
Thu, 27 Apr 2023 14:26:24 +0000 (16:26 +0200)
committerLouis Chemineau <louis@chmn.me>
Thu, 27 Apr 2023 14:26:24 +0000 (16:26 +0200)
Signed-off-by: Louis Chemineau <louis@chmn.me>
apps/files_sharing/lib/Controller/ShareAPIController.php

index e1595a98ea31a7cc5a2ea347ec3f0afce6381bf5..3287d9447d8d3b7eda0be37b778190786dae284d 100644 (file)
@@ -627,16 +627,6 @@ class ShareAPIController extends OCSController {
 
                                $share->setSendPasswordByTalk(true);
                        }
-
-                       //Expire date
-                       if ($expireDate !== '') {
-                               try {
-                                       $expireDate = $this->parseDate($expireDate);
-                                       $share->setExpirationDate($expireDate);
-                               } catch (\Exception $e) {
-                                       throw new OCSNotFoundException($this->l->t('Invalid date, date format must be YYYY-MM-DD'));
-                               }
-                       }
                } elseif ($shareType === IShare::TYPE_REMOTE) {
                        if (!$this->shareManager->outgoingServer2ServerSharesAllowed()) {
                                throw new OCSForbiddenException($this->l->t('Sharing %1$s failed because the back end does not allow shares from type %2$s', [$node->getPath(), $shareType]));
@@ -710,6 +700,16 @@ class ShareAPIController extends OCSController {
                        throw new OCSBadRequestException($this->l->t('Unknown share type'));
                }
 
+               //Expire date
+               if ($expireDate !== '') {
+                       try {
+                               $expireDate = $this->parseDate($expireDate);
+                               $share->setExpirationDate($expireDate);
+                       } catch (\Exception $e) {
+                               throw new OCSNotFoundException($this->l->t('Invalid date, date format must be YYYY-MM-DD'));
+                       }
+               }
+
                $share->setShareType($shareType);
 
                if ($note !== '') {
@@ -1216,17 +1216,6 @@ class ShareAPIController extends OCSController {
                                $permissions = $newPermissions;
                        }
 
-                       if ($expireDate === '') {
-                               $share->setExpirationDate(null);
-                       } elseif ($expireDate !== null) {
-                               try {
-                                       $expireDate = $this->parseDate($expireDate);
-                               } catch (\Exception $e) {
-                                       throw new OCSBadRequestException($e->getMessage(), $e);
-                               }
-                               $share->setExpirationDate($expireDate);
-                       }
-
                        if ($password === '') {
                                $share->setPassword(null);
                        } elseif ($password !== null) {
@@ -1256,17 +1245,17 @@ class ShareAPIController extends OCSController {
                        if ($permissions !== null) {
                                $share->setPermissions($permissions);
                        }
+               }
 
-                       if ($expireDate === '') {
-                               $share->setExpirationDate(null);
-                       } elseif ($expireDate !== null) {
-                               try {
-                                       $expireDate = $this->parseDate($expireDate);
-                               } catch (\Exception $e) {
-                                       throw new OCSBadRequestException($e->getMessage(), $e);
-                               }
-                               $share->setExpirationDate($expireDate);
+               if ($expireDate === '') {
+                       $share->setExpirationDate(null);
+               } elseif ($expireDate !== null) {
+                       try {
+                               $expireDate = $this->parseDate($expireDate);
+                       } catch (\Exception $e) {
+                               throw new OCSBadRequestException($e->getMessage(), $e);
                        }
+                       $share->setExpirationDate($expireDate);
                }
 
                try {