/** * @author Marcel Werk * @copyright 2001-2011 WoltLab GmbH * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php> * @package com.woltlab.wcf * @category Community Framework */ // change the priority of the PIP's to "1" $sql = "UPDATE wcf".WCF_N."_package_installation_plugin SET priority = ?"; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array(1)); // reset sessions SessionHandler::resetSessions(); // update acp templates $sql = "UPDATE wcf".WCF_N."_acp_template SET packageID = ?"; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array(1)); // update language $sql = "UPDATE wcf".WCF_N."_language_item SET packageID = ?"; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array(1)); // update installation logs $sql = "UPDATE wcf".WCF_N."_package_installation_file_log
/** * @see wcf\data\IEditableCachedObject::resetCache() */ public static function resetCache() { // clear cache UserGroupCacheBuilder::getInstance()->reset(); UserGroupPermissionCacheBuilder::getInstance()->reset(); // clear sessions SessionHandler::resetSessions(); }
/** * @see \wcf\data\IEditableCachedObject::resetCache() */ public static function resetCache() { SessionHandler::resetSessions(); }
/** * @see wcf\form\IForm::save() */ public function save() { parent::save(); $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->userIDs)); $sql = "SELECT\tuserID, groupID\n\t\t\tFROM\twcf" . WCF_N . "_user_to_group\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute($conditions->getParameters()); $groups = array(); while ($row = $statement->fetchArray()) { $groups[$row['userID']][] = $row['groupID']; } foreach ($this->users as $user) { if (!UserGroup::isAccessibleGroup($groups[$user->userID])) { throw new PermissionDeniedException(); } $groupsIDs = array_merge($groups[$user->userID], $this->groupIDs); $groupsIDs = array_unique($groupsIDs); $userEditor = new UserEditor($user); $userEditor->addToGroups($groupsIDs, true, false); } ClipboardHandler::getInstance()->removeItems($this->typeID); SessionHandler::resetSessions($this->userIDs); $this->saved(); WCF::getTPL()->assign('message', 'wcf.acp.user.assignToGroup.success'); WCF::getTPL()->display('success'); exit; }
/** * @see wcf\data\IEditableCachedObject::resetCache() */ public static function resetCache() { // clear cache CacheHandler::getInstance()->clear(WCF_DIR . 'cache', 'cache.groups*.php'); // clear sessions SessionHandler::resetSessions(); }
/** * @see \wcf\form\IForm::save() */ public function save() { foreach ($this->userIDs as $userID) { if ($userID != $this->destinationUserID) { $this->mergedUserIDs[] = $userID; } } parent::save(); // poll_option_vote $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE IGNORE\twcf" . WCF_N . "_poll_option_vote\n\t\t\tSET\t\tuserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // comment $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE\twcf" . WCF_N . "_comment\n\t\t\tSET\tuserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // comment_response $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE\twcf" . WCF_N . "_comment_response\n\t\t\tSET\tuserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // profile comments $objectType = ObjectTypeCache::getInstance()->getObjectTypeByName('com.woltlab.wcf.comment.commentableContent', 'com.woltlab.wcf.user.profileComment'); $conditions = new PreparedStatementConditionBuilder(); $conditions->add("objectTypeID = ?", array($objectType->objectTypeID)); $conditions->add("objectID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE\twcf" . WCF_N . "_comment\n\t\t\tSET\tobjectID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // like (userID) $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE IGNORE\twcf" . WCF_N . "_like\n\t\t\tSET\t\tuserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // like (objectUserID) $conditions = new PreparedStatementConditionBuilder(); $conditions->add("objectUserID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE\twcf" . WCF_N . "_like\n\t\t\tSET\tobjectUserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // like_object $conditions = new PreparedStatementConditionBuilder(); $conditions->add("objectUserID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE\twcf" . WCF_N . "_like_object\n\t\t\tSET\tobjectUserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // user_follow (userID) $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->mergedUserIDs)); $conditions->add("followUserID <> ?", array($this->destinationUserID)); $sql = "UPDATE IGNORE\twcf" . WCF_N . "_user_follow\n\t\t\tSET\t\tuserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // user_follow (followUserID) $conditions = new PreparedStatementConditionBuilder(); $conditions->add("followUserID IN (?)", array($this->mergedUserIDs)); $conditions->add("userID <> ?", array($this->destinationUserID)); $sql = "UPDATE IGNORE\twcf" . WCF_N . "_user_follow\n\t\t\tSET\t\tfollowUserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // user_ignore (userID) $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->mergedUserIDs)); $conditions->add("ignoreUserID <> ?", array($this->destinationUserID)); $sql = "UPDATE IGNORE\twcf" . WCF_N . "_user_ignore\n\t\t\tSET\t\tuserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // user_ignore (ignoreUserID) $conditions = new PreparedStatementConditionBuilder(); $conditions->add("ignoreUserID IN (?)", array($this->mergedUserIDs)); $conditions->add("userID <> ?", array($this->destinationUserID)); $sql = "UPDATE IGNORE\twcf" . WCF_N . "_user_ignore\n\t\t\tSET\t\tignoreUserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // user_object_watch $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE IGNORE\twcf" . WCF_N . "_user_object_watch\n\t\t\tSET\t\tuserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // user_activity_event $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE\twcf" . WCF_N . "_user_activity_event\n\t\t\tSET\tuserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // attachments $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE\twcf" . WCF_N . "_attachment\n\t\t\tSET\tuserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // modification_log $conditions = new PreparedStatementConditionBuilder(); $conditions->add("userID IN (?)", array($this->mergedUserIDs)); $sql = "UPDATE\twcf" . WCF_N . "_modification_log\n\t\t\tSET\tuserID = ?\n\t\t\t" . $conditions; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array_merge(array($this->destinationUserID), $conditions->getParameters())); // delete merged users $action = new UserAction($this->mergedUserIDs, 'delete'); $action->executeAction(); // reset clipboard ClipboardHandler::getInstance()->removeItems($this->objectTypeID); SessionHandler::resetSessions($this->userIDs); $this->saved(); // show success message WCF::getTPL()->assign('message', 'wcf.global.success'); WCF::getTPL()->display('success'); exit; }