function ure_init()
{
    global $current_user, $wp_roles;
    if (!empty($current_user->ID)) {
        $user_id = $current_user->ID;
    } else {
        $user_id = 0;
    }
    // these filters and actions should prevent editing users with administrator role
    // by other users with 'edit_users' capabilities
    if (!ure_is_admin($user_id)) {
        // Exclude administrator role from edit list.
        add_filter('editable_roles', 'ure_excludeAdminRole');
        // Enqueue jQuery
        add_action('admin_enqueue_scripts', 'ure_admin_jquery');
        // prohibit any actions with user who has Administrator role
        add_filter('user_has_cap', 'ure_not_edit_admin', 10, 3);
        // exclude users with 'Administrator' role from users list
        add_action('pre_user_query', 'ure_exclude_administrators');
        // do not show 'Administrator (n)' view above users list
        add_filter('views_users', 'exclude_admins_view');
    }
}
Esempio n. 2
0
  die;  // Silence is golden, direct call is prohibited
}

// create roles backup if it's not created yet
ure_makeRolesBackup();

if (!isset($ure_currentRole) || !$ure_currentRole) {
  if (isset($_REQUEST['user_role']) && $_REQUEST['user_role'] && isset($ure_roles[$_REQUEST['user_role']])) {
    $ure_currentRole = $_REQUEST['user_role'];
  } else {
    $ure_currentRole = $ure_rolesId[count($ure_rolesId) - 1];
  }
  $ure_currentRoleName = $ure_roles[$ure_currentRole]['name'];
}

$youAreAdmin = defined('URE_SHOW_ADMIN_ROLE') && ure_is_admin();

$roleDefaultHTML = '<select id="default_user_role" name="default_user_role" width="200" style="width: 200px">';
$roleToCopyHTML = '<select id="user_role_copy_from" name="user_role_copy_from" width="200" style="width: 200px">
  <option value="none" selected="selected">'.__('None', 'ure').'</option>';
$roleSelectHTML = '<select id="user_role" name="user_role" onchange="ure_role_change(this.value);">';
foreach ($ure_roles as $key=>$value) {
  $selected1 = ure_optionSelected($key, $ure_currentRole);
  $selected2 = ure_optionSelected($key, $defaultRole);
  if ($youAreAdmin || $key!='administrator') {
		$translated_name = __($value['name'], 'ure');  // get translation from URE language file, if exists
		if ($translated_name===$value['name']) { // get WordPress internal translation
			$translated_name = translate_user_role($translated_name);
		}
    $translated_name .= ' ('. $key .')';
    $roleSelectHTML .= '<option value="'.$key.'" '.$selected1.'>'.$translated_name.'</option>';    
function ure_edit_user_profile($user)
{
    global $current_user, $wp_roles;
    $result = stripos($_SERVER['REQUEST_URI'], 'network/user-edit.php');
    if ($result !== false) {
        // exit, this code just for single site user profile only, not for network admin center
        return;
    }
    if (!ure_is_admin($current_user->ID)) {
        return;
    }
    ?>
<h3><?php 
    _e('User Role Editor', 'ure');
    ?>
</h3>
<table class="form-table">
		<tr>
			<th scope="row"><?php 
    _e('Other Roles', 'ure');
    ?>
</th>
			<td>
<?php 
    $roles = ure_other_user_roles($user);
    if (is_array($roles) && count($roles) > 0) {
        foreach ($roles as $role) {
            echo '<input type="hidden" name="ure_other_roles[]" value="' . $role . '" />';
        }
    }
    $output = ure_other_user_roles_text($roles);
    echo $output . '&nbsp;&nbsp;&gt;&gt;&nbsp;<a href="' . wp_nonce_url("users.php?page=user-role-editor.php&object=user&amp;user_id={$user->ID}", "ure_user_{$user->ID}") . '">' . __('Edit', 'ure') . '</a>';
    ?>
			</td>
		</tr>
</table>		
<?php 
    /*
    <script type="text/javascript">
    	jQuery('#role').attr('disabled', 'disabled');
    </script>
    */
}