Properly expose read only public shares as read only
parent
87e311b996
commit
e7b58ed2bd
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
namespace OCA\Files_Sharing;
|
||||
|
||||
use OC\Files\Cache\Cache;
|
||||
|
||||
class ReadOnlyCache extends Cache {
|
||||
public function get($path) {
|
||||
$data = parent::get($path);
|
||||
$data['permissions'] &= (\OCP\PERMISSION_READ | \OCP\PERMISSION_SHARE);
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function getFolderContents($path) {
|
||||
$content = parent::getFolderContents($path);
|
||||
foreach ($content as &$data) {
|
||||
$data['permissions'] &= (\OCP\PERMISSION_READ | \OCP\PERMISSION_SHARE);
|
||||
}
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
namespace OCA\Files_Sharing;
|
||||
|
||||
use OC\Files\Storage\Wrapper\Wrapper;
|
||||
|
||||
class ReadOnlyWrapper extends Wrapper {
|
||||
public function isUpdatable($path) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function isCreatable($path) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function isDeletable($path) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getPermissions($path) {
|
||||
return $this->storage->getPermissions($path) & (\OCP\PERMISSION_READ | \OCP\PERMISSION_SHARE);
|
||||
}
|
||||
|
||||
public function rename($path1, $path2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function touch($path, $mtime = null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function mkdir($path) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function rmdir($path) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function unlink($path) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getCache($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
return new ReadOnlyCache($storage);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue