Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- protected function form(){
- $front = $this->getFrontController();
- $this->getLastMessage();
- $this->main_template = "form";
- $form = new Phenix_Form;
- $form->setAction(PHENIX_URL.SLASH.$this->currentModule.'/login');
- $form->setMethod('POST');
- $username = $form->createElement('text', 'username');
- $username->setLabel('User Name');
- $username->addValidator('alnum');
- $username->addValidator('regex', false, array('/^[a-z]+/'));
- $username->addValidator('stringLength', false, array(6, 20));
- $username->addFilter('StringToLower');
- $username->setRequired(true);
- $password = $form->createElement('password', 'password');
- $password->setLabel('Password');
- $password->addValidator('StringLength', false, array(6));
- $password->setRequired(true);
- $form->addElement($username);
- $form->addElement($password);
- $form->addElement('submit', 'login', array('label' => 'Login'));
- $form->setView($this->view);
- $this->view->form = $form;
- if ($this->config()->system->siteclose->active == true){
- $this->view->siteclose = $this->config->system->siteclose->message;
- }
- }
- protected function getLastMessage(){
- if ($this->_flashmessenger->hasMessages()) {
- $this->view->lastmessage = $this->_flashmessenger->getMessages();
- }
- }
- protected function setReferer($default = "", $reset = false){
- if ($reset){
- $this->_session->referer = "";
- }else {
- if (isset($this->_session->referer) && $this->_session->referer != ""){
- $referer = $this->_session->referer;
- }else {
- if (isset($_SERVER["HTTP_REFERER"])){
- $referer = $_SERVER["HTTP_REFERER"];
- }else {
- $referer = $default;
- }
- $this->_session->referer = $referer;
- }
- return $referer;
- }
- }
- public function loginAction()
- {
- $referer = $this->setReferer("/profil");
- $auth = Zend_Auth::getInstance();
- if ($auth->hasIdentity()) {
- $this->view->identity = $auth->getIdentity();
- $this->_redirector->gotoUrl('/profil');
- } else {
- if ($this->_request->isPost()) {
- //checkform param
- $username = $this->_getParam("username");
- $password = $this->_getParam("password");
- if ((strlen($username) <= 0) || (strlen($password) <= 0)) {
- $this->view->failureReason = $this->_translate->_('Both email and password must be specified.');
- Zend_Auth::getInstance()->clearIdentity();
- $this->form();
- }else {
- $users = new auth_Model_Users();
- $users->getAuthAdapter();
- //$adapter = new auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter());
- $adapter = $users->getAuthAdapter();
- $adapter->setTableName($users->getTableName());
- $adapter->setIdentityColumn('username');
- $adapter->setCredentialColumn('password');
- $adapter->setIdentity($username);
- $adapter->setCredential(auth_encrypt_password($password));
- $adapter->setCredentialTreatment("? and (status = 1 or status = 2)");
- $result = $auth->authenticate($adapter);
- if ($result->isValid()) {
- $auth->getStorage()
- ->write($adapter->getResultRowObject(null, 'password'));
- Zend_Session::rememberMe();
- $this->setReferer("", true);
- $this->_redirector->gotoUrl($referer);
- } else { // or not! Back to the login page!
- switch ($result->getCode()) {
- case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
- $this->view->failureReason = $this->_translate->_('Unknown username.');
- break;
- case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
- $this->view->failureReason = $this->_translate->_('Incorrect password supplied.');
- break;
- default:
- $this->view->failureReason = $this->_translate->_('Could not authenticate properly.');
- break;
- }
- $auth->clearIdentity();
- $this->view->failedAuthentication = true;
- $this->form();
- }
- }
- }else {
- $this->form();
- }
- }
- }
Add Comment
Please, Sign In to add comment