public function updateAction($id) { $groupImpl = new \PHPAuth\DAO\GroupImpl(); $roleImpl = new \PHPAuth\DAO\RoleImpl(); $group = $groupImpl->find($id); if ($group) { $roles_selected = $this->app->request->put("roles_selected"); $roles = $roleImpl->all(); //add new roles foreach ($roles as $role) { foreach ($roles_selected as $role_selected) { if ($role->getId() == $role_selected && !$group->containRole($role)) { $group->addRole($role); } } } //remove old roles foreach ($group->getRoles() as $role) { $isIn = true; foreach ($roles_selected as $role_selected) { if ($role->getId() == $role_selected) { $isIn = true; break; } else { $isIn = false; } } if (!$isIn) { $group->removeRole($role); } } $group->setName($this->app->request->put("name")); $group->setActive($this->app->request->put("active")); if ($group->isValid()) { $groupImpl->update($group); $this->redirect("/groups/{$group->getId()}"); } } //else group not found $this->redirect("/groups"); }
public function updateAction($id) { $userImpl = new \PHPAuth\DAO\UserImpl(); $groupImpl = new \PHPAuth\DAO\GroupImpl(); $user = $userImpl->find($id); if ($user) { $groups_selected = $this->app->request->put("groups_selected"); $groups = $groupImpl->all(); //add new groups foreach ($groups as $group) { foreach ($groups_selected as $group_selected) { if ($group->getId() == $group_selected && !$user->containGroup($group)) { $user->addGroup($group); } } } //remove old group foreach ($user->getGroups() as $group) { $isIn = true; foreach ($groups_selected as $group_selected) { if ($group->getId() == $group_selected) { $isIn = true; break; } else { $isIn = false; } } if (!$isIn) { $user->removeGroup($group); } } $user->initAttributes(array('username' => $this->app->request->put("username"), 'active' => $this->app->request->put("active"), 'password' => $this->app->request->put("password"))); if ($user->isValid()) { $userImpl->update($user); $this->redirect("/users/{$user->getId()}"); } } //else user not found $this->redirect("/users"); }