/** * Remove member(s) from a group * Disallows removal of last manager (group must have at least one) * * @return void */ public function removeTask() { // Check for request forgeries Request::checkToken(['get', 'post']); $gid = Request::getVar('gid', ''); // Load the group page $group = new Group(); $group->read($gid); // Get all the group's managers $managers = $group->get('managers'); // Get all the group's members $members = $group->get('members'); $users_mem = array(); $users_man = array(); // Incoming array of users to remove $id = Request::getInt('id', 0); // Ensure we found an account if (!$id) { \App::abort(404, Lang::txt('COM_MEMBERS_NOT_FOUND')); } if (in_array($id, $members)) { $users_mem[] = $id; } if (in_array($id, $managers)) { $users_man[] = $id; } // Remove users from members list $group->remove('members', $users_mem); // Remove users from managers list $group->remove('managers', $users_man); // Save changes $group->update(); // Push through to the groups view $this->displayTask($id); }