コード例 #1
0
 /**
  * Make sure PHP is up to snuff, that we can write to the right places, and
  * make the first user.
  */
 public function indexAction()
 {
     $phpCheck = array('PHP Version >= 5.2.3' => version_compare(PHP_VERSION, '5.2.3') >= 0, 'Standard Extension Loaded' => extension_loaded('standard'), 'SOAP Extension Loaded' => extension_loaded('soap'), 'PCRE Extension Loaded' => extension_loaded('pcre'), 'PDO Extension Loaded' => extension_loaded('pdo'), 'PDO SQLite Extension Loaded' => extension_loaded('pdo_sqlite'), 'SPL Extension Loaded' => extension_loaded('spl'), 'Session Extension Loaded' => extension_loaded('session'), 'Ctype Extension Loaded' => extension_loaded('ctype'));
     $systemCheck = array('Languages Directory (' . LANGUAGE_PATH . ') Writable' => is_writable(LANGUAGE_PATH), 'Skins Directory (' . SKIN_PATH . ') Writable' => is_writable(SKIN_PATH), 'Database Directory (' . APPLICATION_PATH . '/../data/db) Writable' => is_writable(APPLICATION_PATH . '/../data/db'), 'Configuration File (' . CONFIG_PATH . '/settings.ini' . ') Writable' => is_writable(CONFIG_PATH . '/settings.ini'));
     /*
      * Show an error if there are any PHP or system errors.
      */
     $hasPhpErrors = false;
     $hasSystemErrors = false;
     foreach ($phpCheck as $check) {
         if (!$check) {
             $hasPhpErrors = true;
             break;
         }
     }
     foreach ($systemCheck as $check) {
         if (!$check) {
             $hasSystemErrors = true;
             break;
         }
     }
     if (!$hasPhpErrors && !$hasSystemErrors) {
         /*
          * Build the add user form.
          */
         $config = Zend_Registry::get('config');
         $skins = Model_Skin::getAllSkins();
         $languages = Model_Language::getAllLanguages();
         /*
          * Turn the skin and language lists into something more Zend_Form
          * friendly.
          */
         foreach ($skins as $skin) {
             $skinList[$skin->name] = $skin->name;
         }
         foreach ($languages as $language) {
             $languageList[$language->name] = $language->name;
         }
         $form = new Zend_Form();
         $form->setMethod('post');
         $username = $form->createElement('text', 'username');
         $username->setLabel(ucfirst($this->view->translate->_('username')));
         $username->setRequired(true);
         $username->addValidator('alnum');
         $apiKey = $form->createElement('text', 'apiKey');
         $apiKey->setLabel(ucfirst($this->view->translate->_('API key')));
         $apiKey->setRequired(true);
         $apiKey->addValidator('alnum');
         $skin = $form->createElement('select', 'skin');
         $skin->setLabel(ucfirst($this->view->translate->_('skin')));
         $skin->addMultiOptions($skinList);
         $skin->setValue($config->defaults->skin);
         $skin->setRequired(true);
         $language = $form->createElement('select', 'language');
         $language->setLabel(ucfirst($this->view->translate->_('language')));
         $language->addMultiOptions($languageList);
         $language->setValue($config->defaults->language);
         $language->setRequired(true);
         $form->addElement($username);
         $form->addElement($apiKey);
         $form->addElement($skin);
         $form->addElement($language);
         $form->addElement('submit', 'submit', array('label' => $this->view->translate->_('Submit')));
         /*
          * Process form submission.
          */
         if ($this->getRequest()->isPost()) {
             $formData = $this->getRequest()->getPost();
             if ($form->isValid($formData)) {
                 /*
                  * Try out the username and API key to make sure they
                  * entered a good one.
                  */
                 $account = null;
                 $client = SoftLayer_SoapClient::getClient('SoftLayer_Account', null, $form->getValue('username'), $form->getValue('apiKey'));
                 try {
                     $account = $client->getObject();
                 } catch (Exception $e) {
                     $this->view->errorMessage = $this->view->translate->_('Please enter a valid username and API key combination.');
                 }
                 /*
                  * Add the user.
                  */
                 if ($account != null) {
                     try {
                         $user = Model_DbTable_User::addUser($form->getValue('username'), $form->getValue('apiKey'), $form->getValue('skin'), $form->getValue('language'), true);
                         $this->_helper->_redirector->goToRouteAndExit(array('controller' => 'index', 'action' => null));
                     } catch (Exception $e) {
                         $this->view->errorMessage = $this->view->translate->_('Unable to add user.') . ' ' . $e->getMessage();
                     }
                 }
             } else {
                 $this->view->errorMessage = $this->view->translate->_('Please completely fill out the configuration form.');
             }
             $form->populate($formData);
         }
         $this->view->form = $form;
     }
     $this->view->pageTitle = 'Installation';
     $this->view->headTitle('Installation');
     $this->view->phpCheck = $phpCheck;
     $this->view->systemCheck = $systemCheck;
     $this->view->hasPhpErrors = $hasPhpErrors;
     $this->view->hasSystemErrors = $hasSystemErrors;
 }
