/** * 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(); } } }