Example #1
0
 /**
  * Run the permission check and return any errors
  *
  * @return void
  */
 public function run()
 {
     $this->loader->parse();
     $files = $this->filesystem->getFiles();
     // Now we check all the files against the config
     while ($files->valid()) {
         /* @var SplFileInfo $file */
         $file = $files->current();
         // Skip symlinks as they are always 0777
         if ($file->isLink()) {
             $files->next();
             continue;
         }
         $filename = $this->getRelativeFilename($file);
         // Skip excluded files, of course.
         if ($this->isExcluded($filename)) {
             $files->next();
             continue;
         }
         $fileShouldBeExecutable = $this->shouldBeExecutable($filename);
         if (!$fileShouldBeExecutable && $file->isExecutable()) {
             $this->messageBag->addMessage($file->getPathname(), 'minx');
             $files->next();
             continue;
         }
         if ($fileShouldBeExecutable && !$file->isExecutable()) {
             $this->messageBag->addMessage($file->getPathname(), 'plusx');
             $files->next();
             continue;
         }
         $files->next();
     }
 }