allow scanning files for multiple users
This commit is contained in:
parent
0b74e71de8
commit
85585ede02
|
@ -4,6 +4,16 @@ session_write_close();
|
||||||
|
|
||||||
$force = (isset($_GET['force']) and ($_GET['force'] === 'true'));
|
$force = (isset($_GET['force']) and ($_GET['force'] === 'true'));
|
||||||
$dir = isset($_GET['dir']) ? $_GET['dir'] : '';
|
$dir = isset($_GET['dir']) ? $_GET['dir'] : '';
|
||||||
|
if (isset($_GET['users'])) {
|
||||||
|
OC_JSON::checkAdminUser();
|
||||||
|
if ($_GET['users'] === 'all') {
|
||||||
|
$users = OC_User::getUsers();
|
||||||
|
} else {
|
||||||
|
$users = explode(',', $_GET['users']);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$users = array(OC_User::getUser());
|
||||||
|
}
|
||||||
|
|
||||||
$eventSource = new OC_EventSource();
|
$eventSource = new OC_EventSource();
|
||||||
ScanListener::$eventSource = $eventSource;
|
ScanListener::$eventSource = $eventSource;
|
||||||
|
@ -12,6 +22,11 @@ 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_folder', 'ScanListener', 'folder');
|
||||||
OC_Hook::connect('\OC\Files\Cache\Scanner', 'scan_file', 'ScanListener', 'file');
|
OC_Hook::connect('\OC\Files\Cache\Scanner', 'scan_file', 'ScanListener', 'file');
|
||||||
|
|
||||||
|
foreach ($users as $user) {
|
||||||
|
$eventSource->send('user', $user);
|
||||||
|
OC_Util::tearDownFS();
|
||||||
|
OC_Util::setupFS($user);
|
||||||
|
|
||||||
$absolutePath = \OC\Files\Filesystem::getView()->getAbsolutePath($dir);
|
$absolutePath = \OC\Files\Filesystem::getView()->getAbsolutePath($dir);
|
||||||
|
|
||||||
$mountPoints = \OC\Files\Filesystem::getMountPoints($absolutePath);
|
$mountPoints = \OC\Files\Filesystem::getMountPoints($absolutePath);
|
||||||
|
@ -30,6 +45,7 @@ foreach ($mountPoints as $mountPoint) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$eventSource->send('done', ScanListener::$fileCount);
|
$eventSource->send('done', ScanListener::$fileCount);
|
||||||
$eventSource->close();
|
$eventSource->close();
|
||||||
|
|
|
@ -695,7 +695,7 @@ $(document).ready(function() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function scanFiles(force, dir){
|
function scanFiles(force, dir, users){
|
||||||
if (!OC.currentUser) {
|
if (!OC.currentUser) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -705,7 +705,18 @@ function scanFiles(force, dir){
|
||||||
}
|
}
|
||||||
force = !!force; //cast to bool
|
force = !!force; //cast to bool
|
||||||
scanFiles.scanning = true;
|
scanFiles.scanning = true;
|
||||||
var scannerEventSource = new OC.EventSource(OC.filePath('files','ajax','scan.php'),{force:force,dir:dir});
|
var scannerEventSource;
|
||||||
|
if (users) {
|
||||||
|
var usersString;
|
||||||
|
if (users === 'all') {
|
||||||
|
usersString = users;
|
||||||
|
} else {
|
||||||
|
usersString = users.join(',');
|
||||||
|
}
|
||||||
|
scannerEventSource = new OC.EventSource(OC.filePath('files','ajax','scan.php'),{force: force,dir: dir, users: usersString});
|
||||||
|
} else {
|
||||||
|
scannerEventSource = new OC.EventSource(OC.filePath('files','ajax','scan.php'),{force: force,dir: dir});
|
||||||
|
}
|
||||||
scanFiles.cancel = scannerEventSource.close.bind(scannerEventSource);
|
scanFiles.cancel = scannerEventSource.close.bind(scannerEventSource);
|
||||||
scannerEventSource.listen('count',function(count){
|
scannerEventSource.listen('count',function(count){
|
||||||
console.log(count + ' files scanned')
|
console.log(count + ' files scanned')
|
||||||
|
@ -717,6 +728,9 @@ function scanFiles(force, dir){
|
||||||
scanFiles.scanning=false;
|
scanFiles.scanning=false;
|
||||||
console.log('done after ' + count + ' files');
|
console.log('done after ' + count + ' files');
|
||||||
});
|
});
|
||||||
|
scannerEventSource.listen('user',function(user){
|
||||||
|
console.log('scanning files for ' + user);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
scanFiles.scanning=false;
|
scanFiles.scanning=false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue