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(); }
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(); }
/** * 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; }