/** * Vraci pole ve tvaru "id => typ" * * @param int $idaccount ID uctu * @param string $nullVal Prvni prvek selectu * @return array */ public function getFormSelect($idaccount = null, $nullVal = null) { if (is_null($idaccount)) { $idaccount = $this->_dbTable->getAccountId(); } $priority = $this->_dbTable->fetchAllEntry('idaccount = ' . $idaccount . '', array('idtyp', 'name')); foreach ($priority as $row) { if (!is_null($nullVal)) { $return[null] = $nullVal; } $return[$row->idtyp] = $row->name; } return $return; }
/** * Authenticate a user * * Authentication is handled by SoftLayer's authentication system. Passwords * are not stored locally. * * @param string $username * @param string $password * @throws Exception * @return bool */ public static function authenticate($username, $password) { /* * Make sure the user exists locally first. */ $user = Model_DbTable_User::findByUsername($username); if ($user == null) { throw new Exception('Invalid login credentials provided.'); } /* * Attempt to authenticate to the SoftLayer API. API docs at * http://sldn.softlayer.com/wiki/index.php/SoftLayer_User_Customer::getPortalLoginToken */ $client = SoftLayer_SoapClient::getClient('SoftLayer_User_Customer'); try { $result = $client->getPortalLoginToken($username, $password); } catch (Exception $e) { throw new Exception($e->getMessage()); } return true; }
/** * Zjistuje ID vlastnika uctu * * @param int $idaccount id uctu * @return array */ public function getOwnerId($idaccount) { $idowner = $this->_dbTable->getRow(array('idaccount' => $idaccount, 'owner' => 1), array('iduser')); Zend_Debug::dump($idowner); return $idowner; }
/** * Uklada novou/editovanou spolecnost do DB * * @param array $formData Data z formulare * @param int $id ID editovaneho zaznamu * @return int ID ukladaneho zaznamu * * @todo Dodelat sloupce pro editaci */ public function save($formData, $id = null) { $data = array('idaccount' => $this->_dbTable->getAccountId(), 'name' => $formData['company']); $lastInsertId = $this->_dbTable->save($data, $id); return $lastInsertId; }
/** * Fungsi untuk memasukkan data comment * @return array */ public function insertCommentUsercon($contentId, $contentType, $input, $userId, $fbname = '') { if (!preg_match('@^http://|https://@', $input['website']) and empty($fbname)) { $input['website'] = 'http://' . $input['website']; } date_default_timezone_set('Asia/Jakarta'); $defaultData = array('content_id' => $contentId, 'content_type' => $contentType, 'comment_author_url' => $input['website'], 'comment_content' => $input['comment'], 'parent_id' => $input['parent_id'], 'level' => $input['level'], 'comment_date' => date('Y-m-d H:i:s')); if (isset($userId)) { $userDb = new Model_DbTable_User(); $user = $userDb->getUserById($userId); $data = array('comment_author' => $user['name'], 'comment_author_email' => $user['email'], 'user_id' => $userId); if (!empty($fbname)) { $data['isfb'] = 1; $data['comment_author'] = $user['username']; } $defaultData = array_merge($defaultData, $data); return $this->insert($defaultData); } else { $data = array('comment_author' => $input['author'], 'comment_author_email' => $input['email']); $defaultData = array_merge($defaultData, $data); if (isset($input['author']) and isset($input['email'])) { return $this->insert($defaultData); } } }
/** * IS: - * FS: - * Desc: Fungsi untuk mereset password */ private function _resetPassword($userId) { $userDb = new Model_DbTable_User(); $updateData = array('password' => md5($this->_getParam('password'))); $userDb->updateUser($updateData, $userId); }
/** * 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; }
/** * Present a login form and handle user authentication. */ public function loginAction() { /* * Build the login form */ $form = new Zend_Form(); $form->setMethod('post'); $username = $form->createElement('text', 'username'); $username->setLabel($this->view->translate->_('Username')); $username->setRequired(true); $username->addValidator('alnum'); $password = $form->createElement('password', 'password'); $password->setLabel($this->view->translate->_('Password')); $password->setRequired(true); $form->addElement($username); $form->addElement($password); $form->addElement('submit', 'login', array('label' => $this->view->translate->_('Login'))); /* * Handle authentication */ if ($this->getRequest()->isPost()) { $formData = $this->getRequest()->getPost(); if ($form->isValid($formData)) { try { Model_DbTable_User::authenticate($form->getValue('username'), $form->getValue('password')); /* * Set the current user session */ $user = Model_DbTable_User::findByUsername($form->getValue('username')); $currentUser = new Zend_Session_Namespace('currentUser'); $currentUser->id = $user->id; $currentUser->username = $user->username; $currentUser->apiKey = $user->apiKey; $currentUser->language = $user->language; $currentUser->skin = $user->skin; $currentUser->isAdmin = $user->isAdmin; /* * Redirect back to the index page. */ $this->_helper->_redirector->goToRouteAndExit(array('controller' => 'index', 'action' => 'index')); } catch (Exception $e) { $this->view->errorMessage = $this->view->translate->_('Login failed.') . ' ' . $e->getMessage(); } } else { $this->view->errorMessage = $this->view->translate->_('Login failed.') . ' ' . $this->view->translate->_('Please completely fill out the login form.'); $form->populate($formData); } } $this->view->headTitle($this->view->translate->_('Login')); $this->view->form = $form; }
/** * Edit a local user. * * This does not affect the user's corresponding SoftLayer user account. */ public function edituserAction() { $user = null; /* * Get user info. */ try { $user = new Model_DbTable_User($this->_getParam('id')); } catch (Exception $e) { $this->view->errorMessage = $this->translate->_('Unable to locate user.') . ' ' . $e->getMessage(); } if ($user != null) { /* * Build the delete form. Only show it if the user isn't trying to * delete themselves. */ $deleteForm = null; if ($user->id != $this->view->currentUser->id) { $deleteForm = new Zend_Form(); $deleteForm->setMethod('post'); $hidden = $deleteForm->createElement('hidden', 'mode'); $hidden->setValue('delete'); $deleteForm->addElement($hidden); $deleteForm->addElement('submit', 'submit', array('label' => $this->view->translate->_('Submit'))); } /* * Build the edit form. */ $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'); $username->setValue($user->username); $apiKey = $form->createElement('text', 'apiKey'); $apiKey->setLabel(ucfirst($this->view->translate->_('API key'))); $apiKey->setRequired(true); $apiKey->addValidator('alnum'); $apiKey->setValue($user->apiKey); $skin = $form->createElement('select', 'skin'); $skin->setLabel(ucfirst($this->view->translate->_('skin'))); $skin->addMultiOptions($skinList); $skin->setValue($user->skin); $skin->setRequired(true); $language = $form->createElement('select', 'language'); $language->setLabel(ucfirst($this->view->translate->_('language'))); $language->addMultiOptions($languageList); $language->setValue($user->language); $language->setRequired(true); $isAdmin = $form->createElement('checkbox', 'isAdmin'); $isAdmin->setLabel(ucfirst($this->view->translate->_('administrator'))); $isAdmin->setChecked($user->isAdmin); $hidden = $form->createElement('hidden', 'mode'); $hidden->setValue('edit'); $form->addElement($username); $form->addElement($apiKey); $form->addElement($skin); $form->addElement($language); $form->addElement($isAdmin); $form->addElement($hidden); $form->addElement('submit', 'submit', array('label' => $this->view->translate->_('Submit'))); /* * Process form submission. */ if ($this->getRequest()->isPost()) { $formData = $this->getRequest()->getPost(); /* * Delete the user. */ if ($formData['mode'] == 'delete') { /* * Users may not delete themselves. */ if ($user->id == $this->view->currentUser->id) { $this->view->errorMessage = $this->view->translate->_('You may not delete your user account.'); } else { try { $user->deleteUser(); $this->_helper->_redirector->goToRouteAndExit(array('controller' => 'admin', 'action' => 'users', 'id' => null)); } catch (Exception $e) { $this->view->errorMessage = $this->view->translate->_('Unable to delete user.') . ' ' . $e->getMessage(); } } /* * Edit the user. */ } else { 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.'); } /* * If the user is editing themself then make sure they * don't take away their own admin privileges. */ if ($user->id == $this->view->currentUser->id && $form->getValue('isAdmin') != $this->view->currentUser->isAdmin) { $account = null; $this->view->errorMessage = $this->view->translate->_('You may not change your administrative status.'); } /* * Update the user. */ if ($account != null) { try { $user->updateUser($form->getValue('username'), $form->getValue('apiKey'), $form->getValue('skin'), $form->getValue('language'), $form->getValue('isAdmin')); $this->view->statusMessage = $this->view->translate->_('User saved.'); } catch (Exception $e) { $this->view->errorMessage = $this->view->translate->_('Unable to save user.') . ' ' . $e->getMessage(); } } } else { $this->view->errorMessage = $this->view->translate->_('Please completely fill out the configuration form.'); } } $form->populate($formData); } $this->view->pageTitle = $this->view->translate->_('Edit') . ' ' . $user->username; $this->view->headTitle($this->view->translate->_('Edit') . ' ' . $user->username); $this->view->deleteForm = $deleteForm; $this->view->form = $form; } $this->view->user = $user; }