Ejemplo n.º 1
0
 /**
  * revalidates the given user
  * 
  * @return bool  
  */
 public static function revalidate()
 {
     $user = vkNgine_Auth::getIdentity();
     if ($user['type'] == 'STANDARD') {
         return vkNgine_Public_Auth::revalidate();
     } else {
         if ($user['type'] == 'ADMIN') {
             return vkNgine_Admin_Auth::revalidate();
         } else {
             return false;
         }
     }
 }
 public function init()
 {
     $helper = new vkNgine_View_Helper_AdminUrl();
     $this->view->registerHelper($helper, 'adminUrl');
     $helper = new vkNgine_View_Helper_Dateformat();
     $this->view->registerHelper($helper, 'dateFormat');
     $helper = new vkNgine_View_Helper_FormDate();
     $this->view->registerHelper($helper, 'formDate');
     $helper = new vkNgine_View_Helper_Phoneformat();
     $this->view->registerHelper($helper, 'phoneFormat');
     $helper = new vkNgine_View_Helper_Breadcrumb();
     $this->view->registerHelper($helper, 'breadcrumb');
     $helper = new vkNgine_View_Helper_Plural();
     $this->view->registerHelper($helper, 'plural');
     $view = Zend_Registry::get('view');
     $vkNgineVersion = vkNgine_Version::VERSION;
     $appTitle = sprintf(Zend_Registry::get('t')->_('%s Administrator Control Panel'), 'vkNgine' . $vkNgineVersion[0]);
     $this->view->appTitle = $appTitle;
     $view->headTitle($appTitle, Zend_View_Helper_Placeholder_Container_Abstract::SET);
     if (!vkNgine_Auth::isAuthenticated()) {
         $this->_redirect('/admin/auth/login');
         exit;
     }
     $user = vkNgine_Admin_Auth::revalidate();
     if (!$user) {
         $this->_redirect('/admin/auth/login');
         exit;
     }
     Zend_Registry::set('user', $user);
     $this->view->assign('user', $user);
     $this->user = Zend_Registry::get('user');
     $this->config = vkNgine_Config::getSystemConfig();
     $modelTrafficLogins = new vkNgine_Log_Logins();
     $lastLoggedInInfo = $modelTrafficLogins->fetchLastLoggedInInfo($this->user);
     $this->view->assign('lastLoggedInInfo', $lastLoggedInInfo);
     $this->view->action = array('controller' => $this->_request->controller, 'action' => $this->_request->action);
     $acl = new vkNgine_Admin_Acl();
     $this->acl = $acl;
     Zend_Registry::set('acl', $acl);
     $this->view->t = Zend_Registry::get('t');
     $this->t = Zend_Registry::get('t');
     parent::init();
 }
 public function loginAction()
 {
     if (vkNgine_Auth::isAuthenticated()) {
         $this->_redirect('/admin');
         exit;
     }
     $view = Zend_Registry::get('view');
     $view->headTitle('Administrator Login');
     $loginForm = $this->getAdminLoginForm();
     $recoverForm = $this->getAdminRecoverForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $email = $this->_getParam('email');
         $password = $this->_getParam('password');
         $remember = $this->_getParam('remember');
         $hash = new Zend_Session_Namespace('CsrfError');
         if ($hash->message) {
             echo Zend_Json::encode(array('title' => $this->t->_('Error Message'), 'message' => $this->t->_($hash->message), 'icon' => 'error'));
             exit;
         } else {
             if ($loginForm->isValid($request->getPost())) {
                 if (!empty($email) && !empty($password)) {
                     $info = array('email' => $email, 'password' => $password, 'remember' => $remember);
                     if (vkNgine_Admin_Auth::attemptLogin($info)) {
                         $this->user = vkNgine_Admin_Auth::revalidate();
                         if (isset($info['remember']) and $info['remember']) {
                             $config = vkNgine_Config::getSystemConfig();
                             if (isset($config->settings->login->remember)) {
                                 $rememberMeHowLong = $config->settings->login->remember;
                             } else {
                                 $rememberMeHowLong = 60 * 60 * 24 * 14;
                                 // 14 days
                             }
                             Zend_Session::rememberMe($rememberMeHowLong);
                         } else {
                             Zend_Session::forgetMe();
                         }
                         $logger = Zend_Registry::get('logger');
                         $logger->log('ADMIN_LOGIN_REQUEST', print_r($info, true), vkNgine_Log::INFO, $this->user['userId']);
                         $modelTrafficLogins = new vkNgine_Log_Logins();
                         $modelTrafficLogins->insertTrafficLogin($this->user['userId'], 'ADMIN');
                         $modelTrafficActivity = new vkNgine_Log_Activity();
                         $modelTrafficActivity->processActivity($this->user, $request, 'Logged in to Admin Panel');
                         $modelUsers = new Admin_Model_Users();
                         $modelUsers->update($this->user['userId'], array('lastLogin' => date('Y-m-d H:i:s')));
                         echo Zend_Json::encode(array('success' => 1, 'title' => $this->t->_('Success Message'), 'message' => $this->t->_('Logged in Successfully'), 'icon' => 'success', 'href' => '/admin'));
                         exit;
                     } else {
                         echo Zend_Json::encode(array('title' => $this->t->_('Error Message'), 'message' => $this->t->_('Invalid Login or Password!'), 'icon' => 'error'));
                         exit;
                     }
                 } else {
                     echo Zend_Json::encode(array('title' => $this->t->_('Error Message'), 'message' => $this->t->_('Username or Password is Invalid!'), 'icon' => 'error'));
                     exit;
                 }
             } else {
                 echo Zend_Json::encode(array('title' => $this->t->_('Error Message'), 'message' => $this->t->_('Username or Password is Invalid!'), 'icon' => 'error'));
                 exit;
             }
         }
     }
     $this->view->loginForm = $loginForm;
     $this->view->recoverForm = $recoverForm;
 }