예제 #1
0
 protected function doSearch(PostArrayAdapter $params)
 {
     /*
      * Параметры
      */
     $process = $params->int('process');
     $action = $params->int('action');
     $actionParent = $params->int('parent_action');
     $dateFrom = $params->int('date_from');
     $dateTo = $params->int('date_to');
     /*
      * Запрос
      */
     $what[] = 'id_rec';
     $what[] = 'concat(ifnull(id_user, ""), concat("/", id_user_authed)) as user_authed';
     $what[] = 'dt_event';
     $what[] = 'n_action';
     $what[] = 'v_data';
     $what[] = 'b_encoded';
     $where['id_process'] = $process;
     if ($actionParent) {
         $where['id_rec_parent'] = $actionParent;
     }
     if ($action) {
         $where['n_action'] = $action;
     }
     if ($dateFrom) {
         $where[] = Query::assocParam('dt_event', $dateFrom, true, '>=');
     }
     if ($dateTo) {
         $where[] = Query::assocParam('dt_event', $dateTo, true, '<=');
     }
     $order = 'dt_event asc, id_rec asc';
     $limit = 500;
     /*
      * Работа с данными
      */
     $query = Query::select($what, 'ps_audit', $where, null, $order, $limit);
     $result = PSDB::getArray($query);
     foreach ($result as &$row) {
         //Декодируем действие
         $row['n_action'] = BaseAudit::getByCode($process)->decodeAction($row['n_action'], false);
         //Декодируем данные
         $encoded = 1 * $row['b_encoded'];
         if ($encoded) {
             $row['v_data'] = print_r(BaseAudit::decodeData($row['v_data']), true);
         }
         unset($row['b_encoded']);
     }
     $results = new SearchResults($result, $query);
     $results->addSetting('v_data', SearchResults::COL_PRE);
     $results->addSetting('n_action', SearchResults::COL_NOWRAP);
     return $results;
 }
예제 #2
0
 /**
  * метод загружает кол-во записей для каждого аудита
  */
 public static function getAuditStatistic($dateTo)
 {
     $RESULT = array();
     $statistic = AdminAuditBean::inst()->getProcessStatistic($dateTo);
     /* @var $audit BaseAudit */
     foreach (BaseAudit::getAll() as $code => $audit) {
         foreach ($audit->getActions() as $actionName => $actionCode) {
             $RESULT[] = array('name' => $audit->getClass(), 'action' => "{$actionName} ({$actionCode})", 'cnt' => array_get_value_in(array($code, $actionCode), $statistic));
         }
     }
     return $RESULT;
 }
예제 #3
0
파일: MailAudit.php 프로젝트: ilivanoff/www
 /** @return MailAudit */
 public static function inst()
 {
     return parent::inst();
 }
예제 #4
0
 public function getPeer()
 {
     if (self::$peer === null) {
         self::$peer = new AuditPeer();
     }
     return self::$peer;
 }
예제 #5
0
파일: BaseAudit.php 프로젝트: ilivanoff/www
 public static final function getAll()
 {
     if (!is_array(self::$insts)) {
         //Только админ может загружать все аудиты
         AuthManager::checkAdminAccess();
         //Инициализируем коллекцию
         self::$insts = array();
         foreach (Classes::getDirClassNames(__DIR__, 'impl', __CLASS__) as $className) {
             $inst = $className::inst();
             self::$insts[$inst->getProcessCode()] = $inst;
         }
         ksort(self::$insts);
     }
     return self::$insts;
 }