Improve LogoutAction
authorTim Düsterhus <duesterhus@woltlab.com>
Tue, 8 Jan 2013 17:07:22 +0000 (18:07 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Tue, 8 Jan 2013 17:07:22 +0000 (18:07 +0100)
wcfsetup/install/files/lib/acp/action/LogoutAction.class.php

index ed8d5646b56e6b4985b953b260da749ab6b28a29..9053d45ca6dc8acf2dd29d9a0252ca3fa8b46ebb 100755 (executable)
@@ -1,8 +1,7 @@
 <?php
 namespace wcf\acp\action;
 use wcf\action\AbstractSecureAction;
-use wcf\system\application\ApplicationHandler;
-use wcf\system\exception\IllegalLinkException;
+use wcf\system\request\LinkHandler;
 use wcf\system\WCF;
 use wcf\util\HeaderUtil;
 
@@ -10,24 +9,24 @@ use wcf\util\HeaderUtil;
  * Does the user logout in the admin control panel.
  * 
  * @author     Marcel Werk
- * @copyright  2001-2012 WoltLab GmbH
+ * @copyright  2001-2013 WoltLab GmbH
  * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
  * @package    com.woltlab.wcf
  * @subpackage acp.action
  * @category   Community Framework
  */
 class LogoutAction extends AbstractSecureAction {
+       /**
+        * @see wcf\action\AbstractAction::$loginRequired
+        */
+       public $loginRequired = true;
+       
        /**
         * @see wcf\action\IAction::execute()
         */
        public function execute() {
                parent::execute();
-               
-               // validate
-               if (!WCF::getUser()->userID) {
-                       throw new IllegalLinkException();
-               }
-               
+
                // do logout
                WCF::getSession()->delete();
                
@@ -35,9 +34,7 @@ class LogoutAction extends AbstractSecureAction {
                
                // forward to index page
                // warning: if doLogout() writes a cookie this is buggy in MS IIS
-               $application = ApplicationHandler::getInstance()->getActiveApplication();
-               $path = $application->getPageURL() . 'acp/index.php' . SID_ARG_1ST;
-               HeaderUtil::redirect($path);
+               HeaderUtil::redirect(LinkHandler::getInstance()->getLink('Login'));
                exit;
        }
 }