public function addUsersFromArray($users = array()) { foreach ($users as $user) { $u = UserQuery::create()->findOneByUsername($user["username"]); if ($u) { if ($u == $this->data["loggedUser"]) { $response["messages"][] = "You can not add yourself to group."; continue; } $userGroup = UserGroupQuery::create()->filterByUser($u)->filterByGroup($this->data["group"])->findOne(); if ($userGroup) { $response["messages"][] = "User " . $user["username"] . " is already in this group."; continue; } $userGroup = new UserGroup(); $userGroup->setUser($u); $userGroup->setGroup($this->data["group"]); $userGroup->save(); } else { $response["messages"][] = "User " . $user["username"] . " does not exist."; } } }
/** * Remove user of this object * through the user_group cross reference table. * * @param ChildUser $user * @return ChildGroup The current object (for fluent API support) */ public function removeUser(ChildUser $user) { if ($this->getUsers()->contains($user)) { $userGroup = new ChildUserGroup(); $userGroup->setUser($user); if ($user->isGroupsLoaded()) { //remove the back reference if available $user->getGroups()->removeObject($this); } $userGroup->setGroup($this); $this->removeUserGroup(clone $userGroup); $userGroup->clear(); $this->collUsers->remove($this->collUsers->search($user)); if (null === $this->usersScheduledForDeletion) { $this->usersScheduledForDeletion = clone $this->collUsers; $this->usersScheduledForDeletion->clear(); } $this->usersScheduledForDeletion->push($user); } return $this; }