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

57 lines
No EOL
1.7 KiB
PHP
Executable file

<?php
/*
* Copyright (c) Codiad & Andr3as, distributed
* as-is and without warranty under the MIT License.
* See [root]/license.md for more information. This information must remain intact.
*/
error_reporting(0);
require_once('class.util.php');
require_once('../../common.php');
checkSession();
switch($_GET['action']) {
case 'changePermission':
if (isset($_GET['path']) && isset($_GET['mode'])) {
$path = util::getWorkspacePath($_GET['path']);
$mode = $_GET['mode'];
if ($mode[0] != '0') {
$mode = '0'.$mode;
}
$mode = intval($mode, 8);
if (chmod_R($path, $mode)) {
echo '{"status":"success","message":"Permissions Changed"}';
} else {
echo '{"status":"error","message":"Failed To Change Permissions"}';
}
} else {
echo '{"status":"error","message":"Missing Parameter!"}';
}
break;
default:
echo '{"status":"error","message":"No Type"}';
break;
}
function chmod_R($path, $mode) {
if (is_dir($path)) {
if (chmod($path, $mode) == false) {
return false;
}
$files = scandir($path);
foreach ($files as $file) {
if($file != '.' && $file != '..') {
$fullpath = $path.'/'.$file;
if(!chmod_R($fullpath, $mode)) {
return false;
}
}
}
return true;
} else {
return chmod($path, $mode);
}
}
?>