Exemplo n.º 1
0
 public function themAction()
 {
     // TODO Auto-generated {0}::indexAction() default action
     $this->view->form = $form = new Admin_Form_BoMon_Create();
     if (!$this->getRequest()->isPost()) {
         return;
     }
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     $db = Khcn_Db_Table::getDefaultAdapter();
     $db->beginTransaction();
     try {
         $values = $form->getValues();
         $table = Khcn_Api::_()->getDbTable('bo_mon', 'default');
         $bo_mon = $table->createRow();
         $bo_mon->setFromArray($values);
         $bo_mon->save();
         $db->commit();
         $_SESSION['msg'] = 'Thành công !. Dữ liệu đã được lưu trữ .';
         $_SESSION['type_msg'] = 'success';
         $this->_redirect('/admin/bo-mon/index');
     } catch (Exception $e) {
         $db->rollBack();
         throw $e;
     }
 }
Exemplo n.º 2
0
 protected function _initDb()
 {
     $file = APPLICATION_PATH . '/settings/database.php';
     $options = (include $file);
     $db = Zend_Db::factory($options['adapter'], $options['params']);
     Khcn_Db_Table::setDefaultAdapter($db);
     Khcn_Db_Table::setTablePrefix($options['tablePrefix']);
     // Non-production
     if (APPLICATION_ENV !== 'production') {
         $db->setProfiler(array('class' => 'Zend_Db_Profiler_Firebug', 'enabled' => true));
     }
     // set DB to UTC timezone for this session
     switch ($options['adapter']) {
         case 'mysqli':
         case 'mysql':
         case 'pdo_mysql':
             $db->query("SET time_zone = '+0:00'");
             break;
         case 'postgresql':
             $db->query("SET time_zone = '+0:00'");
             break;
         default:
             // do nothing
     }
     // attempt to disable strict mode
     try {
         $db->query("SET SQL_MODE = ''");
     } catch (Exception $e) {
     }
     $profiler = new Zend_Db_Profiler_Firebug('All DB Queries');
     //$profiler->setEnabled(true);
     //$db->setProfiler($profiler);
     Zend_Registry::set('connectDB', $db);
     Zend_Registry::set('configDB', $options['params']);
     return $db;
 }
Exemplo n.º 3
0
 public function editAction()
 {
     //Checking viewer
     if (!$this->_helper->requireUser()->isValid()) {
         return;
     }
     //Get nguoi_dung
     $id = $this->_getParam('id', 0);
     $this->view->nguoi_dung = $nguoi_dung = Khcn_Api::_()->getItem('default_nguoi_dung', $id);
     $tableGV = Khcn_Api::_()->getDbTable('giang_vien', 'default');
     $this->view->form = $form = new Admin_Form_NguoiDung();
     $form->populate($nguoi_dung->toArray());
     $form->ngay_sinh->setValue(date('d-m-Y', strtotime($nguoi_dung->ngay_sinh)));
     if (!empty($nguoi_dung->giang_vien_id) && ($giang_vien = Khcn_Api::_()->getItem('default_giang_vien', $nguoi_dung->giang_vien_id))) {
         $giangViens = $tableGV->getGiangViensByDonViAssoc($giang_vien->ma_don_vi);
         $form->giang_vien_id->setMultiOptions($giangViens)->setValue($nguoi_dung->giang_vien_id);
         $form->is_giang_vien->setValue(1);
         $form->don_vi_id->setValue($giang_vien->ma_don_vi);
         $this->view->giang_vien = $giang_vien;
     }
     // Check method/valid
     if (!$this->getRequest()->isPost()) {
         return;
     }
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     $db = Khcn_Db_Table::getDefaultAdapter();
     $db->beginTransaction();
     try {
         $values = $form->getValues();
         $nguoi_dung->ho = $values['ho'];
         $nguoi_dung->ten = $values['ten'];
         $nguoi_dung->ngay_sinh = date('Y-m-d', strtotime($values['ngay_sinh']));
         if (!empty($values['is_giang_vien'])) {
             $nguoi_dung->giang_vien_id = $values['giang_vien_id'];
         } else {
             $nguoi_dung->giang_vien_id = 0;
         }
         $nguoi_dung->setTenHienThi(array('ho' => $values['ho'], 'ten' => $values['ten']));
         $nguoi_dung->save();
         $_SESSION['msg'] = 'Thành công !. Dữ liệu đã được cập nhật.';
         $_SESSION['type_msg'] = 'success';
         $db->commit();
     } catch (Exception $e) {
         $db->rollBack();
         $_SESSION['msg'] = 'Lỗi !. Đã có lỗi trong quá trình xử lý.';
         $_SESSION['type_msg'] = 'error';
         throw $e;
     }
     return $this->_forward('index', 'nguoi-dung', 'admin');
 }
