Ticket #5540: get_users_with_cap.patch
| File get_users_with_cap.patch, 1.8 KB (added by , 18 years ago) |
|---|
-
wp-includes/capabilities.php
71 71 if ( $this->use_db ) 72 72 update_option($this->role_key, $this->roles); 73 73 } 74 75 function has_cap($role, $cap) { 76 return !empty($this->roles[$role]['capabilities'][$cap]); 77 } 74 78 75 79 function &get_role($role) { 76 80 if ( isset($this->role_objects[$role]) ) … … 87 91 { 88 92 return isset($this->role_names[$role]); 89 93 } 94 95 function get_roles_with_cap($cap) { 96 $out = array(); 97 foreach ( array_keys($this->roles) as $role ) { 98 if ( $this->has_cap($role, $cap) ) 99 $out[] = $role; 100 } 101 return $out; 102 } 90 103 } 91 104 92 105 class WP_Role { … … 504 517 return $wp_roles->is_role($role); 505 518 } 506 519 520 function get_roles_with_cap($cap) { 521 global $wp_roles; 522 523 if ( ! isset($wp_roles) ) 524 $wp_roles = new WP_Roles(); 525 526 return $wp_roles->get_roles_with_cap($cap); 527 } 528 507 529 ?> -
wp-includes/user.php
56 56 return $users; 57 57 } 58 58 59 // Get users with a given capability for the current blog 60 function get_users_with_cap( $cap, $id = '' ) { 61 global $wpdb, $blog_id; 62 if ( empty($id) ) 63 $id = (int) $blog_id; 64 65 $roles = get_roles_with_cap( $cap ); 66 if ( empty($roles) ) 67 return array(); 68 $roles = add_magic_quotes($roles); 69 70 $users = $wpdb->get_results( "SELECT user_id, user_login, display_name, user_email, role FROM {$wpdb->users}, {$wpdb->user_role} WHERE {$wpdb->users}.ID = {$wpdb->user_role}.user_id AND {$wpdb->user_role}.role IN ('".implode("','", $roles)."') GROUP BY user_id ORDER BY {$wpdb->user_role}.user_id" ); 71 return $users; 72 } 73 74 59 75 // 60 76 // User meta functions 61 77 //