/**
  * @api {post} /groups/users/:idUser/add Add New Group by Manager
  * @apiName Add New Group by Manager
  * @apiGroup Group
  * @apiDescription Create a child group of the company the specified user is in.
  *                 <p>The user must be admin/owner of his company group.</p>
  *                 <p>The user will be the owner of the new group.</p>
  * @apiHeader (Header) {String} X_Authorization Authorization value.
  * @apiParam  (url Parameter) {Number} idUser User's unique ID.
  * @apiParam  (Parameter) {String} name New group name. <b>Unique</b>
  * @apiParam  (Parameter) {String} description New group description.
  *
  * @apiError 400 Input Invalid. This will happen if the param is missing or not in the valid format.
  * @apiError 404 Not found. This will happen if the role id/user id/group id is not in our system.
  * @apiError 403 Permission denied. 
  * @apiError 401 Not authorized. This will happen if the header value is not attached.
  * @apiError 409 Group name already exists. 
  *
  * @apiSuccess 200 
  */
 public static function add($idUser)
 {
     $app = \Slim\Slim::getInstance();
     $data = $app->request->post();
     //validate input
     $validata = $app->validata;
     $validator = $validata::key('name', $validata::stringType()->notEmpty())->key('description', $validata::stringType()->notEmpty());
     if (!$validator->validate((array) $data)) {
         $app->halt(400, json_encode("Input Invalid"));
     }
     $group = Group::where('name', $data['name'])->first();
     if ($group) {
         $app->halt(409, json_encode("Group name already exists"));
     }
     $companies = User::find($idUser)->companies;
     $parent_group = CompanyController::getCompanyGroup($companies[0]->id);
     if (!$parent_group) {
         $app->halt(404, json_encode("Parent group does not exist"));
     }
     if ($companies) {
         $role = self::getRole($parent_group->id, $idUser);
         if ($role->id < 3) {
             $app->halt("403", json_encode("Permission denied"));
         }
         $group = new Group();
         $group->company_id = $companies[0]->id;
         $group->is_exclusive = 0;
         $group->parent_id = $parent_group->id;
         $group->name = $data['name'];
         $group->description = $data['description'];
         $group->access_code = CompanyController::generateRandomString(8);
         $group->save();
         if ($group->id) {
             $group->members()->attach($idUser, array('role_id' => 3));
         }
     }
 }