PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.1
16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 All 504 releases
← All changes | json-endpoints/class.wpcom-json-api-list-roles-endpoint.php +8 -2 13.5.216.3-a.1 View file →
@@ -1,6 +1,10 @@
1 1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 2
3 +if ( ! defined( 'ABSPATH' ) ) {
4 + exit( 0 );
5 +}
6 +
3 7 /**
4 8 * List roles endpoint.
5 9 */
6 10 new WPCOM_JSON_API_List_Roles_Endpoint(
@@ -61,8 +65,10 @@
61 65 /**
62 66 * List Roles endpoint class.
63 67 *
64 68 * /sites/%s/roles/ -> $blog_id
69 + *
70 + * @phan-constructor-used-for-side-effects
65 71 */
66 72 class WPCOM_JSON_API_List_Roles_Endpoint extends WPCOM_JSON_API_Endpoint {
67 73
68 74 /**
@@ -123,9 +129,9 @@
123 129 if ( ! $sal_site->current_user_can( 'list_users' ) ) {
124 130 return new WP_Error( 'unauthorized', 'User cannot view roles for specified site', 403 );
125 131 }
126 132
127 - if ( method_exists( $wp_roles, 'get_names' ) ) {
133 + if ( $wp_roles instanceof WP_Roles ) {
128 134 $role_names = $wp_roles->get_names();
129 135
130 136 $role_keys = array_keys( $role_names );
131 137
@@ -133,9 +139,9 @@
133 139 $role_details = get_role( $role_key );
134 140 $role_details->display_name = translate_user_role( $role_names[ $role_key ] );
135 141 $roles[] = $role_details;
136 142 }
137 - } else {
143 + } elseif ( is_array( $wp_roles ) ) {
138 144 // Jetpack Shadow Site side of things.
139 145 foreach ( $wp_roles as $role_key => $role ) {
140 146 $roles[] = (object) array(
141 147 'name' => $role_key,