Beispiel #1
0
 /**
  * Helper function for doFlush().
  *
  * @param FilesystemInterface $filesystem
  * @param array               $result
  */
 private function flushFilesystemCache(FilesystemInterface $filesystem, &$result)
 {
     $files = $filesystem->find()->files()->notName('index.html')->ignoreDotFiles()->ignoreVCS();
     /** @var HandlerInterface $file */
     foreach ($files as $file) {
         try {
             $file->delete();
             $result['successfiles']++;
         } catch (IOException $e) {
             $result['failedfiles']++;
             $result['failed'][] = $file->getPath();
         }
     }
     $dirs = $filesystem->find()->directories()->depth('< 1');
     /** @var HandlerInterface $dir */
     foreach ($dirs as $dir) {
         try {
             $dir->delete();
             $result['successfolders']++;
         } catch (IOException $e) {
             $result['failedfolders']++;
         }
     }
 }
 /**
  * Delete active session files for a user.
  *
  * @param Entity\Users $user
  */
 private function deleteSessions(Entity\Users $user)
 {
     $savePath = $this->sessionStorage->getOptions()->get('save_path');
     try {
         $sessionFiles = $this->filesystem->find()->files()->in($savePath);
     } catch (FileNotFoundException $e) {
         return;
     }
     /** @var \Bolt\Filesystem\Handler\File $sessionFile */
     foreach ($sessionFiles as $sessionFile) {
         $data = unserialize($sessionFile->read());
         if (!isset($data['_sf2_attributes']['authentication'])) {
             continue;
         }
         if (!$data['_sf2_attributes']['authentication'] instanceof \Bolt\AccessControl\Token\Token) {
             continue;
         }
         /** @var \Bolt\AccessControl\Token\Token $token */
         $token = $data['_sf2_attributes']['authentication'];
         if ($token->getUser()->getId() === $user->getId()) {
             $sessionFile->delete();
         }
     }
 }