user; } /** * Set the user * * @param User $user * * @return $this */ public function setUser($user) { $this->user = $user; return $this; } /** * List all dashboard configuration files that match the given user * * @param User $user * * @return string[] */ public static function listConfigFilesForUser(User $user) { $files = array(); $dashboards = static::resolvePath('dashboards'); if ($handle = @opendir($dashboards)) { while (false !== ($entry = readdir($handle))) { if ($entry[0] === '.' || ! is_dir($dashboards . '/' . $entry)) { continue; } if (strtolower($entry) === strtolower($user->getUsername())) { $files[] = $dashboards . '/' . $entry . '/dashboard.ini'; } } closedir($handle); } return $files; } /** * {@inheritdoc} */ public function saveIni($filePath = null, $fileMode = 0660) { parent::saveIni($filePath, $fileMode); if ($filePath === null) { $filePath = $this->configFile; } foreach (static::listConfigFilesForUser($this->user) as $file) { if ($file !== $filePath) { @unlink($file); } } } }