/** * @see \wcf\form\IForm::save() */ public function save() { AbstractForm::save(); $this->objectAction = new UserGroupAssignmentAction(array($this->assignment), 'update', array('data' => array_merge($this->additionalFields, array('groupID' => $this->groupID, 'isDisabled' => $this->isDisabled, 'title' => $this->title)))); $returnValues = $this->objectAction->executeAction(); // transform conditions array into one-dimensional array $conditions = array(); foreach ($this->conditions as $groupedObjectTypes) { $conditions = array_merge($conditions, $groupedObjectTypes); } ConditionHandler::getInstance()->updateConditions($this->assignment->assignmentID, $this->assignment->getConditions(), $conditions); $this->saved(); WCF::getTPL()->assign('success', true); }
/** * Returns the users who fullfil all conditions of the given user group * assignment. * * @param \wcf\data\user\group\assignment\UserGroupAssignment $assignment * @return array<\wcf\data\user\User> */ public function getUsers(UserGroupAssignment $assignment) { $userList = new UserList(); $userList->getConditionBuilder()->add('user_table.userID NOT IN (SELECT userID FROM wcf' . WCF_N . '_user_to_group WHERE groupID = ?)', array($assignment->groupID)); $conditions = $assignment->getConditions(); foreach ($conditions as $condition) { $condition->getObjectType()->getProcessor()->addUserCondition($condition, $userList); } $userList->readObjects(); return $userList->getObjects(); }