Файловый менеджер - Редактировать - /var/www/xthruster/html/wp-content/uploads/flags/role-manager.tar
Назад
role-manager-menu-item.php 0000644 00000001527 14721604261 0011534 0 ustar 00 <?php namespace Elementor\Core\RoleManager; use Elementor\Core\Admin\Menu\Interfaces\Admin_Menu_Item_With_Page; use Elementor\Settings; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Role_Manager_Menu_Item implements Admin_Menu_Item_With_Page { private $role_manager; public function __construct( Role_Manager $role_manager ) { $this->role_manager = $role_manager; } public function is_visible() { return true; } public function get_parent_slug() { return Settings::PAGE_ID; } public function get_label() { return esc_html__( 'Role Manager', 'elementor' ); } public function get_page_title() { return esc_html__( 'Role Manager', 'elementor' ); } public function get_capability() { return 'manage_options'; } public function render() { $this->role_manager->display_settings_page(); } } role-manager.php 0000644 00000024011 14721604261 0007627 0 ustar 00 <?php namespace Elementor\Core\RoleManager; use Elementor\Core\Admin\Menu\Admin_Menu_Manager; use Elementor\Core\Utils\Promotions\Filtered_Promotions_Manager; use Elementor\Plugin; use Elementor\Settings; use Elementor\Settings_Page; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Role_Manager extends Settings_Page { const PAGE_ID = 'elementor-role-manager'; const ROLE_MANAGER_OPTION_NAME = 'exclude_user_roles'; const ROLE_MANAGER_ADVANCED = 'role-manager'; private static $advanced_options = []; /** * @since 2.0.0 * @access public */ public function get_role_manager_options() { return get_option( 'elementor_' . self::ROLE_MANAGER_OPTION_NAME, [] ); } public function get_role_manager_advanced_options() { return get_option( 'elementor_' . self::ROLE_MANAGER_ADVANCED, [] ); } public function get_user_advanced_options() { if ( ! empty( static::$advanced_options ) ) { return static::$advanced_options; } static::$advanced_options = $this->get_role_manager_advanced_options(); return static::$advanced_options; } /** * @since 2.0.0 * @access protected */ protected function get_page_title() { return esc_html__( 'Role Manager', 'elementor' ); } /** * @since 2.0.0 * @access public */ public function register_admin_menu( Admin_Menu_Manager $admin_menu ) { $admin_menu->register( static::PAGE_ID, new Role_Manager_Menu_Item( $this ) ); } /** * @since 2.0.0 * @access protected */ protected function create_tabs() { $validation_class = 'Elementor\Settings_Validations'; return [ 'general' => [ 'label' => esc_html__( 'General', 'elementor' ), 'sections' => [ 'tools' => [ 'fields' => [ 'exclude_user_roles' => [ 'label' => esc_html__( 'Exclude Roles', 'elementor' ), 'field_args' => [ 'type' => 'checkbox_list_roles', 'exclude' => [ 'super_admin', 'administrator' ], ], 'setting_args' => [ 'sanitize_callback' => [ $validation_class, 'checkbox_list' ], ], ], self::ROLE_MANAGER_ADVANCED => [ 'field_args' => [ 'type' => 'raw_html', 'html' => '', ], 'setting_args' => [ 'sanitize_callback' => [ $this, 'save_advanced_options' ], ], ], ], ], ], ], ]; } public function save_advanced_options( $input ) { return $input; } /** * @since 2.0.0 * @access public */ public function display_settings_page() { $this->get_tabs(); ?> <div class="wrap"> <h1 class="wp-heading-inline"><?php echo esc_html( $this->get_page_title() ); ?></h1> <div id="elementor-role-manager"> <h3><?php echo esc_html__( 'Manage What Your Users Can Edit In Elementor', 'elementor' ); ?></h3> <form id="elementor-settings-form" method="post" action="options.php"> <?php settings_fields( static::PAGE_ID ); echo '<div class="elementor-settings-form-page elementor-active">'; foreach ( get_editable_roles() as $role_slug => $role_data ) { if ( 'administrator' === $role_slug ) { continue; } $this->display_role_controls( $role_slug, $role_data ); } submit_button(); ?> </form> </div> </div><!-- /.wrap --> <?php } /** * @since 2.0.0 * @access private * * @param string $role_slug The role slug. * @param array $role_data An array with role data. */ private function display_role_controls( $role_slug, $role_data ) { static $excluded_options = false; if ( false === $excluded_options ) { $excluded_options = $this->get_role_manager_options(); } ?> <div class="elementor-role-row <?php echo esc_attr( $role_slug ); ?>"> <div class="elementor-role-label"> <span class="elementor-role-name"><?php echo esc_html( translate_user_role( $role_data['name'] ) ); ?></span> <span data-excluded-label="<?php esc_attr_e( 'Role Excluded', 'elementor' ); ?>" class="elementor-role-excluded-indicator"></span> <span class="elementor-role-toggle"><span class="dashicons dashicons-arrow-down"></span></span> </div> <div class="elementor-role-controls hidden"> <div class="elementor-role-control"> <label> <input type="checkbox" name="elementor_exclude_user_roles[]" value="<?php echo esc_attr( $role_slug ); ?>"<?php checked( in_array( $role_slug, $excluded_options, true ), true ); ?>> <?php echo esc_html__( 'No access to editor', 'elementor' ); ?> </label> </div> <div class="elementor-role-controls-advanced"> <?php /** * Role restrictions controls. * * Fires after the role manager checkbox that allows the user to * exclude the role. * * This filter allows developers to add custom controls to the role * manager. * * @since 2.0.0 * * @param string $role_slug The role slug. * @param array $role_data An array with role data. */ do_action( 'elementor/role/restrictions/controls', $role_slug, $role_data ); ?> </div> </div> </div> <?php } public function add_json_enable_control( $role_slug ) { $value = 'json-upload'; $id = self::ROLE_MANAGER_ADVANCED . '_' . $role_slug . '_' . $value; $name = 'elementor_' . self::ROLE_MANAGER_ADVANCED . '[' . $role_slug . '][]'; $advanced_options = $this->get_user_advanced_options(); $checked = isset( $advanced_options[ $role_slug ] ) ? $advanced_options[ $role_slug ] : []; ?> <div class="elementor-role-control"> <label for="<?php echo esc_attr( $id ); ?>"> <input type="checkbox" name="<?php echo esc_attr( $name ); ?>" id="<?php echo esc_attr( $id ); ?>" value="<?php echo esc_attr( $value ); ?>" <?php checked( in_array( $value, $checked ), true ); ?>> <?php echo esc_html__( 'Enable the option to upload JSON files', 'elementor' ); ?> </label> <p class="elementor-role-control-warning"><strong><?php echo esc_html__( 'Heads up', 'elementor' ); ?>:</strong> <?php echo esc_html__( 'Giving broad access to upload JSON files can pose a security risk to your website because such files may contain malicious scripts, etc.', 'elementor' ); ?></p> </div> <?php } public function add_custom_html_enable_control( $role_slug ) { $value = 'custom-html'; $id = self::ROLE_MANAGER_ADVANCED . '_' . $role_slug . '_' . $value; $name = 'elementor_' . self::ROLE_MANAGER_ADVANCED . '[' . $role_slug . '][]'; $advanced_options = $this->get_user_advanced_options(); $checked = isset( $advanced_options[ $role_slug ] ) ? $advanced_options[ $role_slug ] : []; ?> <div class="elementor-role-control"> <label for="<?php echo esc_attr( $id ); ?>"> <input type="checkbox" name="<?php echo esc_attr( $name ); ?>" id="<?php echo esc_attr( $id ); ?>" value="<?php echo esc_attr( $value ); ?>" <?php checked( in_array( $value, $checked ), true ); ?>> <?php echo esc_html__( 'Enable the option to use the HTML widget', 'elementor' ); ?> </label> <p class="elementor-role-control-warning"><strong><?php echo esc_html__( 'Heads up', 'elementor' ); ?>:</strong> <?php echo esc_html__( 'Giving broad access to edit the HTML widget can pose a security risk to your website because it enables users to run malicious scripts, etc.', 'elementor' ); ?></p> </div> <?php } /** * @since 2.0.0 * @access public */ public function get_go_pro_link_html() { $promotion = $this->get_go_pro_link_content(); ?> <div class="elementor-role-go-pro"> <div class="elementor-role-go-pro__desc"><?php echo esc_html( $promotion['description'] ); ?></div> <div class="elementor-role-go-pro__link"><a class="elementor-button go-pro" target="_blank" href="<?php echo esc_url( $promotion['upgrade_url'] ); ?>"><?php echo esc_html( $promotion['upgrade_text'] ); ?></a></div> </div> <?php } public function get_go_pro_link_content() { $upgrade_url = 'https://go.elementor.com/go-pro-role-manager/'; $promotion = [ 'description' => esc_html__( 'Want to give access only to content?', 'elementor' ), 'upgrade_url' => esc_url( $upgrade_url ), 'upgrade_text' => esc_html__( 'Upgrade', 'elementor' ), ]; return Filtered_Promotions_Manager::get_filtered_promotion_data( $promotion, 'elementor/role/custom_promotion', 'upgrade_url' ); } /** * @since 2.0.0 * @access public */ public function get_user_restrictions_array() { $user = wp_get_current_user(); $user_roles = $user->roles; $options = $this->get_user_restrictions(); $restrictions = []; if ( empty( $options ) ) { return $restrictions; } foreach ( $user_roles as $role ) { if ( ! isset( $options[ $role ] ) ) { continue; } $restrictions = array_merge( $restrictions, $options[ $role ] ); } return array_unique( $restrictions ); } /** * @since 2.0.0 * @access private */ private function get_user_restrictions() { static $restrictions = false; if ( ! $restrictions ) { $restrictions = []; /** * Editor user restrictions. * * Filters the user restrictions in the editor. * * @since 2.0.0 * * @param array $restrictions User restrictions. */ $restrictions = apply_filters( 'elementor/editor/user/restrictions', $restrictions ); } return $restrictions; } /** * @since 2.0.0 * @access public * * @param $capability * * @return bool */ public function user_can( $capability ) { $options = $this->get_user_restrictions_array(); if ( in_array( $capability, $options, true ) ) { return false; } return true; } /** * @since 2.0.0 * @access public */ public function __construct() { parent::__construct(); add_action( 'elementor/admin/menu/register', function ( Admin_Menu_Manager $admin_menu ) { $this->register_admin_menu( $admin_menu ); }, Settings::ADMIN_MENU_PRIORITY + 10 ); add_action( 'elementor/role/restrictions/controls', [ $this, 'add_json_enable_control' ] ); add_action( 'elementor/role/restrictions/controls', [ $this, 'add_custom_html_enable_control' ] ); add_action( 'elementor/role/restrictions/controls', [ $this, 'get_go_pro_link_html' ] ); add_filter( 'elementor/editor/user/restrictions', [ $this, 'get_role_manager_advanced_options' ] ); } } module.php 0000644 00000010065 14721647265 0006562 0 ustar 00 <?php namespace ElementorPro\Modules\RoleManager; use ElementorPro\Plugin; use ElementorPro\License\API; use ElementorPro\Base\Module_Base; use Elementor\Core\RoleManager\Role_Manager as RoleManagerBase; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } class Module extends Module_Base { const ROLE_MANAGER_OPTION_NAME = 'role-manager'; public function get_role_manager_options() { return get_option( 'elementor_' . self::ROLE_MANAGER_OPTION_NAME, [] ); } public function get_name() { return 'role-manager'; } public function save_advanced_options( $input ) { return $input; } public function get_user_restrictions() { return $this->get_role_manager_options(); } public function display_role_controls( $role_slug, $role_data ) { static $options = false; if ( ! API::is_license_active() || ! API::is_licence_has_feature( static::ROLE_MANAGER_OPTION_NAME, API::BC_VALIDATION_CALLBACK ) ) { // Promotions for PRO when the license not active. $this->print_role_controls_promotion(); return; } if ( ! $options ) { $options = [ 'excluded_options' => Plugin::elementor()->role_manager->get_role_manager_options(), 'advanced_options' => $this->get_role_manager_options(), ]; } $id = self::ROLE_MANAGER_OPTION_NAME . '_' . $role_slug . '_design'; $name = 'elementor_' . self::ROLE_MANAGER_OPTION_NAME . '[' . $role_slug . '][]'; $checked = isset( $options['advanced_options'][ $role_slug ] ) ? $options['advanced_options'][ $role_slug ] : []; ?> <label for="<?php echo esc_attr( $id ); ?>"> <input type="checkbox" name="<?php echo esc_attr( $name ); ?>" id="<?php echo esc_attr( $id ); ?>" value="design" <?php checked( in_array( 'design', $checked ), true ); ?>> <?php esc_html_e( 'Access to edit content only', 'elementor-pro' ); ?> </label> <?php } public function register_admin_fields( RoleManagerBase $role_manager ) { $role_manager->add_section( 'general', 'advanced-role-manager', [ 'fields' => [ self::ROLE_MANAGER_OPTION_NAME => [ 'field_args' => [ 'type' => 'raw_html', 'html' => '', ], 'setting_args' => [ 'sanitize_callback' => [ $this, 'save_advanced_options' ], ], ], ], ] ); } private function print_role_controls_promotion() { ?> <div class="elementor-role-go-pro"> <div class="elementor-role-go-pro__desc"> <?php echo esc_html__( 'Want to give access only to content?', 'elementor-pro' ); ?> </div> <div class="elementor-role-go-pro__link "> <a class="elementor-button go-pro" target="_blank" href="<?php echo esc_url( $this->get_cta_url() ); ?>" > <?php echo esc_html( $this->get_cta_label() ); ?> </a> </div> </div> <?php } private function get_cta_label() { if ( ! API::active_licence_has_feature( static::ROLE_MANAGER_OPTION_NAME ) ) { return esc_html__( 'Upgrade', 'elementor-pro' ); } return API::is_license_expired() ? esc_html__( 'Renew now', 'elementor-pro' ) : esc_html__( 'Connect & Activate', 'elementor-pro' ); } private function get_cta_url() { if ( ! API::active_licence_has_feature( static::ROLE_MANAGER_OPTION_NAME ) ) { return 'https://go.elementor.com/go-pro-advanced-role-manager/'; } return API::is_license_expired() ? 'https://go.elementor.com/renew-role-manager/' : $this->get_connect_url(); } private function get_connect_url() { return Plugin::instance()->license_admin->get_connect_url( [ 'utm_source' => 'wp-role-manager', 'utm_medium' => 'wp-dash', 'utm_campaign' => 'connect-and-activate-license', ] ); } public function __construct() { parent::__construct(); if ( is_admin() ) { add_action( 'elementor/admin/after_create_settings/' . RoleManagerBase::PAGE_ID, [ $this, 'register_admin_fields' ], 100 ); } remove_action( 'elementor/role/restrictions/controls', [ Plugin::elementor()->role_manager, 'get_go_pro_link_html' ] ); add_action( 'elementor/role/restrictions/controls', [ $this, 'display_role_controls' ], 10, 2 ); add_filter( 'elementor/editor/user/restrictions', [ $this, 'get_user_restrictions' ] ); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.24 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка