Merge pull request #9970 from owncloud/sharing_set_expire_date

Sharing set expire date
This commit is contained in:
Morris Jobke 2014-07-30 14:37:16 +02:00
commit 38e309b0fe
2 changed files with 28 additions and 1 deletions

View File

@ -595,6 +595,7 @@ class Share extends \OC\Share\Constants {
$shareWith['group'] = $group; $shareWith['group'] = $group;
$shareWith['users'] = array_diff(\OC_Group::usersInGroup($group), array($uidOwner)); $shareWith['users'] = array_diff(\OC_Group::usersInGroup($group), array($uidOwner));
} else if ($shareType === self::SHARE_TYPE_LINK) { } else if ($shareType === self::SHARE_TYPE_LINK) {
$updateExistingShare = false;
if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') == 'yes') { if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') == 'yes') {
// when updating a link share // when updating a link share
@ -629,7 +630,7 @@ class Share extends \OC\Share\Constants {
throw new \Exception($message_t); throw new \Exception($message_t);
} }
if (!empty($updateExistingShare) && if ($updateExistingShare === false &&
self::isDefaultExpireDateEnabled() && self::isDefaultExpireDateEnabled() &&
empty($expirationDate)) { empty($expirationDate)) {
$expirationDate = Helper::calcExpireDate(); $expirationDate = Helper::calcExpireDate();

View File

@ -631,6 +631,32 @@ class Test_Share extends PHPUnit_Framework_TestCase {
); );
} }
public function testShareItemWithLinkAndDefaultExpireDate() {
OC_User::setUserId($this->user1);
\OC_Appconfig::setValue('core', 'shareapi_default_expire_date', 'yes');
\OC_Appconfig::setValue('core', 'shareapi_expire_after_n_days', '2');
$token = OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_LINK, null, OCP\PERMISSION_READ);
$this->assertInternalType(
'string',
$token,
'Failed asserting that user 1 successfully shared text.txt as link with token.'
);
// share should have default expire date
$row = $this->getShareByValidToken($token);
$this->assertNotEmpty(
$row['expiration'],
'Failed asserting that the returned row has an default expiration date.'
);
\OC_Appconfig::deleteKey('core', 'shareapi_default_expire_date');
\OC_Appconfig::deleteKey('core', 'shareapi_expire_after_n_days');
}
public function testUnshareAll() { public function testUnshareAll() {
$this->shareUserTestFileWithUser($this->user1, $this->user2); $this->shareUserTestFileWithUser($this->user1, $this->user2);
$this->shareUserTestFileWithUser($this->user2, $this->user3); $this->shareUserTestFileWithUser($this->user2, $this->user3);