Exemplo n.º 1
0
 /**
  * Events after the controller dispatching
  */
 public function postDispatch()
 {
     $infoProfiler = '';
     //-------------------------
     $request = $this->getRequest();
     if ($this->_breadcrumbs) {
         $this->view->breadcrumbs = $this->_breadcrumbs;
         $this->view->title = $this->_breadcrumbs->getTitle();
     }
     //Передадим признак Ajax запроса
     $this->view->isAjaxRequest = $this->_isAjaxRequest;
     //Передадим сообщения в шаблоны
     $this->view->messages = $this->_flashMessenger->getMessages();
     // Запомним время выполения цикла диспетчеризации
     $params = $request->getParams();
     foreach ($params as $key => $value) {
         if (!is_string($value)) {
             continue;
         }
         if ($infoProfiler) {
             $infoProfiler .= "{$key} = {$value}<br>";
         } else {
             $infoProfiler .= $this->Translate("Время выполнения запроса") . ":<br />{$key} = {$value}<br />";
         }
     }
     $infoProfiler .= "<br />" . $this->Translate("Равно") . " = ";
     Default_Plugin_SysBox::profilerTime2Registry($this->_startTimeDispatch, $infoProfiler);
 }
Exemplo n.º 2
0
 /**
  * Event before accessing the controller will check the availability to the user's resources
  *
  * @param Zend_Controller_Request_Abstract $request
  */
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $startTime = microtime(1);
     //Определим роль пользователя
     // Если это зарегистрированный пользователь, назначим его роль.
     // Если нет, то назначим роль по умолчанию
     if ($this->auth->hasIdentity()) {
         $identity = $this->auth->getIdentity();
         $role = $identity->user_type;
     } else {
         $role = $this->_defaultRole;
     }
     //Проверим правильность назначенной роли
     if (!$this->acl->hasRole($role)) {
         $role = $this->_defaultRole;
     }
     // Получим название ресурса (имя контроллера)
     if ($request->getModuleName()) {
         $module = $request->getModuleName();
     } else {
         $module = $this->_defaultModule;
     }
     $resource = $module . '.' . $request->getControllerName();
     // Получим название привилегии (имя действия контроллера)
     $privilege = $request->getActionName();
     // Если полученный ресурс не назначен в "ACL",
     // то установим его в NULL
     if (!$this->acl->has($resource)) {
         $resource = null;
     }
     // Проверим доспупность ресурса, запрашиваемого пользователем
     // если, доступ запрещен, то перенаправим запрос на
     // соответствующий обработчик ошибки доспупа к ресурсу
     if (!$this->acl->isAllowed($role, $resource, $privilege)) {
         $arrMessage = array();
         if ($role == $this->_defaultRole) {
             $request->setModuleName($this->_authController['module']);
             $request->setControllerName($this->_authController['controller']);
             $request->setActionName($this->_authController['action']);
             $arrMessage[] = '<em>' . Zend_Registry::get('Zend_Translate')->_('Ошибка авторизации') . '!</em>';
             $arrMessage[] = Zend_Registry::get('Zend_Translate')->_('У вас недостаточно прав на этот ресурс') . '. ' . Zend_Registry::get('Zend_Translate')->_('Пожалуйста авторизируйтесь') . '!';
             $request->setParam('message', $arrMessage);
             $request->setParam('class_message', 'warning');
             $this->iniViewSmarty('default');
         } else {
             $request->setModuleName($this->_errorController['module']);
             $request->setControllerName($this->_errorController['controller']);
             $request->setActionName($this->_errorController['action']);
             $arrMessage[] = '<em>' . Zend_Registry::get('Zend_Translate')->_('Ошибка доступа к ресурсу') . '!</em>';
             $arrMessage[] = Zend_Registry::get('Zend_Translate')->_('У вас недостаточно прав на этот ресурс') . '. ';
             $request->setParam('message', $arrMessage);
             $request->setParam('class_message', 'warning');
             $this->iniViewSmarty('default');
         }
     } else {
         $this->iniViewSmarty($module);
     }
     //-------- Установим время выполнения проверки доступа к ресурсу --------
     $infoProfiler = "";
     $infoProfiler .= "Время выполнения проверки доступа к ресурсу: ";
     Default_Plugin_SysBox::profilerTime2Registry($startTime, $infoProfiler);
 }
