/**
  * cleanup old sessions files => needed only for filesystems based sessions
  */
 public function cleanupSessions()
 {
     $config = Tinebase_Core::getConfig();
     $backendType = $config->session && $config->session->backend ? ucfirst($config->session->backend) : 'File';
     if (strtolower($backendType) == 'file') {
         $maxLifeTime = $config->session && $config->session->lifetime ? $config->session->lifetime : 86400;
         $path = Tinebase_Session_Abstract::getSessionDir();
         $unlinked = 0;
         try {
             $dir = new DirectoryIterator($path);
         } catch (Exception $e) {
             if (Tinebase_Core::isLogLevel(Zend_Log::NOTICE)) {
                 Tinebase_Core::getLogger()->notice(__METHOD__ . '::' . __LINE__ . " Could not cleanup sessions");
             }
             Tinebase_Exception::log($e);
             return;
         }
         foreach ($dir as $fileinfo) {
             if (!$fileinfo->isDot() && !$fileinfo->isLink() && $fileinfo->isFile()) {
                 if ($fileinfo->getMTime() < Tinebase_DateTime::now()->getTimestamp() - $maxLifeTime) {
                     unlink($fileinfo->getPathname());
                     $unlinked++;
                 }
             }
         }
         if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) {
             Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . " Deleted {$unlinked} expired session files");
         }
         Tinebase_Config::getInstance()->set(Tinebase_Config::LAST_SESSIONS_CLEANUP_RUN, Tinebase_DateTime::now()->toString());
     }
 }