Merge pull request #15025 from rullzer/ocs_respect_enforced_date
Ocs respect enforced date
This commit is contained in:
commit
857b22c61b
|
@ -1079,6 +1079,24 @@ class Test_Files_Sharing_Api extends TestCase {
|
||||||
$this->assertTrue(is_array($updatedLinkShare));
|
$this->assertTrue(is_array($updatedLinkShare));
|
||||||
$this->assertEquals($dateWithinRange->format('Y-m-d') . ' 00:00:00', $updatedLinkShare['expiration']);
|
$this->assertEquals($dateWithinRange->format('Y-m-d') . ' 00:00:00', $updatedLinkShare['expiration']);
|
||||||
|
|
||||||
|
|
||||||
|
// Try to remove expire date
|
||||||
|
$params = array();
|
||||||
|
$params['id'] = $linkShare['id'];
|
||||||
|
$params['_put'] = ['expireDate' => ''];
|
||||||
|
|
||||||
|
$result = \OCA\Files_Sharing\API\Local::updateShare($params);
|
||||||
|
|
||||||
|
$this->assertFalse($result->succeeded());
|
||||||
|
|
||||||
|
$items = \OCP\Share::getItemShared('file', $linkShare['file_source']);
|
||||||
|
|
||||||
|
$updatedLinkShare = reset($items);
|
||||||
|
|
||||||
|
// date shouldn't be changed
|
||||||
|
$this->assertTrue(is_array($updatedLinkShare));
|
||||||
|
$this->assertEquals($dateWithinRange->format('Y-m-d') . ' 00:00:00', $updatedLinkShare['expiration']);
|
||||||
|
|
||||||
// cleanup
|
// cleanup
|
||||||
$config->setAppValue('core', 'shareapi_default_expire_date', 'no');
|
$config->setAppValue('core', 'shareapi_default_expire_date', 'no');
|
||||||
$config->setAppValue('core', 'shareapi_enforce_expire_date', 'no');
|
$config->setAppValue('core', 'shareapi_enforce_expire_date', 'no');
|
||||||
|
|
|
@ -1097,9 +1097,17 @@ class Share extends \OC\Share\Constants {
|
||||||
*/
|
*/
|
||||||
public static function setExpirationDate($itemType, $itemSource, $date, $shareTime = null) {
|
public static function setExpirationDate($itemType, $itemSource, $date, $shareTime = null) {
|
||||||
$user = \OC_User::getUser();
|
$user = \OC_User::getUser();
|
||||||
|
$l = \OC::$server->getL10N('lib');
|
||||||
|
|
||||||
if ($date == '') {
|
if ($date == '') {
|
||||||
|
if (\OCP\Util::isDefaultExpireDateEnforced()) {
|
||||||
|
$warning = 'Cannot clear expiration date. Shares are required to have an expiration date.';
|
||||||
|
$warning_t = $l->t('Cannot clear expiration date. Shares are required to have an expiration date.');
|
||||||
|
\OCP\Util::writeLog('OCP\Share', $warning, \OCP\Util::WARN);
|
||||||
|
throw new \Exception($warning_t);
|
||||||
|
} else {
|
||||||
$date = null;
|
$date = null;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$date = self::validateExpireDate($date, $shareTime, $itemType, $itemSource);
|
$date = self::validateExpireDate($date, $shareTime, $itemType, $itemSource);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1051,6 +1051,41 @@ class Test_Share extends \Test\TestCase {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensure that we do not allow removing a an expiration date from a link share if this
|
||||||
|
* is enforced by the settings.
|
||||||
|
*/
|
||||||
|
public function testClearExpireDateWhileEnforced() {
|
||||||
|
OC_User::setUserId($this->user1);
|
||||||
|
|
||||||
|
\OC_Appconfig::setValue('core', 'shareapi_default_expire_date', 'yes');
|
||||||
|
\OC_Appconfig::setValue('core', 'shareapi_expire_after_n_days', '2');
|
||||||
|
\OC_Appconfig::setValue('core', 'shareapi_enforce_expire_date', 'yes');
|
||||||
|
|
||||||
|
$token = OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_LINK, null, \OCP\Constants::PERMISSION_READ);
|
||||||
|
$this->assertInternalType(
|
||||||
|
'string',
|
||||||
|
$token,
|
||||||
|
'Failed asserting that user 1 successfully shared text.txt as link with token.'
|
||||||
|
);
|
||||||
|
|
||||||
|
$setExpireDateFailed = false;
|
||||||
|
try {
|
||||||
|
$this->assertTrue(
|
||||||
|
OCP\Share::setExpirationDate('test', 'test.txt', '', ''),
|
||||||
|
'Failed asserting that user 1 successfully set an expiration date for the test.txt share.'
|
||||||
|
);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
$setExpireDateFailed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->assertTrue($setExpireDateFailed);
|
||||||
|
|
||||||
|
\OC_Appconfig::deleteKey('core', 'shareapi_default_expire_date');
|
||||||
|
\OC_Appconfig::deleteKey('core', 'shareapi_expire_after_n_days');
|
||||||
|
\OC_Appconfig::deleteKey('core', 'shareapi_enforce_expire_date');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DummyShareClass extends \OC\Share\Share {
|
class DummyShareClass extends \OC\Share\Share {
|
||||||
|
|
Loading…
Reference in New Issue