public function userAction()
 {
     $this->userService->checkRightGate('USER_ADMIN');
     $form = $this->getForm('userEditForm', dirname(__FILE__) . '/userAdminForm.xml');
     $form->addDataProvider('listRoles', $this->userService->listRoles());
     if ($form->isSubmit()) {
         if ($form->isValid()) {
             $user = $form->getContainer('user');
             $this->userService->saveUserWithRoles($user);
             $this->forward('user', 'admin', 'list');
             return;
         }
     } else {
         $id = $this->getParam('id', 0);
         if ($id == '') {
             throw new \org\equinox\exception\ParameterInvalidException("No (id) provided then editing a user !!!");
         }
         $user = $this->userService->getUserWithRoles($id);
         if ($user == null) {
             throw new \org\equinox\exception\ParameterInvalidException("No user found for id ({$id})");
         }
         $form->setContainer('user', $user);
     }
     $this->storeForm($form);
     $this->assign('form', $form);
 }