Signed-off-by: Julius Härtl <jus@bitgrid.net>tags/v19.0.0beta6
@@ -492,15 +492,18 @@ class ShareAPIController extends OCSController { | |||
throw new OCSNotFoundException($this->l->t('Public upload is only possible for publicly shared folders')); | |||
} | |||
$share->setPermissions( | |||
Constants::PERMISSION_READ | | |||
$permissions = Constants::PERMISSION_READ | | |||
Constants::PERMISSION_CREATE | | |||
Constants::PERMISSION_UPDATE | | |||
Constants::PERMISSION_DELETE | |||
); | |||
Constants::PERMISSION_DELETE; | |||
} else { | |||
$share->setPermissions(Constants::PERMISSION_READ); | |||
$permissions = Constants::PERMISSION_READ; | |||
} | |||
// TODO: It might make sense to have a dedicated setting to allow/deny converting link shares into federated ones | |||
if ($this->shareManager->outgoingServer2ServerSharesAllowed()) { | |||
$permissions |= Constants::PERMISSION_SHARE; | |||
} | |||
$share->setPermissions($permissions); | |||
// Set password | |||
if ($password !== '') { |
@@ -203,7 +203,9 @@ class ApiTest extends TestCase { | |||
$ocs->cleanup(); | |||
$data = $result->getData(); | |||
$this->assertEquals(1, $data['permissions']); | |||
$this->assertEquals(\OCP\Constants::PERMISSION_READ | | |||
\OCP\Constants::PERMISSION_SHARE, | |||
$data['permissions']); | |||
$this->assertEmpty($data['expiration']); | |||
$this->assertTrue(is_string($data['token'])); | |||
@@ -228,7 +230,8 @@ class ApiTest extends TestCase { | |||
\OCP\Constants::PERMISSION_READ | | |||
\OCP\Constants::PERMISSION_CREATE | | |||
\OCP\Constants::PERMISSION_UPDATE | | |||
\OCP\Constants::PERMISSION_DELETE, | |||
\OCP\Constants::PERMISSION_DELETE | | |||
\OCP\Constants::PERMISSION_SHARE, | |||
$data['permissions'] | |||
); | |||
$this->assertEmpty($data['expiration']); |
@@ -615,11 +615,6 @@ class Manager implements IManager { | |||
throw new \Exception('Link sharing is not allowed'); | |||
} | |||
// Link shares by definition can't have share permissions | |||
if ($share->getPermissions() & \OCP\Constants::PERMISSION_SHARE) { | |||
throw new \InvalidArgumentException('Link shares can’t have reshare permissions'); | |||
} | |||
// Check if public upload is allowed | |||
if (!$this->shareApiLinkAllowPublicUpload() && | |||
($share->getPermissions() & (\OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE))) { |