/**
	 * @param  $formData
	 * @param string $entryPoint
	 * @return bool
	 */
	function tryModifySubmit( $formData, $entryPoint = 'internal' ) {
		$sudoer = OpenStackNovaSudoer::getSudoerByName( $formData['sudoername'] );
		if ( $sudoer ) {
			if ( $formData['users'] ) {
				$users = explode( ',', $formData['users'] );
			} else {
				$users = array();
			}
			if ( $formData['hosts'] ) {
				$hosts = explode( ',', $formData['hosts'] );
			} else {
				$hosts = array();
			}
			if ( $formData['commands'] ) {
				$commands = explode( ',', $formData['commands'] );
			} else {
				$commands = array();
			}
			if ( $formData['options'] ) {
				$options = explode( ',', $formData['options'] );
			} else {
				$options = array();
			}
			$success = $sudoer->modifySudoer( $users, $hosts, $commands, $options );
			if ( ! $success ) {
				$this->getOutput()->addWikiMsg( 'openstackmanager-modifysudoerfailed' );
				return true;
			}
			$this->getOutput()->addWikiMsg( 'openstackmanager-modifiedsudoer' );
		} else {
			$this->getOutput()->addWikiMsg( 'openstackmanager-nonexistantsudoer' );
		}

		$out = '<br />';
		$out .= Linker::link( $this->getTitle(), wfMsgHtml( 'openstackmanager-backsudoerlist' ) );
		$this->getOutput()->addHTML( $out );

		return true;
	}
 /**
  * @param  $formData
  * @param string $entryPoint
  * @return bool
  */
 function tryModifySubmit($formData, $entryPoint = 'internal')
 {
     $sudoer = OpenStackNovaSudoer::getSudoerByName($formData['sudoername'], $formData['project']);
     if ($sudoer) {
         if ($formData['commands']) {
             $commands = explode("\n", $formData['commands']);
         } else {
             $commands = array();
         }
         if ($formData['options']) {
             $options = explode("\n", $formData['options']);
         } else {
             $options = array();
         }
         if ($formData['requirepassword']) {
             $options[] = 'authenticate';
         } else {
             $options[] = '!authenticate';
         }
         $projectName = $formData['project'];
         $project = OpenStackNovaProject::getProjectByName($projectName);
         $projectuids = $project->getMemberUids();
         $projectserviceusers = $project->getServiceUsers();
         $projectGroup = "%" . $project->getProjectGroup()->getProjectGroupName();
         $users = $this->removeALLFromUserKeys($formData['users']);
         $formerusers = $sudoer->getSudoerUsers();
         foreach ($formerusers as $candidate) {
             # Anything in this list that isn't a user or  ALL
             # wasn't exposed to user selection so needs to stay.
             if ($candidate != $projectGroup) {
                 if (!in_array($candidate, $projectuids) && !in_array($candidate, $projectserviceusers)) {
                     $users[] = $candidate;
                 }
             }
         }
         $runasusers = $this->removeALLFromRunAsUserKeys($formData['runas']);
         foreach ($sudoer->getSudoerRunAsUsers() as $candidate) {
             if ($candidate != $projectGroup && $candidate != 'ALL') {
                 if (!in_array($candidate, $projectuids) && !in_array($candidate, $projectserviceusers)) {
                     $runasusers[] = $candidate;
                 }
             }
         }
         $success = $sudoer->modifySudoer($users, $runasusers, $commands, $options);
         if (!$success) {
             $this->getOutput()->addWikiMsg('openstackmanager-modifysudoerfailed');
             return true;
         }
         $this->getOutput()->addWikiMsg('openstackmanager-modifiedsudoer');
     } else {
         $this->getOutput()->addWikiMsg('openstackmanager-nonexistantsudoer');
     }
     $out = '<br />';
     $out .= Linker::link($this->getPageTitle(), $this->msg('openstackmanager-backsudoerlist')->escaped());
     $this->getOutput()->addHTML($out);
     return true;
 }