Пример #1
0
 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.";
         }
     }
 }
Пример #2
0
 /**
  * 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;
 }