Exemple #1
0
/**
 * @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
Exemple #2
0
	/**
	 * @see	wcf\data\IEditableCachedObject::resetCache()
	 */
	public static function resetCache() {
		// clear cache
		UserGroupCacheBuilder::getInstance()->reset();
		UserGroupPermissionCacheBuilder::getInstance()->reset();
		
		// clear sessions
		SessionHandler::resetSessions();
	}
Exemple #3
0
 /**
  * @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;
 }