예제 #1
0
 public function init()
 {
     /*
      * If no users are installed then go to the installer page.
      */
     $allUsers = Model_DbTable_User::getAllUsers();
     if (count($allUsers) < 1) {
         $this->_helper->_redirector->goToRouteAndExit(array('controller' => 'install', 'action' => 'index'));
     }
     /*
      * Handle the current user and login redirection.
      * All pages except /user/login are redirected to /user/login if the
      * user is not logged in.
      */
     $currentUser = new Zend_Session_Namespace('currentUser');
     $requestParameters = $this->getRequest()->getParams();
     if ($requestParameters['controller'] != 'user' && $requestParameters['action'] != 'login') {
         if ($currentUser->username == null) {
             $this->_helper->_redirector->goToRouteAndExit(array('controller' => 'user', 'action' => 'login'));
         } else {
             $this->view->currentUser = $currentUser;
             SoftLayer_SoapClient::setAuthenticationUser($currentUser->username, $currentUser->apiKey);
         }
     }
     /*
      * Set common view elements.
      */
     $this->view->translate = Zend_Registry::get('Zend_Translate');
     $this->view->baseUrl = $this->getRequest()->getBaseUrl();
 }
예제 #2
0
 public function init()
 {
     /*
      * Handle the current user and login redirection.
      * If the user is logged in or we already have users installed then
      * redirect them to the index page.
      */
     $currentUser = new Zend_Session_Namespace('currentUser');
     $requestParameters = $this->getRequest()->getParams();
     $allUsers = Model_DbTable_User::getAllUsers();
     if ($currentUser->username != null || count($allUsers) > 0) {
         $this->_helper->_redirector->goToRouteAndExit(array('controller' => 'index', 'action' => null));
     }
     /*
      * Set common view elements.
      */
     $this->view->translate = Zend_Registry::get('Zend_Translate');
     $this->view->baseUrl = $this->getRequest()->getBaseUrl();
 }
예제 #3
0
 /**
  * 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;
 }