public function createForm()
 {
     $mainForm = new Am_Form_Admin();
     $self_password = $mainForm->addPassword('self_password')->setLabel(___("Your Password\n" . "enter your current password\n" . "in order to edit admin record"));
     $self_password->addRule('callback', ___('Wrong password'), array($this, 'checkSelfPassword'));
     $form = $mainForm->addFieldset()->setLabel(___('Admin Settings'));
     $login = $form->addText('login')->setLabel(___('Admin Username'));
     $login->addRule('required')->addRule('length', ___('Length of username must be from %d to %d', 4, 16), array(4, 16))->addRule('regex', ___('Admin username must be alphanumeric in small caps'), '/^[a-z][a-z0-9_-]+$/');
     $set = $form->addGroup()->setLabel(___('First and Last Name'));
     $set->addText('name_f');
     $set->addText('name_l');
     $pass = $form->addPassword('_passwd')->setLabel(___('New Password'));
     $pass->addRule('length', ___('Length of admin password must be from %d to %d', 6, 16), array(6, 16));
     $pass->addRule('neq', ___('Password must not be equal to username'), $login);
     $pass0 = $form->addPassword('_passwd0')->setLabel(___('Confirm New Password'));
     $pass0->addRule('eq', ___('Passwords must be the same'), $pass);
     $form->addText('email')->setLabel(___('E-Mail Address'))->addRule('required');
     $super = $form->addAdvCheckbox('super_user')->setLabel(___('Super Admin'));
     $record = $this->grid->getRecord();
     if ($this->getDi()->authAdmin->getUserId() == $record->get('admin_id')) {
         $super->toggleFrozen(true);
     }
     $group = $form->addGroup('perms')->setLabel(___('Permissions'))->setSeparator('<br />');
     foreach ($this->getDi()->authAdmin->getPermissionsList() as $perm => $title) {
         if (is_string($title)) {
             $group->addCheckbox($perm)->setContent($title);
         } else {
             $gr = $group->addGroup($perm);
             $gr->addStatic()->setContent($title['__label']);
             unset($title['__label']);
             foreach ($title as $k => $v) {
                 $gr->addCheckbox($k)->setContent($v);
             }
         }
     }
     return $mainForm;
 }
예제 #2
0
    function askRemoteAccess()
    {
        $form = new Am_Form_Admin();
        $info = $this->loadRemoteAccess();
        if ($info && !empty($info['_tested'])) {
            return true;
        }
        if ($info) {
            $form->addDataSource(new Am_Request($info));
        }
        $method = $form->addSelect('method', null, array('options' => array('ftp' => 'FTP', 'sftp' => 'SFTP')))->setLabel(___('Access Method'));
        $gr = $form->addGroup('hostname')->setLabel(___('Hostname'));
        $gr->addText('host')->addRule('required')->addRule('regex', 'Incorrect hostname value', '/^[\\w\\._-]+$/');
        $gr->addHTML('port-label')->setHTML('&nbsp;<b>Port</b>');
        $gr->addText('port', array('size' => 3));
        $gr->addHTML('port-notice')->setHTML('&nbsp;leave empty if default');
        $form->addText('user')->setLabel(___('Username'))->addRule('required');
        $form->addPassword('pass')->setLabel(___('Password'));
        //        $form->addTextarea('ssh_public_key')->setLabel(___('SSH Public Key'));
        //        $form->addTextarea('ssh_private_key')->setLabel(___('SSH Private Key'));
        $form->addSubmit('', array('value' => ___('Continue')));
        $form->addScript()->setScript(<<<CUT
\$(function(){
    \$('#method-0').change(function(){
        \$('#ssh_public_key-0,#ssh_private_key-0').closest('.row').toggle( \$(this).val() == 'ssh' );
    }).change();
});
CUT
);
        $error = null;
        $vars = $form->getValue();
        if ($form->isSubmitted() && $form->validate() && !($error = $this->tryConnect($vars))) {
            $vars['_tested'] = true;
            $this->storeRemoteAccess($vars);
            return true;
        } else {
            //$this->view->title = ___("File Access Credentials Required");
            $this->view->title = ___('Upgrade');
            $this->view->content = "";
            $this->outStepHeader();
            if ($error) {
                $method->setError($error);
            }
            $this->view->content .= (string) $form;
            $this->view->display('admin/layout.phtml');
            $this->noDisplay = true;
        }
    }
 /** @return Am_Form_Admin */
 function createMysqlForm()
 {
     $form = new Am_Form_Admin();
     $el = $form->addText('host')->setLabel('Wordpress  MySQL Hostname');
     $el->addRule('required', 'This field is required');
     $form->addText('user')->setLabel('Wordpress  MySQL Username')->addRule('required', 'This field is required');
     $form->addPassword('pass')->setLabel('Wordpress MySQL Password');
     $form->addText('db')->setLabel('Wordpress MySQL Database Name')->addRule('required', 'This field is required');
     $form->addText('prefix')->setLabel('Wordpress Tables Prefix');
     $dbConfig = $this->getDi()->getParameter('db');
     $form->addDataSource(new HTML_QuickForm2_DataSource_Array(array('host' => $dbConfig['mysql']['host'], 'user' => $dbConfig['mysql']['user'], 'prefix' => 'wp_')));
     $el->addRule('callback2', '-', array($this, 'validateDbConnect'));
     $form->addSubmit(null, array('value' => 'Continue...'));
     return $form;
 }