/home/techb158/public_html/wp-content/plugins/kirki/includes/Ajax
Edit: /home/techb158/public_html/wp-content/plugins/kirki/includes/Ajax/RBAC.php (5023B)
$user_count,
'roles' => $roles,
'dp' => $user_dps,
'access' => $access_levels,
)
);
}
/**
* Update access lavel
*
* @return void wp_send_json.
*/
public static function update_access_level()
{
//phpcs:ignore WordPress.Security.NonceVerification.Missing,WordPress.Security.NonceVerification.Recommended,WordPress.Security.ValidatedSanitizedInput.MissingUnslash,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
$role_name = HelperFunctions::sanitize_text(isset($_POST['roleName']) ? $_POST['roleName'] : null);
//phpcs:ignore WordPress.Security.NonceVerification.Missing,WordPress.Security.NonceVerification.Recommended,WordPress.Security.ValidatedSanitizedInput.MissingUnslash,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
$access = HelperFunctions::sanitize_text(isset($_POST['access']) ? $_POST['access'] : null);
// The access level of `administrator` & `subscriber` role can't be updated.
if (in_array($role_name, array('administrator', 'subscriber'), true)) {
wp_send_json(false);
die();
}
;
if ($role_name && $access) {
$res = update_option('kirki_' . $role_name, $access, false);
if ($res) {
wp_send_json(true);
}
}
wp_send_json(false);
}
/**
* Get editor access lavel
*
* @return void wp_send_json.
*/
public static function get_editor_access_level()
{
$curr_user = wp_get_current_user();
if (HelperFunctions::is_api_call_from_editor_preview() && HelperFunctions::is_api_header_post_editor_preview_token_valid()) {
wp_send_json(KIRKI_ACCESS_LEVELS['FULL_ACCESS']);
}
if ($curr_user) {
$roles = $curr_user->roles;
$access_arr = array();
foreach ($roles as $role) {
$access = get_option('kirki_' . $role);
$access_arr[] = $access;
}
if (in_array(KIRKI_ACCESS_LEVELS['FULL_ACCESS'], $access_arr, true)) {
wp_send_json(KIRKI_ACCESS_LEVELS['FULL_ACCESS']);
} elseif (in_array(KIRKI_ACCESS_LEVELS['CONTENT_ACCESS'], $access_arr, true)) {
wp_send_json(KIRKI_ACCESS_LEVELS['CONTENT_ACCESS']);
} elseif (in_array(KIRKI_ACCESS_LEVELS['VIEW_ACCESS'], $access_arr, true)) {
wp_send_json(KIRKI_ACCESS_LEVELS['VIEW_ACCESS']);
} else {
wp_send_json(KIRKI_ACCESS_LEVELS['NO_ACCESS']);
}
} else {
wp_send_json(KIRKI_ACCESS_LEVELS['VIEW_ACCESS']);
}
}
/**
* Get user count based on role
*
* @return int count.
*/
private static function get_user_count_based_on_role()
{
$result = count_users();
$user_count = $result['avail_roles'];
unset($user_count['none']); // This is not needed.
return $user_count;
}
/**
* Get user DP
*
* @param array $roles wp roles.
* @return array
*/
private static function get_user_dp($roles = array())
{
if (count($roles)) {
$dp = array();
foreach ($roles as $role) {
$role_id = $role['id'];
$users = get_users(
array(
'role' => $role_id,
'number' => 3,
)
);
$user_ids = array();
foreach ($users as $user) {
$user_ids[] = $user->ID;
}
$avatars = array();
foreach ($user_ids as $user_id) {
$avatar = get_avatar_url($user_id);
$avatars[] = $avatar;
}
$dp[$role_id] = $avatars;
}
return $dp;
}
return array();
}
/**
* Get all roles
*
* @return array
*/
public static function get_all_roles()
{
global $wp_roles;
$role_list = $wp_roles->roles;
$roles = array();
if (is_array($role_list)) {
foreach ($role_list as $key => $val) {
$roles[] = array(
'id' => $key,
'name' => $val['name'],
);
}
}
return $roles;
}
/**
* Get access level
*
* @param array $roles wp roles.
* @return array
*
* @deprecated
* @see \Kirki\App\Supports\Role::get_access_levels_by_roles()
*/
public static function get_access_level($roles)
{
$access_levels = array();
foreach ($roles as $role) {
$role_id = $role['id'];
$result = get_option('kirki_' . $role_id);
if ($result) {
$access_levels[$role_id] = $result;
} else {
if (in_array($role_id, KIRKI_USERS_DEFAULT_FULL_ACCESS, true)) {
add_option('kirki_' . $role_id, KIRKI_ACCESS_LEVELS['FULL_ACCESS']);
$access_levels[$role_id] = KIRKI_ACCESS_LEVELS['FULL_ACCESS'];
} else {
add_option('kirki_' . $role_id, KIRKI_ACCESS_LEVELS['NO_ACCESS']);
$access_levels[$role_id] = KIRKI_ACCESS_LEVELS['NO_ACCESS'];
}
}
}
return $access_levels;
}
}