config = new AauthConfig(); $this->DBGroup = $this->config->dbProfile; $this->table = $this->config->dbTableUserSessions; $this->tempReturnType = $this->returnType; if ($db instanceof ConnectionInterface) { $this->db = & $db; } else { $this->db = Database::connect($this->DBGroup); } } /** * Find all active user sessions * * @param integer $userId User id * @param boolean $system Whether system variable * * @return object */ public function findAll() { $builder = $this->builder(); $builder->where('timestamp >', strtotime('-' . $this->config->userActiveTime)); $builder->where("data NOT LIKE CONCAT('%', timestamp, '%')"); $builder->like('data', 'user|'); $this->tempReturnType = $this->returnType; return $builder->get()->getResult($this->tempReturnType); } /** * Delete User Session * * @param integer $id Session id * * @return boolean */ public function delete($id) { $builder = $this->builder(); $builder->where('id', $id); $builder->delete(); return true; } //-------------------------------------------------------------------- // Utility //-------------------------------------------------------------------- /** * Provides a shared instance of the Query Builder. * * @param string $table Table name * * @return BaseBuilder */ protected function builder(string $table = null) { if ($this->builder instanceof BaseBuilder) { return $this->builder; } $table = empty($table) ? $this->table : $table; $this->builder = $this->db->table($table); return $this->builder; } /** * Provides direct access to method in the builder (if available) * and the database connection. * * @param string $name Name * @param array $params Params * * @return Model|null */ public function __call(string $name, array $params) { $result = null; if (method_exists($this->db, $name)) { $result = $this->db->$name(...$params); } elseif (method_exists($builder = $this->builder(), $name)) { $result = $builder->$name(...$params); } // Don't return the builder object unless specifically requested //, since that will interrupt the usability flow // and break intermingling of model and builder methods. if ($name !== 'builder' && empty($result)) { return $result; } if ($name !== 'builder' && ! $result instanceof BaseBuilder) { return $result; } return $this; } }