Merge pull request #2675 from HB9HIL/check-folder-permissions
Debug View - Check File Permissions recursive
这个提交包含在:
当前提交
838051452c
共有 1 个文件被更改,包括 45 次插入 和 53 次删除
|
|
@ -15,48 +15,16 @@ class Debug extends CI_Controller {
|
||||||
$this->load->helper('file');
|
$this->load->helper('file');
|
||||||
|
|
||||||
// Test writing to backup folder
|
// Test writing to backup folder
|
||||||
if ( ! write_file('backup/myfile.txt', "dummydata"))
|
$backup_folder = $this->is_really_writable('backup');
|
||||||
{
|
$data['backup_folder'] = $backup_folder;
|
||||||
$data['backup_folder'] = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(unlink(realpath('backup/myfile.txt'))) {
|
|
||||||
$data['backup_folder'] = true;
|
|
||||||
} else {
|
|
||||||
$data['backup_folder'] = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test writing to updates folder
|
// Test writing to updates folder
|
||||||
if ( ! write_file('updates/myfile.txt', "dummydata"))
|
$updates_folder = $this->is_really_writable('updates');
|
||||||
{
|
$data['updates_folder'] = $updates_folder;
|
||||||
$data['updates_folder'] = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(unlink(realpath('updates/myfile.txt'))) {
|
|
||||||
$data['updates_folder'] = true;
|
|
||||||
} else {
|
|
||||||
$data['updates_folder'] = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test writing to uploads folder
|
// Test writing to uploads folder
|
||||||
if ( ! write_file('uploads/myfile.txt', "dummydata"))
|
$uploads_folder = $this->is_really_writable('uploads');
|
||||||
{
|
$data['uploads_folder'] = $uploads_folder;
|
||||||
$data['uploads_folder'] = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(unlink(realpath('uploads/myfile.txt'))) {
|
|
||||||
$data['uploads_folder'] = true;
|
|
||||||
} else {
|
|
||||||
$data['uploads_folder'] = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$data['page_title'] = "Debug";
|
$data['page_title'] = "Debug";
|
||||||
|
|
||||||
|
|
@ -65,5 +33,29 @@ class Debug extends CI_Controller {
|
||||||
$this->load->view('interface_assets/footer');
|
$this->load->view('interface_assets/footer');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function is_really_writable($folder)
|
||||||
|
{
|
||||||
|
// Get the absolute path to the folder
|
||||||
|
$path = FCPATH . $folder;
|
||||||
|
|
||||||
|
// Check if the folder exists
|
||||||
|
if (!file_exists($path)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the folder is writable
|
||||||
|
if (is_writable($path)) {
|
||||||
|
// Check if the subdirectories are writable (recursive check)
|
||||||
|
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
|
||||||
|
foreach ($iterator as $item) {
|
||||||
|
if (!is_writable($item->getPathname())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
正在加载…
在新工单中引用