*/ /** * This controller will handle an user logging out of Gallery * * @package GalleryCore * @subpackage UserInterface * */ class LogoutController extends GalleryController { /** * @see GalleryController::isAllowedInMaintenance() */ function isAllowedInMaintenance() { return true; } /** * @see GalleryController::handleRequest() */ function handleRequest() { global $gallery; $event = GalleryCoreApi::newEvent('Gallery::Logout'); $event->setEntity($gallery->getActiveUser()); list ($ret) = GalleryCoreApi::postEvent($event); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null); } $session =& $gallery->getSession(); $ret = $session->reset(); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null); } list ($ret, $anonymousUserId) = GalleryCoreApi::getPluginParameter('module', 'core', 'id.anonymousUser'); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null); } list ($ret, $guestUser) = GalleryCoreApi::loadEntitiesById($anonymousUserId); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null); } $gallery->setActiveUser($guestUser); /* Force return to core.ShowItem, as we don't know if the guest user * has necessary permissions for the return page */ $results['redirect']['view'] = 'core.ShowItem'; $results['status'] = array(); $results['error'] = array(); return array(null, $results); } } ?>