mirror of
https://github.com/myvesta/vesta.git
synced 2024-12-03 19:00:43 -08:00
140 lines
4.0 KiB
PHP
140 lines
4.0 KiB
PHP
<?php
|
|
// Init
|
|
//error_reporting(NULL);
|
|
|
|
// Preventing CSRF
|
|
// prevent_post_csrf(true);
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
|
include($_SERVER['DOCUMENT_ROOT']."/file_manager/fm_core.php");
|
|
|
|
// Check token
|
|
if ((!isset($_REQUEST['token'])) || ($_SESSION['token'] != $_REQUEST['token'])) {
|
|
die("Wrong token or missing token");
|
|
}
|
|
|
|
if (empty($panel)) {
|
|
$command = VESTA_CMD."v-list-user '".$user."' 'json'";
|
|
exec ($command, $output, $return_var);
|
|
if ( $return_var > 0 ) {
|
|
header("Location: /error/");
|
|
exit;
|
|
}
|
|
$panel = json_decode(implode('', $output), true);
|
|
}
|
|
|
|
$fm = new FileManager($user);
|
|
$fm->setRootDir($panel[$user]['HOME']);
|
|
|
|
$_REQUEST['action'] = empty($_REQUEST['action']) ? '' : $_REQUEST['action'];
|
|
|
|
switch ($_REQUEST['action']) {
|
|
case 'cd':
|
|
$dir = $_REQUEST['dir'];
|
|
print json_encode($fm->ls($dir));
|
|
break;
|
|
|
|
case 'check_file_type':
|
|
$dir = $_REQUEST['dir'];
|
|
print json_encode($fm->checkFileType($dir));
|
|
break;
|
|
|
|
case 'rename_file':
|
|
$dir = $_REQUEST['dir'];
|
|
$item = $dir . '/' . $_REQUEST['item'];
|
|
$target_name = $dir . '/' . $_REQUEST['target_name'];
|
|
print json_encode($fm->renameFile($item, $target_name));
|
|
break;
|
|
|
|
case 'rename_directory':
|
|
$dir = $_REQUEST['dir'];
|
|
$item = $dir.$_REQUEST['item'];
|
|
$target_name = $dir.$_REQUEST['target_name'];
|
|
|
|
print json_encode($fm->renameDirectory($item, $target_name));
|
|
break;
|
|
|
|
case 'move_file':
|
|
$item = $_REQUEST['item'];
|
|
$target_name = $_REQUEST['target_name'];
|
|
print json_encode($fm->renameFile($item, $target_name));
|
|
break;
|
|
|
|
case 'move_directory':
|
|
$item = $_REQUEST['item'];
|
|
$target_name = $_REQUEST['target_name'];
|
|
print json_encode($fm->renameDirectory($item, $target_name));
|
|
break;
|
|
|
|
case 'delete_files':
|
|
$dir = $_REQUEST['dir'];
|
|
$item = $_REQUEST['item'];
|
|
print json_encode($fm->deleteItem($dir, $item));
|
|
break;
|
|
|
|
case 'create_file':
|
|
$dir = $_REQUEST['dir'];
|
|
$filename = $_REQUEST['filename'];
|
|
print json_encode($fm->createFile($dir, $filename));
|
|
break;
|
|
|
|
case 'create_dir':
|
|
$dir = $_REQUEST['dir'];
|
|
$dirname = $_REQUEST['dirname'];
|
|
print json_encode($fm->createDir($dir, $dirname));
|
|
break;
|
|
|
|
case 'open_file':
|
|
$dir = $_REQUEST['dir'];
|
|
print json_encode($fm->open_file($dir));
|
|
break;
|
|
|
|
case 'copy_file':
|
|
$dir = $_REQUEST['dir'];
|
|
$target_dir = $_REQUEST['dir_target'];
|
|
$filename = $_REQUEST['filename'];
|
|
$item = $_REQUEST['item'];
|
|
print json_encode($fm->copyFile($item, $dir, $target_dir, $filename));
|
|
break;
|
|
|
|
case 'copy_directory':
|
|
$dir = $_REQUEST['dir'];
|
|
$target_dir = $_REQUEST['dir_target'];
|
|
$filename = $_REQUEST['filename'];
|
|
$item = $_REQUEST['item'];
|
|
print json_encode($fm->copyDirectory($item, $dir, $target_dir, $filename));
|
|
break;
|
|
|
|
case 'unpack_item':
|
|
$dir = $_REQUEST['dir'];
|
|
$target_dir = $_REQUEST['dir_target'];
|
|
$filename = $_REQUEST['filename'];
|
|
$item = $_REQUEST['item'];
|
|
print json_encode($fm->unpackItem($item, $dir, $target_dir, $filename));
|
|
break;
|
|
|
|
case 'pack_item':
|
|
$items = $_REQUEST['items'];
|
|
$dst_item = $_REQUEST['dst_item'];
|
|
print json_encode($fm->packItem($items, $dst_item));
|
|
break;
|
|
|
|
case 'backup':
|
|
$path = $_REQUEST['path'];
|
|
print json_encode($fm->backupItem($path));
|
|
break;
|
|
|
|
case 'chmod_item':
|
|
$dir = $_REQUEST['dir'];
|
|
$item = $_REQUEST['item'];
|
|
$permissions = $_REQUEST['permissions'];
|
|
print json_encode($fm->chmodItem($dir, $item, $permissions));
|
|
break;
|
|
|
|
default:
|
|
//print json_encode($fm->init());
|
|
break;
|
|
}
|