@@ -173,6 +173,7 @@ public function create(IShare $share) {
173173 $ permissions = $ share ->getPermissions ();
174174 $ sharedBy = $ share ->getSharedBy ();
175175 $ shareType = $ share ->getShareType ();
176+ $ expirationDate = $ share ->getExpirationDate ();
176177
177178 if ($ shareType === IShare::TYPE_REMOTE_GROUP &&
178179 !$ this ->isOutgoingServer2serverGroupShareEnabled ()
@@ -219,7 +220,7 @@ public function create(IShare $share) {
219220 if ($ remoteShare ) {
220221 try {
221222 $ ownerCloudId = $ this ->cloudIdManager ->getCloudId ($ remoteShare ['owner ' ], $ remoteShare ['remote ' ]);
222- $ shareId = $ this ->addShareToDB ($ itemSource , $ itemType , $ shareWith , $ sharedBy , $ ownerCloudId ->getId (), $ permissions , 'tmp_token_ ' . time (), $ shareType );
223+ $ shareId = $ this ->addShareToDB ($ itemSource , $ itemType , $ shareWith , $ sharedBy , $ ownerCloudId ->getId (), $ permissions , 'tmp_token_ ' . time (), $ shareType, $ expirationDate );
223224 $ share ->setId ($ shareId );
224225 list ($ token , $ remoteId ) = $ this ->askOwnerToReShare ($ shareWith , $ share , $ shareId );
225226 // remote share was create successfully if we get a valid token as return
@@ -264,7 +265,8 @@ protected function createFederatedShare(IShare $share) {
264265 $ share ->getShareOwner (),
265266 $ share ->getPermissions (),
266267 $ token ,
267- $ share ->getShareType ()
268+ $ share ->getShareType (),
269+ $ share ->getExpirationDate ()
268270 );
269271
270272 $ failure = false ;
@@ -370,9 +372,10 @@ protected function getShareFromExternalShareTable(IShare $share) {
370372 * @param int $permissions
371373 * @param string $token
372374 * @param int $shareType
375+ * @param \DateTime $expirationDate
373376 * @return int
374377 */
375- private function addShareToDB ($ itemSource , $ itemType , $ shareWith , $ sharedBy , $ uidOwner , $ permissions , $ token , $ shareType ) {
378+ private function addShareToDB ($ itemSource , $ itemType , $ shareWith , $ sharedBy , $ uidOwner , $ permissions , $ token , $ shareType, $ expirationDate ) {
376379 $ qb = $ this ->dbConnection ->getQueryBuilder ();
377380 $ qb ->insert ('share ' )
378381 ->setValue ('share_type ' , $ qb ->createNamedParameter ($ shareType ))
@@ -383,6 +386,7 @@ private function addShareToDB($itemSource, $itemType, $shareWith, $sharedBy, $ui
383386 ->setValue ('uid_owner ' , $ qb ->createNamedParameter ($ uidOwner ))
384387 ->setValue ('uid_initiator ' , $ qb ->createNamedParameter ($ sharedBy ))
385388 ->setValue ('permissions ' , $ qb ->createNamedParameter ($ permissions ))
389+ ->setValue ('expiration ' , $ qb ->createNamedParameter ($ expirationDate , IQueryBuilder::PARAM_DATE ))
386390 ->setValue ('token ' , $ qb ->createNamedParameter ($ token ))
387391 ->setValue ('stime ' , $ qb ->createNamedParameter (time ()));
388392
@@ -414,6 +418,7 @@ public function update(IShare $share) {
414418 ->set ('permissions ' , $ qb ->createNamedParameter ($ share ->getPermissions ()))
415419 ->set ('uid_owner ' , $ qb ->createNamedParameter ($ share ->getShareOwner ()))
416420 ->set ('uid_initiator ' , $ qb ->createNamedParameter ($ share ->getSharedBy ()))
421+ ->set ('expiration ' , $ qb ->createNamedParameter ($ share ->getExpirationDate (), IQueryBuilder::PARAM_DATE ))
417422 ->execute ();
418423
419424 // send the updated permission to the owner/initiator, if they are not the same
0 commit comments