Exemplo n.º 4
0
 public function indexAction()
 {
     // Already logged in
     $viewer = Khcn_Api::_()->getViewer();
     if ($viewer && $viewer->getIdentity()) {
         $this->view->status = false;
         $this->view->error = Zend_Registry::get('Zend_Translate')->_('Bạn đã đăng nhập.');
         $this->_helper->redirector->gotoRoute(array(), 'default', true);
         return;
     }
     // Make form
     $this->view->form = $form = new Default_Form_Login();
     $form->setAction($this->view->url(array('return_url' => null)));
     $form->populate(array('return_url' => $this->_getParam('return_url')));
     // Not a post
     if (!$this->getRequest()->isPost()) {
         $this->view->status = false;
         $this->view->error = Zend_Registry::get('Zend_Translate')->_('No action taken');
         return;
     }
     // Form not valid
     if (!$form->isValid($this->getRequest()->getPost())) {
         $this->view->status = false;
         $this->view->error = Zend_Registry::get('Zend_Translate')->_('Invalid data');
         return;
     }
     // Check login creds
     extract($form->getValues());
     // $Username, $Password, $Remember
     $userTable = Khcn_Api::_()->getItemTable('default_nguoi_dung');
     $userSelect = $userTable->select()->where('ten_dang_nhap = ?', $Username);
     // If post exists
     $user = $userTable->fetchRow($userSelect);
     // Get ip address
     $db = Khcn_Db_Table::getDefaultAdapter();
     // Check if user exists
     if (empty($user)) {
         $this->view->status = false;
         $this->view->error = Zend_Registry::get('Zend_Translate')->_('Tên đăng nhập hoặc mật khẩu không đúng.');
         $form->addError(Zend_Registry::get('Zend_Translate')->_('Tên đăng nhập hoặc mật khẩu không đúng.'));
         return;
     }
     // Check if user is verified and enabled
     if (!$user->enabled) {
         if (!$user->verified) {
             $this->view->status = false;
             $translate = Zend_Registry::get('Zend_Translate');
             $error = $translate->translate('Vui lòng kích hoạt tài khoản thông qua email.');
             $form->getDecorator('errors')->setOption('escape', false);
             $form->addError($error);
             return;
         } else {
             if (!$user->approved) {
                 $this->view->status = false;
                 $translate = Zend_Registry::get('Zend_Translate');
                 $error = $translate->translate('Tài khoản của bạn cần được kích hoạt bởi admin.');
                 $form->getDecorator('errors')->setOption('escape', false);
                 $form->addError($error);
                 return;
             }
         }
         // Should be handled by hooks or payment
         //return;
     }
     // Version 3 Import compatibility
     if (empty($user->mat_khau)) {
         $form->addError('Mật khẩu không hợp lệ. Vui lòng reset lại mật khẩu.');
         return;
     } else {
         $authResult = Khcn_Api::_()->authenticate($Username, $Password);
         $authCode = $authResult->getCode();
         Khcn_Api::_()->setViewer();
         if ($authCode != Zend_Auth_Result::SUCCESS) {
             $this->view->status = false;
             $this->view->error = Zend_Registry::get('Zend_Translate')->_('Tên đăng nhập hoặc mật khẩu không đúng.');
             $form->addError(Zend_Registry::get('Zend_Translate')->_('Tên đăng nhập hoặc mật khẩu không đúng.'));
             return;
         }
     }
     // -- Success! --
     // Remember
     if (!empty($Remember)) {
         $lifetime = 1209600;
         // Two weeks
         Zend_Session::getSaveHandler()->setLifetime($lifetime, true);
         Zend_Session::rememberMe($lifetime);
     }
     // Test activity @todo remove
     $viewer = Khcn_Api::_()->getViewer();
     if ($viewer && $viewer->getIdentity()) {
         $viewer->lan_dang_nhap_cuoi = date("Y-m-d H:i:s");
         $viewer->save();
     }
     // Assign sid to view for json context
     $this->view->status = true;
     $this->view->message = Zend_Registry::get('Zend_Translate')->_('Đăng nhập thành công');
     $this->view->sid = Zend_Session::getId();
     $this->view->sname = Zend_Session::getOptions('name');
     // Do redirection only if normal context
     // Redirect by form
     $uri = $form->getValue('return_url');
     if ($uri) {
         if (substr($uri, 0, 3) == '64-') {
             $uri = base64_decode(substr($uri, 3));
         }
         return $this->_redirect($uri, array('prependBase' => false));
     }
     // Redirect by session
     $session = new Zend_Session_Namespace('Redirect');
     if (isset($session->uri)) {
         $uri = $session->uri;
         $opts = $session->options;
         $session->unsetAll();
         return $this->_redirect($uri, $opts);
     } else {
         if (isset($session->route)) {
             $session->unsetAll();
             return $this->_helper->redirector->gotoRoute($session->params, $session->route, $session->reset);
         }
     }
     // Just redirect to home
     return $this->_helper->redirector->gotoRoute(array(), null, true);
 }
Exemplo n.º 5
0
 /**
  * Set the table name prefix
  * 
  * @param string $prefix
  */
 public static function setTablePrefix($prefix)
 {
     self::$_tablePrefix = $prefix;
 }
Exemplo n.º 6
0
 /**
  * Get the authentication adapter
  *
  * @return Zend_Auth_Adapter_Interface
  */
 public function getAuthAdapter()
 {
     if (null === $this->_authAdapter) {
         $db = Khcn_Db_Table::getDefaultAdapter();
         $tablePrefix = Khcn_Db_Table::getTablePrefix();
         $this->_authAdapter = new Zend_Auth_Adapter_DbTable($db, Khcn_Api::_()->getItemTable('default_nguoi_dung')->info('name'), 'id', 'mat_khau');
     }
     return $this->_authAdapter;
 }