summaryrefslogblamecommitdiffstats
path: root/application/modules/user/forms/BootosUser.php
blob: d5700d560fcb306c8f96b05d200d232c4280693e (plain) (tree)
































































































































































                                                                                                                                     
  <?php
/*
 * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg
 * This program is free software distributed under the GPL version 2.
 * See http://gpl.openslx.org/
 *
 * If you have any feedback please consult http://feedback.openslx.org/ and
 * send your suggestions, praise, or complaints to feedback@openslx.org
 *
 * General information about OpenSLX can be found at http://openslx.org/
 */

class user_Form_BootosUser extends Zend_Form
{

	private $action;
	private $type;
	private $configID;
	private $hometype;
	
    public function setAction($action){
    	$this->action = $action;
    } 
	public function setType($type){
		$this->type = $type;
	}	
	public function setConfigID($configID){
		$this->configID = $configID;
	}	
	public function setHometype($hometype){
		$this->hometype = $hometype;
	}
	
	
    public function init()
    {
        $this->setName($this->action);
		$this->setMethod('post');
		
		if (!Pbs_Acl::checkRight('ce') && $this->action == 'editbootosuser')
			$meta = true;
		else 
			$meta = null;

		if(!isset($_POST['hometypeID'])){
			$_POST['hometypeID'] = '0'; 
		}	
					
        $this->addElement('text', 'login', array(
			'filters' => array('StringTrim'),
			'validators' => array(
				array('StringLength', false, array(0, 50)),
			),
			'required' => true,
			'label' => 'Login-Name:',
			'value' => $_POST['login'],
			'description' => 'Tip: Use %username% as a Wildcard'
		));
		
		$this->addElement('password', 'password', array(
			'filters' => array('StringTrim'),
			'validators' => array(
				array('StringLength', false, array(6)),
			),
			'required' => true,
			'label' => 'Password:',
			'errorMessages'  => array('Please enter a password with more than 6 characters')
		));
	
		$this->addElement('password', 'repeat_password', array(
			'filters' => array('StringTrim'),
			'validators' => array(
				array('StringLength', false, array(6)),
			),
			'required' => true,
			'label' => 'Repeat Password:',
			'errorMessages'  => array('Please repeat the password correctly'),
			'description' => 'Tip: Use %password% as a Wildcard'
		));

		
		
        $hometypefield = $this->createElement('select','hometypeID');
        $hometypefield->setLabel('Hometype:');
        $hometypefield->setAttrib('readOnly', $meta); 
		$hometypefield->setAttrib('onChange', "document.getElementById('".$this->action."').submit();");
        $hometypefield->setValue($_POST['hometypeID']);
        foreach($this->hometype as $k => $ht){
			$hometypefield->addMultiOption($ht->getID(), $ht->getName());
        }
        
        $this->addElement($hometypefield);

        if($_POST['hometypeID'] == 0){
	       	$this->addElement('text', 'homepath', array(
				'filters' => array('StringTrim'),
				'validators' => array(
					array('StringLength', false, array(0, 50)),
				),
				'required' => true,
				'label' => 'Home-Path:',
				'size' => '30',
				'readOnly' => true,
				'value' => '/home/%login-name%'
			));	
        }elseif($_POST['hometypeID'] == 1){
        	$this->addElement('text', 'homepath', array(
				'filters' => array('StringTrim'),
				'validators' => array(
					array('StringLength', false, array(0, 50)),
				),
				'required' => true,
				'label' => 'Home-Path:',
				'size' => '30',
				'readOnly' => true,
				'value' => 'usbstick://home/%login-name%'
			));	
        }else{
        	$this->addElement('text', 'homepath', array(
				'filters' => array('StringTrim'),
				'validators' => array(
					array('StringLength', false, array(0, 50)),
				),
				'size' => '30',
				'required' => true,
				'label' => 'Home-Path:',
				'readOnly' => $meta
			));	
        }
        
		if($this->action == "addbootosuser")
			$label = "Add User";
		else 
			$label = "Edit User"; 
		
        $this->addElement('submit', $this->action, array(
            'required' => false,
            'ignore'   => true,
            'label'    => $label
        ));  
        
        $this->addElement('button', 'Cancel', array(
            'onclick' => 'self.location="/user/config/showconfig/type/'.$this->type.'/configID/'.$this->configID.'"'
        ));  

        
        $pbsNotifier = new Pbs_Notifier();
		echo $pbsNotifier->notify('Use <b>%username%</b> and <b>%password%</b> as Wildcards for Login and Password.','info');
    }
    
  public function isValid($data)
  {
    $this->getElement('repeat_password')->
      addValidator(new Zend_Validate_Identical($data['password']));
 
    return parent::isValid($data);
  }

}
?>