Fixed cookie domain handling
authorAlexander Ebert <ebert@woltlab.com>
Mon, 10 Jun 2013 18:21:23 +0000 (20:21 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Mon, 10 Jun 2013 18:21:23 +0000 (20:21 +0200)
wcfsetup/install/files/lib/data/application/ApplicationAction.class.php

index 9029d08b4685e7ca84966b9d9abac9b772c61dc7..1439613a0c79e7d9f478ccae51a604dfd4368644 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 namespace wcf\data\application;
+use wcf\util\StringUtil;
+
 use wcf\data\AbstractDatabaseObjectAction;
 use wcf\system\exception\PermissionDeniedException;
 use wcf\system\exception\UserInputException;
@@ -45,11 +47,16 @@ class ApplicationAction extends AbstractDatabaseObjectAction {
                // calculate cookie path
                $domains = array();
                foreach ($this->objects as $application) {
-                       if (!isset($domains[$application->domainName])) {
-                               $domains[$application->domainName] = array();
+                       $domainName = $application->domainName;
+                       if (StringUtil::endsWith($domainName, $application->cookieDomain)) {
+                               $domainName = $application->cookieDomain;
+                       }
+                       
+                       if (!isset($domains[$domainName])) {
+                               $domains[$domainName] = array();
                        }
                        
-                       $domains[$application->domainName][$application->packageID] = explode('/', FileUtil::removeLeadingSlash(FileUtil::removeTrailingSlash($application->domainPath)));
+                       $domains[$domainName][$application->packageID] = explode('/', FileUtil::removeLeadingSlash(FileUtil::removeTrailingSlash($application->domainPath)));
                }
                
                WCF::getDB()->beginTransaction();