コード例 #1
0
    }
}
$ure_rolesId = array();
foreach ($ure_roles as $key => $value) {
    $ure_rolesId[] = $key;
}
$fullCapabilities = array();
foreach ($ure_roles as $role) {
    foreach ($role['capabilities'] as $key => $value) {
        $cap = array();
        $cap['inner'] = $key;
        $cap['human'] = __(ure_ConvertCapsToReadable($key), 'ure');
        $fullCapabilities[] = $cap;
    }
}
$fullCapabilities = ure_ArrayUnique($fullCapabilities);
if ($ure_caps_readable) {
    $column = 'human';
    // sort by human readable form
} else {
    $column = 'inner';
    // sort by inner capability name
}
$sorter = new ure_TableSorter($column);
$fullCapabilities = $sorter->sort($fullCapabilities);
if ($ure_object == 'user') {
    if (!isset($_REQUEST['user_id'])) {
        $mess .= ' user_id value is missed';
        return;
    }
    $user_id = $_REQUEST['user_id'];
コード例 #2
0
ファイル: ure-lib.php プロジェクト: howardlei82/IGSM-Website
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;
}