From a03f1f478a5f75de79ff2348461c8e9ed9872d3f Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 7 Nov 2019 10:30:37 +0100 Subject: [statistics] Modularize --- modules-available/statistics/inc/filterset.inc.php | 143 --------------------- 1 file changed, 143 deletions(-) delete mode 100644 modules-available/statistics/inc/filterset.inc.php (limited to 'modules-available/statistics/inc/filterset.inc.php') diff --git a/modules-available/statistics/inc/filterset.inc.php b/modules-available/statistics/inc/filterset.inc.php deleted file mode 100644 index 774bfd18..00000000 --- a/modules-available/statistics/inc/filterset.inc.php +++ /dev/null @@ -1,143 +0,0 @@ -filters = $filters; - } - - public function setSort($col, $direction) - { - $direction = ($direction === 'DESC' ? 'DESC' : 'ASC'); - - if (!is_string($col) || !array_key_exists($col, Page_Statistics::$columns)) { - /* default sorting column is clientip */ - $col = 'clientip'; - } - if ($col === $this->sortColumn && $direction === $this->sortDirection) - return; - $this->cache = false; - $this->sortDirection = $direction; - $this->sortColumn = $col; - } - - public function makeFragments(&$where, &$join, &$sort, &$args) - { - if ($this->cache !== false) { - $where = $this->cache['where']; - $join = $this->cache['join']; - $sort = $this->cache['sort']; - $args = $this->cache['args']; - return; - } - /* generate where clause & arguments */ - $where = ''; - $joins = []; - $sort = ""; - $args = []; - if (empty($this->filters)) { - $where = ' 1 '; - } else { - foreach ($this->filters as $filter) { - $sep = ($where != '' ? ' AND ' : ''); - $where .= $sep . $filter->whereClause($args, $joins); - } - } - $join = implode(' ', array_unique($joins)); - - $col = $this->sortColumn; - $isMapped = array_key_exists('map_sort', Page_Statistics::$columns[$col]); - $concreteCol = ($isMapped ? Page_Statistics::$columns[$col]['map_sort'] : $col) ; - - if ($concreteCol === 'clientip') { - $concreteCol = "INET_ATON(clientip)"; - } - - $sort = " ORDER BY " . $concreteCol . " " . $this->sortDirection - . ", machineuuid ASC"; - $this->cache = compact('where', 'join', 'sort', 'args'); - } - - public function isNoId44Filter() - { - $filter = $this->hasFilter('Id44Filter'); - return $filter !== false && $filter->argument == 0; - } - - public function getSortDirection() - { - return $this->sortDirection; - } - - public function getSortColumn() - { - return $this->sortColumn; - } - - public function filterNonClients() - { - if (Module::get('runmode') === false || $this->hasFilter('IsClientFilter') !== false) - return; - $this->cache = false; - // Runmode module exists, add filter - $this->filters[] = new IsClientFilter(true); - } - - /** - * @param string $type filter type (class name) - * @return false|Filter The filter, false if not found - */ - public function hasFilter($type) - { - foreach ($this->filters as $filter) { - if (get_class($filter) === $type) { - return $filter; - } - } - return false; - } - - /** - * Add a location filter based on the allowed permissions for the given permission. - * Returns false if the user doesn't have the given permission for any location. - * - * @param string $permission permission to use - * @return bool false if no permission for any location, true otherwise - */ - public function setAllowedLocationsFromPermission($permission) - { - $locs = User::getAllowedLocations($permission); - if (empty($locs)) - return false; - if (in_array(0, $locs)) { - if (!isset($this->filters['permissions'])) - return true; - unset($this->filters['permissions']); - } else { - $this->filters['permissions'] = new LocationFilter('=', $locs); - } - $this->cache = false; - return true; - } - - /** - * @return false|array - */ - public function getAllowedLocations() - { - if (isset($this->filters['permissions']->argument) && is_array($this->filters['permissions']->argument)) - return $this->filters['permissions']->argument; - return false; - } - -} -- cgit v1.2.3-55-g7522