Added to public interface
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
7dcc98eb20
commit
88299ec27c
|
@ -78,7 +78,3 @@ Options -Indexes
|
||||||
<IfModule pagespeed_module>
|
<IfModule pagespeed_module>
|
||||||
ModPagespeed Off
|
ModPagespeed Off
|
||||||
</IfModule>
|
</IfModule>
|
||||||
#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####
|
|
||||||
|
|
||||||
ErrorDocument 403 /core/templates/403.php
|
|
||||||
ErrorDocument 404 /core/templates/404.php
|
|
||||||
|
|
|
@ -1196,17 +1196,21 @@ class Manager implements IManager {
|
||||||
* remote => bool
|
* remote => bool
|
||||||
* ]
|
* ]
|
||||||
*
|
*
|
||||||
* This is required for encryption/activities
|
* This is required for encryption/activity
|
||||||
*
|
*
|
||||||
* @param \OCP\Files\Node $path
|
* @param \OCP\Files\Node $path
|
||||||
|
* @param bool $recursive Should we check all parent folders as well
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getAccessList(\OCP\Files\Node $path) {
|
public function getAccessList(\OCP\Files\Node $path, $recursive = true) {
|
||||||
$owner = $path->getOwner()->getUID();
|
$owner = $path->getOwner()->getUID();
|
||||||
|
|
||||||
//Get node for the owner
|
//Get node for the owner
|
||||||
$userFolder = $this->rootFolder->getUserFolder($owner);
|
$userFolder = $this->rootFolder->getUserFolder($owner);
|
||||||
|
|
||||||
|
if (!$userFolder->isSubNode($path)) {
|
||||||
$path = $userFolder->getById($path->getId())[0];
|
$path = $userFolder->getById($path->getId())[0];
|
||||||
|
}
|
||||||
|
|
||||||
$providers = $this->factory->getAllProviders();
|
$providers = $this->factory->getAllProviders();
|
||||||
|
|
||||||
|
@ -1214,10 +1218,13 @@ class Manager implements IManager {
|
||||||
$shares = [];
|
$shares = [];
|
||||||
|
|
||||||
// Collect all the shares
|
// Collect all the shares
|
||||||
while ($path !== $userFolder) {
|
while ($path->getPath() !== $userFolder->getPath()) {
|
||||||
foreach ($providers as $provider) {
|
foreach ($providers as $provider) {
|
||||||
$shares = array_merge($shares, $provider->getSharesByPath($path));
|
$shares = array_merge($shares, $provider->getSharesByPath($path));
|
||||||
}
|
}
|
||||||
|
if (!$recursive) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
$path = $path->getParent();
|
$path = $path->getParent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -191,6 +191,36 @@ interface IManager {
|
||||||
*/
|
*/
|
||||||
public function userDeletedFromGroup($uid, $gid);
|
public function userDeletedFromGroup($uid, $gid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get access list to a path. This means
|
||||||
|
* all the users that can access a given path.
|
||||||
|
*
|
||||||
|
* Consider:
|
||||||
|
* -root
|
||||||
|
* |-folder1
|
||||||
|
* |-folder2
|
||||||
|
* |-fileA
|
||||||
|
*
|
||||||
|
* fileA is shared with user1
|
||||||
|
* folder2 is shared with group2 (user4 is a member of group2)
|
||||||
|
* folder1 is shared with user2
|
||||||
|
*
|
||||||
|
* Then the access list will to '/folder1/folder2/fileA' is:
|
||||||
|
* [
|
||||||
|
* users => ['user1', 'user2', 'user4'],
|
||||||
|
* public => bool
|
||||||
|
* remote => bool
|
||||||
|
* ]
|
||||||
|
*
|
||||||
|
* This is required for encryption/activity
|
||||||
|
*
|
||||||
|
* @param \OCP\Files\Node $path
|
||||||
|
* @param bool $recursive Should we check all parent folders as well
|
||||||
|
* @return array
|
||||||
|
* @since 9.2.0
|
||||||
|
*/
|
||||||
|
public function getAccessList(\OCP\Files\Node $path, $recursive = true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiates a new share object. This is to be passed to
|
* Instantiates a new share object. This is to be passed to
|
||||||
* createShare.
|
* createShare.
|
||||||
|
|
Loading…
Reference in New Issue