Exemplo n.º 3
0
 /**
  * Initialization Log, Search, KCFinder
  *
  * @return void
  */
 protected function _initLog()
 {
     $params = array();
     //------------------
     $_startTime = microtime(1);
     //Получим конфигурацию
     $config = $this->_options;
     //----- Create Zend_Log object -----
     $columnMapping = array('ts' => 'timestamp', 'msg' => 'message', 'pr' => 'priority', 'pr_name' => 'priorityName');
     $countMsg = $config['logging']['log']['max_rows'];
     $countEx = $config['logging']['exeption']['max_rows'];
     $countStat = $config['logging']['statistics']['max_rows'];
     // Get DB
     $db = Zend_Registry::get('db');
     // Set params
     $params['db'] = $db;
     $params['columnMap'] = $columnMapping;
     // Create writer for DB
     $params['table'] = 'log_msg';
     $params['max_rows'] = $countMsg;
     $writerMsg = new Default_Model_Log($params);
     $params['table'] = 'log_error';
     $params['max_rows'] = $countEx;
     $writerEx = new Default_Model_Log($params);
     $params['table'] = 'log_stat';
     $params['max_rows'] = $countStat;
     $writerStat = new Default_Model_Log($params);
     // Create logers
     $logMsg = new Zend_Log($writerMsg);
     $logEx = new Zend_Log($writerEx);
     $logStat = new Zend_Log($writerStat);
     // Adding new priorities for the $logMsg
     $logMsg->addPriority('LOGIN_OK', 8);
     $logMsg->addPriority('LOGIN_ERR', 9);
     $logMsg->addPriority('LOGOUT', 10);
     $logMsg->addPriority('REG_OK', 11);
     $logMsg->addPriority('REG_ERR', 12);
     $logMsg->addPriority('DETAILS_OK', 13);
     $logMsg->addPriority('FETCHPASS_COMPLETE_OK', 14);
     $logMsg->addPriority('FETCHPASS_COMPLETE_ERR', 15);
     $logMsg->addPriority('FETCHPASS_CONFIRM_OK', 16);
     $logMsg->addPriority('FETCHPASS_CONFIRM_ERR', 17);
     $logMsg->addPriority('MAIL_OK', 18);
     $logMsg->addPriority('MAIL_ERR', 19);
     $logMsg->addPriority('DB_SAVE_ERR', 20);
     $logMsg->addPriority('DB_DELETE_ERR', 21);
     $logMsg->addPriority('POST_EDIT', 22);
     $logMsg->addPriority('POST_SET_STATUS', 23);
     $logMsg->addPriority('ADMIN_POST_EDIT', 24);
     $logMsg->addPriority('ADMIN_ROW_UPDATE', 25);
     $logMsg->addPriority('ADMIN_ROW_INSERT', 26);
     $logMsg->addPriority('ADMIN_ROW_DELETE', 27);
     $logMsg->addPriority('MY_MSG', 28);
     // Adding new priorities for the $logStat
     $logStat->addPriority('LOGIN_OK', 8);
     $logStat->addPriority('LOGIN_ERR', 9);
     $logStat->addPriority('MAIL_OK', 10);
     $logStat->addPriority('FETCHPASS_COMPLETE_OK', 11);
     $logStat->addPriority('FETCHPASS_COMPLETE_ERR', 12);
     $logStat->addPriority('FETCHPASS_CONFIRM_OK', 13);
     $logStat->addPriority('FETCHPASS_CONFIRM_ERR', 14);
     $logStat->addPriority('POST_OPEN', 15);
     $logStat->addPriority('VIDEO_PLAY', 16);
     $logStat->addPriority('AUDIO_PLAY', 17);
     $emailParams = $config['logging']['email'];
     if ($emailParams['send']) {
         $mail = Default_Plugin_SysBox::createMail($emailParams);
         $writer = new Zend_Log_Writer_Mail($mail);
         $my_request = Default_Plugin_SysBox::getUrlRequest();
         if (!$emailParams['subject']) {
             $writer->setSubjectPrependText('Errors request - ' . $my_request);
         }
         $writer->addFilter(Zend_Log::EMERG);
         $writer->addFilter(Zend_Log::ALERT);
         $writer->addFilter(Zend_Log::CRIT);
         $writer->addFilter(Zend_Log::ERR);
         $logger->addWriter($writer);
     }
     // Save to Registry
     Zend_Registry::set("Zend_Log", $logMsg);
     Zend_Registry::set("Zend_LogEx", $logEx);
     Zend_Registry::set("Zend_LogStat", $logStat);
     // Remember in the session array of search results
     $Zend_Auth = Zend_Registry::get("Zend_Auth");
     if (!$Zend_Auth->search) {
         $Zend_Auth->search = array();
     }
     //------------ Configure default search -------------
     // Establish a query analyzer in the coding Utf8
     Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive());
     //------ Initialization file manager -------------
     Default_Plugin_SysBox::iniKCFinder();
     //---- Defining script execution time ----
     $infoProfiler = Default_Plugin_SysBox::Translate("Время выполнения") . " Bootstrap_initLog(): ";
     Default_Plugin_SysBox::profilerTime2Registry($_startTime, $infoProfiler);
 }