codiad/plugins/Codiad-Duplicate-master/controller.php

54 lines
No EOL
1.6 KiB
PHP
Executable file

<?php
/*
* Copyright (c) Codiad & Andr3as, distributed
* as-is and without warranty under the MIT License.
* See http://opensource.org/licenses/MIT for more information.
* This information must remain intact.
*/
error_reporting(0);
require_once('../../common.php');
checkSession();
switch($_GET['action']) {
case 'duplicate':
if (isset($_GET['path']) && isset($_GET['name'])) {
$source = getWorkspacePath($_GET['path']);
$des = getWorkspacePath(dirname($_GET['path'])."/".$_GET['name']);
if (copy($source, $des)) {
echo '{"status":"success","message":"File duplicated"}';
} else {
echo '{"status":"error","message":"Failed to duplicate"}';
}
} else {
echo '{"status":"error","message":"Missing Parameter"}';
}
break;
default:
echo '{"status":"error","message":"No Type"}';
break;
}
function getWorkspacePath($path) {
//Security check
if (!Common::checkPath($path)) {
die('{"status":"error","message":"Invalid path"}');
}
if (strpos($path, "/") === 0) {
//Unix absolute path
return $path;
}
if (strpos($path, ":/") !== false) {
//Windows absolute path
return $path;
}
if (strpos($path, ":\\") !== false) {
//Windows absolute path
return $path;
}
return WORKSPACE . "/" . $path;
}
?>