403Webshell
Server IP : 208.122.213.31  /  Your IP : 216.73.216.45
Web Server : Apache
System : Linux msd6191.mjhst.com 4.18.0-553.137.1.el8_10.x86_64 #1 SMP Wed Jun 24 11:40:24 UTC 2026 x86_64
User : WHMCS_MIA_382 ( 1001)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/self/cwd/wp-content/plugins/age-gate/src/Admin/Controller/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/cwd/wp-content/plugins/age-gate/src/Admin/Controller/AccessController.php
<?php

namespace AgeGate\Admin\Controller;

use Asylum\Utility\Arr;
use Asylum\Utility\Notice;
use Asylum\Validation\Validator;
use AgeGate\Common\Admin\AbstractController;
use AgeGate\Common\Immutable\Constants as Immutable;

class AccessController extends AbstractController
{
    // const PERMISSION = Constants::RESTRICTIONS;
    public const PERMISSION = Immutable::ACCESS;
    public const OPTION = Immutable::OPTION_ACCESS;

    protected $template = 'access';

    public function register(): void
    {
        $this->menu(__('Access', 'age-gate'), self::PERMISSION);
    }

    protected function required(): bool
    {
        return current_user_can(self::PERMISSION);
    }

    protected function data(): array
    {
        global $wp_roles;

        return [
            'roles' => $wp_roles->roles ?? [],
            'sections' => Immutable::AGE_GATE_PERMISSION_ARRAY,
        ];
    }

    public function store()
    {

        // check nonce & permission
        if (!wp_verify_nonce(sanitize_key($_POST['_wpnonce'] ?? ''), 'age_gate_access') || !current_user_can(static::PERMISSION)) {
            wp_die('Disallowed action');
        }

        global $wp_roles;

        $validation = new Validator;
        $data = $validation->sanitize($_POST);

        if (Validator::is_valid($data['ag_settings'] ?? [], $this->rules()) !== true) {
            Notice::add(__('Invalid form data', 'age-gate'));
            $this->redirect($data['_wp_http_referer'], 0);
            exit;
        }

        $set = array_fill_keys(array_keys(Immutable::AGE_GATE_PERMISSION_ARRAY), []);

        $distribution = array_merge($set, $data['ag_settings'] ?? []);

        foreach ($distribution as $cap => $roles) {
            foreach ($wp_roles->roles as $key => $role) {
                if ($key === 'administrator') {
                    continue;
                }

                $role = get_role($key);

                $capability = Immutable::AGE_GATE_PERMISSION_ARRAY[$cap];

                if (array_key_exists($key, $roles)) {
                    if (!$role->has_cap($capability)) {
                        $role->add_cap($capability);
                    }
                } else {
                    if ($role->has_cap($capability)) {
                        $role->remove_cap($capability);
                    }
                }
            }
        }

        // set all on admin anyway
        $admin = get_role('administrator');

        foreach (Immutable::AGE_GATE_PERMISSION_ARRAY as $cap) {
            if (!$admin->has_cap($cap)) {
                $admin->add_cap($cap);
            }
        }

        $this->redirect($data['_wp_http_referer']);
    }

    protected function fields(): array
    {
        return [];
    }

    protected function rules() : array
    {

        $validation = new Validator;
        $data = $validation->sanitize($_POST); // phpcs:ignore WordPress.Security.NonceVerification.Missing
        return array_fill_keys(array_keys(Arr::dot($data['ag_settings'] ?? [])), 'boolean');
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit