mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-30 21:21:09 -04:00 
			
		
		
		
	v5.0.0 update
This commit is contained in:
		
							
								
								
									
										83
									
								
								app/Space/FilePermissionChecker.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								app/Space/FilePermissionChecker.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,83 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Crater\Space; | ||||
|  | ||||
| class FilePermissionChecker | ||||
| { | ||||
|     /** | ||||
|      * @var array | ||||
|      */ | ||||
|     protected $results = []; | ||||
|  | ||||
|     /** | ||||
|      * Set the result array permissions and errors. | ||||
|      * | ||||
|      * @return mixed | ||||
|      */ | ||||
|     public function __construct() | ||||
|     { | ||||
|         $this->results['permissions'] = []; | ||||
|  | ||||
|         $this->results['errors'] = null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Check for the folders permissions. | ||||
|      * | ||||
|      * @param array $folders | ||||
|      * @return array | ||||
|      */ | ||||
|     public function check(array $folders) | ||||
|     { | ||||
|         foreach ($folders as $folder => $permission) { | ||||
|             if (! ($this->getPermission($folder) >= $permission)) { | ||||
|                 $this->addFileAndSetErrors($folder, $permission, false); | ||||
|             } else { | ||||
|                 $this->addFile($folder, $permission, true); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $this->results; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get a folder permission. | ||||
|      * | ||||
|      * @param $folder | ||||
|      * @return string | ||||
|      */ | ||||
|     private function getPermission($folder) | ||||
|     { | ||||
|         return substr(sprintf('%o', fileperms(base_path($folder))), -4); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Add the file to the list of results. | ||||
|      * | ||||
|      * @param $folder | ||||
|      * @param $permission | ||||
|      * @param $isSet | ||||
|      */ | ||||
|     private function addFile($folder, $permission, $isSet) | ||||
|     { | ||||
|         array_push($this->results['permissions'], [ | ||||
|             'folder' => $folder, | ||||
|             'permission' => $permission, | ||||
|             'isSet' => $isSet, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Add the file and set the errors. | ||||
|      * | ||||
|      * @param $folder | ||||
|      * @param $permission | ||||
|      * @param $isSet | ||||
|      */ | ||||
|     private function addFileAndSetErrors($folder, $permission, $isSet) | ||||
|     { | ||||
|         $this->addFile($folder, $permission, $isSet); | ||||
|  | ||||
|         $this->results['errors'] = true; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user