コード例 #2
0
ファイル: AdminController.php プロジェクト: c12g/stratos-php
 /**
  * Present the add user form and get a list of locally configured users.
  */
 public function usersAction()
 {
     /*
      * Build the add form.
      */
     $config = Zend_Registry::get('config');
     $skins = Model_Skin::getAllSkins();
     $languages = Model_Language::getAllLanguages();
     /*
      * Turn the skin and language lists into something more Zend_Form
      * friendly.
      */
     foreach ($skins as $skin) {
         $skinList[$skin->name] = $skin->name;
     }
     foreach ($languages as $language) {
         $languageList[$language->name] = $language->name;
     }
     $form = new Zend_Form();
     $form->setMethod('post');
     $username = $form->createElement('text', 'username');
     $username->setLabel(ucfirst($this->view->translate->_('username')));
     $username->setRequired(true);
     $username->addValidator('alnum');
     $apiKey = $form->createElement('text', 'apiKey');
     $apiKey->setLabel(ucfirst($this->view->translate->_('API key')));
     $apiKey->setRequired(true);
     $apiKey->addValidator('alnum');
     $skin = $form->createElement('select', 'skin');
     $skin->setLabel(ucfirst($this->view->translate->_('skin')));
     $skin->addMultiOptions($skinList);
     $skin->setValue($config->defaults->skin);
     $skin->setRequired(true);
     $language = $form->createElement('select', 'language');
     $language->setLabel(ucfirst($this->view->translate->_('language')));
     $language->addMultiOptions($languageList);
     $language->setValue($config->defaults->language);
     $language->setRequired(true);
     $isAdmin = $form->createElement('checkbox', 'isAdmin');
     $isAdmin->setLabel(ucfirst($this->view->translate->_('administrator')));
     $form->addElement($username);
     $form->addElement($apiKey);
     $form->addElement($skin);
     $form->addElement($language);
     $form->addElement($isAdmin);
     $form->addElement('submit', 'submit', array('label' => $this->view->translate->_('Submit')));
     /*
      * Process form submission.
      */
     if ($this->getRequest()->isPost()) {
         $formData = $this->getRequest()->getPost();
         if ($form->isValid($formData)) {
             /*
              * Try out the username and API key to make sure they
              * entered a good one.
              */
             $account = null;
             $client = SoftLayer_SoapClient::getClient('SoftLayer_Account', null, $form->getValue('username'), $form->getValue('apiKey'));
             try {
                 $account = $client->getObject();
             } catch (Exception $e) {
                 $this->view->errorMessage = $this->view->translate->_('Please enter a valid username and API key combination.');
             }
             /*
              * Add the user.
              */
             if ($account != null) {
                 try {
                     $user = Model_DbTable_User::addUser($form->getValue('username'), $form->getValue('apiKey'), $form->getValue('skin'), $form->getValue('language'), $form->getValue('isAdmin'));
                     $this->view->statusMessage = $this->view->translate->_('User added.');
                 } catch (Exception $e) {
                     $this->view->errorMessage = $this->view->translate->_('Unable to add user.') . ' ' . $e->getMessage();
                 }
             }
         } else {
             $this->view->errorMessage = $this->view->translate->_('Please completely fill out the configuration form.');
         }
         $form->populate($formData);
     }
     /*
      * Get a user list.
      */
     $users = array();
     try {
         $users = Model_DbTable_User::getAllUsers();
     } catch (Exception $e) {
         $this->view->errorMessage = $this->view->translate->_('Unable to load user list.' . ' ' . $e->getMessage());
     }
     $this->view->pageTitle = $this->view->translate->_('Users');
     $this->view->headTitle($this->view->translate->_('Users'));
     $this->view->users = $users;
     $this->view->form = $form;
 }