Esempio n. 1
0
function getCapsToRemove()
{
    global $wp_roles, $wpdb;
    // build full capabilities list from all roles except Administrator
    $fullCapsList = array();
    foreach ($wp_roles->roles as $role) {
        // validate if capabilities is an array
        if (isset($role['capabilities']) && is_array($role['capabilities'])) {
            foreach ($role['capabilities'] as $capability => $value) {
                if (!isset($fullCapsList[$capability])) {
                    $fullCapsList[$capability] = 1;
                }
            }
        }
    }
    $capsToExclude = getBuiltInWPCaps();
    $capsToRemove = array();
    foreach ($fullCapsList as $capability => $value) {
        if (!isset($capsToExclude[$capability])) {
            // check roles
            $capInUse = false;
            foreach ($wp_roles->role_objects as $wp_role) {
                if ($wp_role->name != 'administrator') {
                    if ($wp_role->has_cap($capability)) {
                        $capInUse = true;
                        break;
                    }
                }
            }
            if (!$capInUse) {
                $capsToRemove[$capability] = 1;
            }
        }
    }
    return $capsToRemove;
}
Esempio n. 2
0
function getCapsToRemove()
{
    global $wp_roles, $wpdb;
    $fullCapsList = array();
    foreach ($wp_roles->roles as $role) {
        foreach ($role['capabilities'] as $key => $value) {
            $fullCapsList[] = $key;
        }
    }
    $fullCapsList = ure_ArrayUnique($fullCapsList);
    sort($fullCapsList);
    $capsToExclude = getBuiltInWPCaps();
    $capsToRemove = array();
    foreach ($fullCapsList as $capability) {
        if (!isset($capsToExclude[$capability])) {
            // check roles
            $capInUse = false;
            foreach ($wp_roles->role_objects as $wp_role) {
                if ($wp_role->name != 'administrator') {
                    if ($wp_role->has_cap($capability)) {
                        $capInUse = true;
                        break;
                    }
                }
            }
            if (!$capInUse) {
                // check users
                $usersId = $wpdb->get_col($wpdb->prepare("SELECT {$wpdb->users}.ID FROM {$wpdb->users}"));
                foreach ($usersId as $user_id) {
                    $user = get_user_to_edit($user_id);
                    if (isset($user->roles[0]) && $user->roles[0] == 'administrator') {
                        continue;
                    }
                    if ($user->has_cap($capability)) {
                        $capInUse = true;
                        break;
                    }
                }
            }
            if (!$capInUse) {
                $capsToRemove[] = $capability;
            }
        }
    }
    return $capsToRemove;
}