|
|
|
|
@ -4,6 +4,16 @@ session_write_close();
|
|
|
|
|
|
|
|
|
|
$force = (isset($_GET['force']) and ($_GET['force'] === 'true'));
|
|
|
|
|
$dir = isset($_GET['dir']) ? $_GET['dir'] : '';
|
|
|
|
|
if (isset($_GET['users'])) {
|
|
|
|
|
OC_JSON::checkAdminUser();
|
|
|
|
|
if ($_GET['users'] === 'all') {
|
|
|
|
|
$users = OC_User::getUsers();
|
|
|
|
|
} else {
|
|
|
|
|
$users = json_decode($_GET['users']);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$users = array(OC_User::getUser());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$eventSource = new OC_EventSource();
|
|
|
|
|
ScanListener::$eventSource = $eventSource;
|
|
|
|
|
@ -12,21 +22,27 @@ ScanListener::$view = \OC\Files\Filesystem::getView();
|
|
|
|
|
OC_Hook::connect('\OC\Files\Cache\Scanner', 'scan_folder', 'ScanListener', 'folder');
|
|
|
|
|
OC_Hook::connect('\OC\Files\Cache\Scanner', 'scan_file', 'ScanListener', 'file');
|
|
|
|
|
|
|
|
|
|
$absolutePath = \OC\Files\Filesystem::getView()->getAbsolutePath($dir);
|
|
|
|
|
foreach ($users as $user) {
|
|
|
|
|
$eventSource->send('user', $user);
|
|
|
|
|
OC_Util::tearDownFS();
|
|
|
|
|
OC_Util::setupFS($user);
|
|
|
|
|
|
|
|
|
|
$absolutePath = \OC\Files\Filesystem::getView()->getAbsolutePath($dir);
|
|
|
|
|
|
|
|
|
|
$mountPoints = \OC\Files\Filesystem::getMountPoints($absolutePath);
|
|
|
|
|
$mountPoints[] = \OC\Files\Filesystem::getMountPoint($absolutePath);
|
|
|
|
|
$mountPoints = array_reverse($mountPoints); //start with the mount point of $dir
|
|
|
|
|
$mountPoints = \OC\Files\Filesystem::getMountPoints($absolutePath);
|
|
|
|
|
$mountPoints[] = \OC\Files\Filesystem::getMountPoint($absolutePath);
|
|
|
|
|
$mountPoints = array_reverse($mountPoints); //start with the mount point of $dir
|
|
|
|
|
|
|
|
|
|
foreach ($mountPoints as $mountPoint) {
|
|
|
|
|
$storage = \OC\Files\Filesystem::getStorage($mountPoint);
|
|
|
|
|
if ($storage) {
|
|
|
|
|
ScanListener::$mountPoints[$storage->getId()] = $mountPoint;
|
|
|
|
|
$scanner = $storage->getScanner();
|
|
|
|
|
if ($force) {
|
|
|
|
|
$scanner->scan('', \OC\Files\Cache\Scanner::SCAN_RECURSIVE, \OC\Files\Cache\Scanner::REUSE_ETAG);
|
|
|
|
|
} else {
|
|
|
|
|
$scanner->backgroundScan();
|
|
|
|
|
foreach ($mountPoints as $mountPoint) {
|
|
|
|
|
$storage = \OC\Files\Filesystem::getStorage($mountPoint);
|
|
|
|
|
if ($storage) {
|
|
|
|
|
ScanListener::$mountPoints[$storage->getId()] = $mountPoint;
|
|
|
|
|
$scanner = $storage->getScanner();
|
|
|
|
|
if ($force) {
|
|
|
|
|
$scanner->scan('', \OC\Files\Cache\Scanner::SCAN_RECURSIVE, \OC\Files\Cache\Scanner::REUSE_ETAG);
|
|
|
|
|
} else {
|
|
|
|
|
$scanner->backgroundScan();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|