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; | ||||||
|  |     } | ||||||
| } | } | ||||||
		正在加载…
	
		在新工单中引用