public function pjActionLogin()
 {
     $this->setLayout('pjActionAdminLogin');
     if (isset($_POST['login_user'])) {
         if (!isset($_POST['login_email']) || !isset($_POST['login_password']) || !pjValidation::pjActionNotEmpty($_POST['login_email']) || !pjValidation::pjActionNotEmpty($_POST['login_password']) || !pjValidation::pjActionEmail($_POST['login_email'])) {
             pjUtil::redirect($_SERVER['PHP_SELF'] . "?controller=pjAdmin&action=pjActionLogin&err=4");
         }
         $pjUserModel = pjUserModel::factory();
         $user = $pjUserModel->where('t1.email', $_POST['login_email'])->where(sprintf("t1.password = AES_ENCRYPT('%s', '%s')", pjObject::escapeString($_POST['login_password']), PJ_SALT))->limit(1)->findAll()->getData();
         if (count($user) != 1) {
             pjUtil::redirect($_SERVER['PHP_SELF'] . "?controller=pjAdmin&action=pjActionLogin&err=1");
         } else {
             $user = $user[0];
             unset($user['password']);
             if (!in_array($user['role_id'], array(1, 2, 3))) {
                 pjUtil::redirect($_SERVER['PHP_SELF'] . "?controller=pjAdmin&action=pjActionLogin&err=2");
             }
             if ($user['role_id'] == 3 && $user['is_active'] == 'F') {
                 pjUtil::redirect($_SERVER['PHP_SELF'] . "?controller=pjAdmin&action=pjActionLogin&err=2");
             }
             if ($user['status'] != 'T') {
                 pjUtil::redirect($_SERVER['PHP_SELF'] . "?controller=pjAdmin&action=pjActionLogin&err=3");
             }
             $last_login = date("Y-m-d H:i:s");
             $_SESSION[$this->defaultUser] = $user;
             $data = array();
             $data['last_login'] = $last_login;
             $pjUserModel->reset()->setAttributes(array('id' => $user['id']))->modify($data);
             if ($this->isAdmin() || $this->isEditor()) {
                 //Let's check get data from clover.
                 if (array_key_exists('cloverData', $_SESSION)) {
                     pjUtil::redirect($_SERVER['PHP_SELF'] . "?controller=pjAdminSignUp&action=pjActionMain&case=login");
                 }
                 pjUtil::redirect($_SERVER['PHP_SELF'] . "?controller=pjAdmin&action=pjActionIndex");
             }
         }
     } else {
         $this->appendJs('jquery.validate.min.js', PJ_THIRD_PARTY_PATH . 'validate/');
         $this->appendJs('pjAdmin.js');
     }
 }
 public function pjActionStep5()
 {
     self::pjActionCheckConfig();
     $this->pjActionCheckSession();
     if (isset($_POST['step4'])) {
         $_POST = array_map('trim', $_POST);
         if (!isset($_POST['admin_email']) || !isset($_POST['admin_password']) || !pjValidation::pjActionNotEmpty($_POST['admin_email']) || !pjValidation::pjActionEmail($_POST['admin_email']) || !pjValidation::pjActionNotEmpty($_POST['admin_password'])) {
             $time = time();
             $_SESSION[$this->defaultErrors][$time] = "E-Mail and Password are required and can't be empty.";
             pjUtil::redirect($_SERVER['PHP_SELF'] . "?controller=pjInstaller&action=pjActionStep4&install=1&err=" . $time);
         } else {
             $_POST = pjSanitize::clean($_POST, array('encode' => false));
             $_SESSION[$this->defaultInstaller] = array_merge($_SESSION[$this->defaultInstaller], $_POST);
         }
     }
     if (!isset($_SESSION[$this->defaultInstaller]['step4'])) {
         pjUtil::redirect($_SERVER['PHP_SELF'] . "?controller=pjInstaller&action=pjActionStep4&install=1");
     }
     $this->appendJs('jquery.validate.min.js', $this->getConst('PLUGIN_LIBS_PATH'));
     $this->appendJs('pjInstaller.js', $this->getConst('PLUGIN_JS_PATH'));
 }