update plugins
This commit is contained in:
@@ -0,0 +1,270 @@
|
||||
<?php
|
||||
/**
|
||||
* Settings manager
|
||||
*
|
||||
* Project: User Role Editor WordPress plugin
|
||||
*
|
||||
* Author: Vladimir Garagulya
|
||||
* email: support@role-editor.com
|
||||
*
|
||||
**/
|
||||
class URE_Settings {
|
||||
|
||||
protected static function get_action() {
|
||||
|
||||
$action = 'show';
|
||||
$update_buttons = array(
|
||||
'ure_settings_update',
|
||||
'ure_addons_settings_update',
|
||||
'ure_settings_ms_update',
|
||||
'ure_default_roles_update',
|
||||
'ure_settings_tools_exec');
|
||||
foreach($update_buttons as $update_button) {
|
||||
if (!isset($_POST[$update_button])) {
|
||||
continue;
|
||||
}
|
||||
if (!wp_verify_nonce($_POST['_wpnonce'], 'user-role-editor')) {
|
||||
wp_die('Security check failed');
|
||||
}
|
||||
$action = $update_button;
|
||||
break;
|
||||
}
|
||||
|
||||
return $action;
|
||||
|
||||
}
|
||||
// end of get_settings_action()
|
||||
|
||||
|
||||
/**
|
||||
* Update General Options tab
|
||||
*/
|
||||
protected static function update_general_options() {
|
||||
|
||||
$lib = URE_Lib::get_instance();
|
||||
if (defined('URE_SHOW_ADMIN_ROLE') && (URE_SHOW_ADMIN_ROLE == 1)) {
|
||||
$show_admin_role = 1;
|
||||
} else {
|
||||
$show_admin_role = $lib->get_request_var('show_admin_role', 'post', 'checkbox');
|
||||
}
|
||||
$lib->put_option('show_admin_role', $show_admin_role);
|
||||
|
||||
$caps_readable = $lib->get_request_var('caps_readable', 'post', 'checkbox');
|
||||
$lib->put_option('ure_caps_readable', $caps_readable);
|
||||
|
||||
$show_deprecated_caps = $lib->get_request_var('show_deprecated_caps', 'post', 'checkbox');
|
||||
$lib->put_option('ure_show_deprecated_caps', $show_deprecated_caps);
|
||||
|
||||
$confirm_role_update = $lib->get_request_var('confirm_role_update', 'post', 'checkbox');
|
||||
$lib->put_option('ure_confirm_role_update', $confirm_role_update);
|
||||
|
||||
$edit_user_caps = $lib->get_request_var('edit_user_caps', 'post', 'checkbox');
|
||||
$lib->put_option('edit_user_caps', $edit_user_caps);
|
||||
|
||||
$caps_columns_quant = (int) $lib->get_request_var('caps_columns_quant', 'post', 'int');
|
||||
$lib->put_option('caps_columns_quant', $caps_columns_quant);
|
||||
|
||||
do_action('ure_settings_update1');
|
||||
|
||||
$lib->flush_options();
|
||||
$lib->show_message(esc_html__('User Role Editor options are updated', 'user-role-editor'));
|
||||
|
||||
}
|
||||
// end of update_general_options()
|
||||
|
||||
|
||||
/**
|
||||
* Update Additional Modules Options tab
|
||||
*/
|
||||
protected static function update_addons_options() {
|
||||
|
||||
$lib = URE_Lib::get_instance();
|
||||
$multisite = $lib->get('multisite');
|
||||
if (!$multisite) {
|
||||
$count_users_without_role = $lib->get_request_var('count_users_without_role', 'post', 'checkbox');
|
||||
$lib->put_option('count_users_without_role', $count_users_without_role);
|
||||
}
|
||||
do_action('ure_settings_update2');
|
||||
|
||||
$lib->flush_options();
|
||||
$lib->show_message(esc_html__('User Role Editor options are updated', 'user-role-editor'));
|
||||
}
|
||||
// end of update_addons_options()
|
||||
|
||||
|
||||
protected static function update_default_roles() {
|
||||
global $wp_roles;
|
||||
|
||||
$lib = URE_Lib::get_instance();
|
||||
|
||||
// Primary default role
|
||||
$primary_default_role = $lib->get_request_var('default_user_role', 'post');
|
||||
if (!empty($primary_default_role) && isset($wp_roles->role_objects[$primary_default_role]) && $primary_default_role !== 'administrator') {
|
||||
update_option('default_role', $primary_default_role);
|
||||
}
|
||||
|
||||
// Other default roles
|
||||
$other_default_roles = array();
|
||||
foreach($_POST as $key=>$value) {
|
||||
$prefix = substr($key, 0, 8);
|
||||
if ($prefix!=='wp_role_') {
|
||||
continue;
|
||||
}
|
||||
$role_id = substr($key, 8);
|
||||
if ($role_id!=='administrator' && isset($wp_roles->role_objects[$role_id])) {
|
||||
$other_default_roles[] = $role_id;
|
||||
}
|
||||
} // foreach()
|
||||
$lib->put_option('other_default_roles', $other_default_roles, true);
|
||||
|
||||
$lib->show_message(esc_html__('Default Roles are updated', 'user-role-editor'));
|
||||
}
|
||||
// end of update_default_roles()
|
||||
|
||||
|
||||
protected static function update_multisite_options() {
|
||||
|
||||
$lib = URE_Lib::get_instance();
|
||||
|
||||
$multisite = $lib->get('multisite');
|
||||
if (!$multisite) {
|
||||
return;
|
||||
}
|
||||
|
||||
$allow_edit_users_to_not_super_admin = $lib->get_request_var('allow_edit_users_to_not_super_admin', 'post', 'checkbox');
|
||||
$lib->put_option('allow_edit_users_to_not_super_admin', $allow_edit_users_to_not_super_admin);
|
||||
|
||||
do_action('ure_settings_ms_update');
|
||||
|
||||
$lib->flush_options();
|
||||
$lib->show_message(esc_html__('User Role Editor options are updated', 'user-role-editor'));
|
||||
|
||||
}
|
||||
// end of update_multisite_options()
|
||||
|
||||
|
||||
protected static function tools_exec() {
|
||||
|
||||
$lib = URE_Lib::get_instance();
|
||||
$roles_reset = $lib->get_request_var( 'ure_reset_roles_exec', 'post', 'int');
|
||||
if ( $roles_reset==1 ) {
|
||||
URE_Tools::reset_roles();
|
||||
} else {
|
||||
do_action( 'ure_settings_tools_exec' );
|
||||
}
|
||||
|
||||
}
|
||||
//end of tools_exec()
|
||||
|
||||
|
||||
private static function controller() {
|
||||
|
||||
$action = self::get_action();
|
||||
switch ($action) {
|
||||
case 'ure_settings_update':
|
||||
self::update_general_options();
|
||||
break;
|
||||
case 'ure_addons_settings_update':
|
||||
self::update_addons_options();
|
||||
break;
|
||||
case 'ure_settings_ms_update':
|
||||
self::update_multisite_options();
|
||||
break;
|
||||
case 'ure_default_roles_update':
|
||||
self::update_default_roles();
|
||||
break;
|
||||
case 'ure_settings_tools_exec':
|
||||
self::tools_exec();
|
||||
break;
|
||||
case 'show':
|
||||
default:
|
||||
;
|
||||
} // switch()
|
||||
|
||||
}
|
||||
// end of controller()
|
||||
|
||||
|
||||
public static function show_other_default_roles() {
|
||||
|
||||
$lib = URE_Lib::get_instance();
|
||||
$other_default_roles = $lib->get_option('other_default_roles', array());
|
||||
$roles = $lib->get_editable_user_roles();
|
||||
$wp_default_role = get_option('default_role');
|
||||
foreach ($roles as $role_id => $role) {
|
||||
if ( $role_id=='administrator' || $role_id==$wp_default_role ) {
|
||||
continue;
|
||||
}
|
||||
if ( in_array( $role_id, $other_default_roles ) ) {
|
||||
$checked = 'checked="checked"';
|
||||
} else {
|
||||
$checked = '';
|
||||
}
|
||||
echo '<label for="wp_role_' . $role_id .'"><input type="checkbox" id="wp_role_' . $role_id .
|
||||
'" name="wp_role_' . $role_id . '" value="' . $role_id . '"' . $checked .' /> ' .
|
||||
$role['name'] . '</label><br />';
|
||||
}
|
||||
|
||||
}
|
||||
// end of show_other_default_roles()
|
||||
|
||||
|
||||
|
||||
public static function get_settings_link() {
|
||||
|
||||
$lib = URE_Lib::get_instance();
|
||||
$multisite = $lib->get('multisite');
|
||||
|
||||
if ($multisite && is_network_admin()) {
|
||||
$link = 'settings.php';
|
||||
} else {
|
||||
$link = 'options-general.php';
|
||||
}
|
||||
|
||||
return $link;
|
||||
|
||||
}
|
||||
// end of get_settings_link();
|
||||
|
||||
|
||||
|
||||
public static function show() {
|
||||
|
||||
$lib = URE_Lib::get_instance();
|
||||
self::controller();
|
||||
|
||||
if (defined('URE_SHOW_ADMIN_ROLE') && (URE_SHOW_ADMIN_ROLE == 1)) {
|
||||
$show_admin_role = 1;
|
||||
} else {
|
||||
$show_admin_role = $lib->get_option('show_admin_role', 0);
|
||||
}
|
||||
$caps_readable = $lib->get_option('ure_caps_readable', 0);
|
||||
$show_deprecated_caps = $lib->get_option('ure_show_deprecated_caps', 0);
|
||||
$confirm_role_update = $lib->get_option('ure_confirm_role_update', 1);
|
||||
$edit_user_caps = $lib->get_option('edit_user_caps', 1);
|
||||
$caps_columns_quant = $lib->get_option('caps_columns_quant', 1);
|
||||
$multisite = $lib->get('multisite');
|
||||
if ($multisite) {
|
||||
$allow_edit_users_to_not_super_admin = $lib->get_option('allow_edit_users_to_not_super_admin', 0);
|
||||
} else {
|
||||
$count_users_without_role = $lib->get_option('count_users_without_role', 0);
|
||||
}
|
||||
|
||||
$view = new URE_Role_View();
|
||||
$view->role_default_prepare_html(0);
|
||||
|
||||
$ure_tab_idx = (int) $lib->get_request_var('ure_tab_idx', 'post', 'int');
|
||||
|
||||
do_action('ure_settings_load');
|
||||
|
||||
$link = self::get_settings_link();
|
||||
$active_for_network = $lib->get('active_for_network');
|
||||
$license_key_only = $multisite && is_network_admin() && !$active_for_network;
|
||||
|
||||
|
||||
require_once(URE_PLUGIN_DIR . 'includes/settings-template.php');
|
||||
}
|
||||
// end of show()
|
||||
|
||||
}
|
||||
// end of URE_Settings class
|
||||
Reference in New Issue
Block a user