Ejemplo n.º 1
0
 /**
  * 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);
 }