WordPress.org

Make WordPress Core

Ticket #3444: custom-global-user-prefix.diff

File custom-global-user-prefix.diff, 5.8 KB (added by markjaquith, 11 years ago)

Patch for trunk

  • wp-includes/capabilities.php

     
    1515        function _init () {
    1616                global $wpdb;
    1717                global $wp_user_roles;
    18                 $this->role_key = $wpdb->prefix . 'user_roles';
     18                $this->role_key = USER_PREFIX . 'user_roles';
    1919                if ( ! empty($wp_user_roles) ) {
    2020                        $this->roles = $wp_user_roles;
    2121                        $this->use_db = false;
     
    166166
    167167        function _init_caps() {
    168168                global $wpdb;
    169                 $this->cap_key = $wpdb->prefix . 'capabilities';
     169                $this->cap_key = USER_PREFIX . 'capabilities';
    170170                $this->caps = &$this->{$this->cap_key};
    171171                if ( ! is_array($this->caps) )
    172172                        $this->caps = array();
     
    233233        function update_user_level_from_caps() {
    234234                global $wpdb;
    235235                $this->user_level = array_reduce(array_keys($this->allcaps),    array(&$this, 'level_reduction'), 0);
    236                 update_usermeta($this->ID, $wpdb->prefix.'user_level', $this->user_level);
     236                update_usermeta($this->ID, USER_PREFIX.'user_level', $this->user_level);
    237237        }
    238238
    239239        function add_cap($cap, $grant = true) {
     
    251251                global $wpdb;
    252252                $this->caps = array();
    253253                update_usermeta($this->ID, $this->cap_key, '');
    254                 update_usermeta($this->ID, $wpdb->prefix.'user_level', '');
     254                update_usermeta($this->ID, USER_PREFIX.'user_level', '');
    255255                $this->get_role_caps();
    256256        }
    257257
  • wp-includes/pluggable.php

     
    8282                        $user->{$meta->meta_key} = $value;
    8383
    8484                        // We need to set user_level from meta, not row
    85                         if ( $wpdb->prefix . 'user_level' == $meta->meta_key )
     85                        if ( USER_PREFIX . 'user_level' == $meta->meta_key )
    8686                                $user->user_level = $meta->meta_value;
    8787                } // end foreach
    8888        } //end if
     
    133133                        $user->{$meta->meta_key} = $value;
    134134
    135135                        // We need to set user_level from meta, not row
    136                         if ( $wpdb->prefix . 'user_level' == $meta->meta_key )
     136                        if ( USER_PREFIX . 'user_level' == $meta->meta_key )
    137137                                $user->user_level = $meta->meta_value;
    138138                }
    139139        }
  • wp-settings.php

     
    112112
    113113$wpdb->prefix           = $table_prefix;
    114114
    115 if ( defined('CUSTOM_USER_TABLE') )
    116         $wpdb->users = CUSTOM_USER_TABLE;
    117 if ( defined('CUSTOM_USER_META_TABLE') )
    118         $wpdb->usermeta = CUSTOM_USER_META_TABLE;
     115if ( defined('CUSTOM_GLOBAL_USER_PREFIX') ) {
     116        // user table, user meta table, and permissions prefix all in one
     117        define('USER_PREFIX', CUSTOM_GLOBAL_USER_PREFIX);
     118        $wpdb->users = CUSTOM_USER_TABLE = USER_PREFIX . 'users';
     119        $wpdb->usermeta = CUSTOM_USER_META_TABLE = USER_PREFIX . 'usermeta';
     120} else {
     121        define('USER_PREFIX', $wpdb->prefix); // permissions should use the default prefix
     122        if ( defined('CUSTOM_USER_TABLE') )
     123                $wpdb->users = CUSTOM_USER_TABLE;
     124        if ( defined('CUSTOM_USER_META_TABLE') )
     125                $wpdb->usermeta = CUSTOM_USER_META_TABLE;
     126}
    119127
    120128// To be removed in 2.2
    121129$tableposts = $tableusers = $tablecategories = $tablepost2cat = $tablecomments = $tablelink2cat = $tablelinks = $tablelinkcategories = $tableoptions = $tablepostmeta = '';
  • wp-admin/upgrade-functions.php

     
    398398                if ( !empty( $user->user_nickname ) )
    399399                        update_usermeta( $user->ID, 'nickname', $wpdb->escape($user->user_nickname) );
    400400                if ( !empty( $user->user_level ) )
    401                         update_usermeta( $user->ID, $wpdb->prefix . 'user_level', $user->user_level );
     401                        update_usermeta( $user->ID, USER_PREFIX . 'user_level', $user->user_level );
    402402                if ( !empty( $user->user_icq ) )
    403403                        update_usermeta( $user->ID, 'icq', $wpdb->escape($user->user_icq) );
    404404                if ( !empty( $user->user_aim ) )
     
    424424                endif;
    425425
    426426                // FIXME: RESET_CAPS is temporary code to reset roles and caps if flag is set.
    427                 $caps = get_usermeta( $user->ID, $wpdb->prefix . 'capabilities');
     427                $caps = get_usermeta( $user->ID, USER_PREFIX . 'capabilities');
    428428                if ( empty($caps) || defined('RESET_CAPS') ) {
    429                         $level = get_usermeta($user->ID, $wpdb->prefix . 'user_level');
     429                        $level = get_usermeta($user->ID, USER_PREFIX . 'user_level');
    430430                        $role = translate_level_to_role($level);
    431                         update_usermeta( $user->ID, $wpdb->prefix . 'capabilities', array($role => true) );
     431                        update_usermeta( $user->ID, USER_PREFIX . 'capabilities', array($role => true) );
    432432                }
    433433
    434434        endforeach;
  • wp-admin/admin-db.php

     
    1111function get_others_drafts( $user_id ) {
    1212        global $wpdb;
    1313        $user = get_userdata( $user_id );
    14         $level_key = $wpdb->prefix . 'user_level';
     14        $level_key = USER_PREFIX . 'user_level';
    1515
    1616        $editable = get_editable_user_ids( $user_id );
    1717
     
    5252                        return false;
    5353        }
    5454
    55         $level_key = $wpdb->prefix . 'user_level';
     55        $level_key = USER_PREFIX . 'user_level';
    5656
    5757        $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'";
    5858        if ( $exclude_zeros )
     
    6363
    6464function get_author_user_ids() {
    6565        global $wpdb;
    66         $level_key = $wpdb->prefix . 'user_level';
     66        $level_key = USER_PREFIX . 'user_level';
    6767
    6868        $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value != '0'";
    6969
     
    7272
    7373function get_nonauthor_user_ids() {
    7474        global $wpdb;
    75         $level_key = $wpdb->prefix . 'user_level';
     75        $level_key = USER_PREFIX . 'user_level';
    7676
    7777        $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value = '0'";
    7878