Skip to:
Content

Changeset 1076


Ignore:
Timestamp:
01/25/08 08:36:28 (6 years ago)
Author:
mdawaffe
Message:

backPress: BOOM! this will break *everything*

Location:
trunk
Files:
2 added
4 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/bb-admin/admin-ajax.php

    r1072 r1076  
    11<?php 
    22require_once('../bb-load.php'); 
     3 
     4if ( !class_exists( 'WP_Ajax_Response' ) ) 
     5    require( BACKPRESS_PATH . 'class.wp-ajax-response.php' ); 
     6 
    37require_once(BBPATH . 'bb-admin/admin-functions.php'); 
    48bb_check_ajax_referer(); 
  • trunk/bb-admin/admin-functions.php

    r1061 r1076  
    312312 
    313313    function display( $show_search = true, $show_email = false ) { 
    314         global $bb_roles; 
     314        global $wp_roles; 
    315315        $r = ''; 
    316316        // Make the user objects 
    317317        foreach ( $this->get_results() as $user_id ) { 
    318             $tmp_user = new BB_User($user_id); 
     318            $tmp_user = new WP_User($user_id); 
    319319            $roles = $tmp_user->roles; 
    320320            $role = array_shift($roles); 
     
    352352                $r .= "\t<tr>\n"; 
    353353                if ( !empty($role) ) 
    354                     $r .= "\t\t<th colspan='$colspan'><h3>{$bb_roles->role_names[$role]}</h3></th>\n"; 
     354                    $r .= "\t\t<th colspan='$colspan'><h3>{$wp_roles->role_names[$role]}</h3></th>\n"; 
    355355                else 
    356356                    $r .= "\t\t<th colspan='$colspan'><h3><em>" . __('Users with no role in these forums') . "</h3></th>\n"; 
  • trunk/bb-admin/content-forums.php

    r919 r1076  
    2424 
    2525if ( !isset($_GET['action']) ) 
    26     bb_enqueue_script( 'content-forums' ); 
     26    wp_enqueue_script( 'content-forums' ); 
    2727 
    2828bb_get_admin_header(); 
  • trunk/bb-admin/options-wordpress.php

    r1010 r1076  
    263263    $roles .= '<option value="">' . __('none') . '</option>' . "\n"; 
    264264     
    265     global $bb_roles; 
    266      
    267     foreach ($bb_roles->get_names() as $key => $value) { 
     265    global $wp_roles; 
     266     
     267    foreach ($wp_roles->get_names() as $key => $value) { 
    268268        if ($key == $set) { 
    269269            $selected = ' selected="selected"'; 
  • trunk/bb-includes

  • trunk/bb-includes/capabilities.php

    r1075 r1076  
    11<?php 
    2  
    3 class BB_Roles { 
    4     var $roles; 
    5  
    6     var $role_objects = array(); 
    7     var $role_names = array(); 
    8     var $role_key; 
    9  
    10     function BB_Roles() { 
    11         global $bbdb; 
    12         $this->role_key = $bbdb->prefix . 'user_roles'; 
    13  
    14         $this->roles = $this->get_roles($this->role_key); 
    15  
    16         if ( empty($this->roles) ) 
    17             return; 
    18  
    19         foreach ($this->roles as $role => $data) { 
    20             $this->role_objects[$role] = new BB_Role($role, $this->roles[$role]['capabilities']); 
    21             $this->role_names[$role] = $this->roles[$role]['name']; 
    22         } 
    23     } 
    24  
    25     function get_roles( $role_key = '' ) { 
    26         return apply_filters('get_roles', array(    'keymaster' => array( 
    27                     'name' => __('Key Master'), 
    28                     'capabilities' => array( 
    29                         'use_keys' => true,     // Verb forms of roles - keymaster 
    30                         'administrate' => true,     // administrator 
    31                         'moderate' => true,         // moderator 
    32                         'participate' => true,      // member 
    33  
    34                         'keep_gate' => true,        // Make new Key Masters     //+ 
    35                         'recount' => true,      // bb-do-counts.php     //+ 
    36                         'manage_options' => true,   // backend          //+ 
    37                         'manage_themes' => true,    // Themes           //+ 
    38                         'manage_plugins' => true,   // Plugins          //+ 
    39                         'manage_options' => true,   // Options          //+ 
    40                         'edit_users' => true, 
    41                         'manage_tags' => true,      // Rename, Merge, Destroy 
    42                         'edit_others_favorites' => true, 
    43                         'manage_forums' => true,    // Add/Rename forum 
    44                         'delete_forums' => true,    // Delete forum 
    45                         'delete_topics' => true, 
    46                         'close_topics' => true, 
    47                         'stick_topics' => true, 
    48                         'move_topics' => true, 
    49                         'view_by_ip' => true,       // view-ip.php 
    50                         'edit_closed' => true,      // Edit closed topics 
    51                         'edit_deleted' => true,     // Edit deleted topics/posts 
    52                         'browse_deleted' => true,   // Use 'deleted' view 
    53                         'edit_others_tags' => true, 
    54                         'edit_others_topics' => true, 
    55                         'delete_posts' => true, 
    56                         'throttle' => true,     // Post back to back arbitrarily quickly 
    57                         'ignore_edit_lock' => true, 
    58                         'edit_others_posts' => true, 
    59                         'edit_favorites' => true, 
    60                         'edit_tags' => true, 
    61                         'edit_topics' => true,      // Edit title, resolution status 
    62                         'edit_posts' => true, 
    63                         'edit_profile' => true, 
    64                         'write_topics' => true, 
    65                         'write_posts' => true, 
    66                         'change_password' => true, 
    67                         'read' => true 
    68                 )), 
    69  
    70                 'administrator' => array( 
    71                     'name' => __('Administrator'), 
    72                     'capabilities' => array( 
    73                         'administrate' => true, 
    74                         'moderate' => true, 
    75                         'participate' => true, 
    76  
    77                         'edit_users' => true,           //+ 
    78                         'edit_others_favorites' => true,    //+ 
    79                         'manage_forums' => true,        //+ 
    80                         'delete_forums' => true,        //+ 
    81                         'manage_tags' => true, 
    82                         'delete_topics' => true, 
    83                         'close_topics' => true, 
    84                         'stick_topics' => true, 
    85                         'move_topics' => true, 
    86                         'view_by_ip' => true, 
    87                         'edit_closed' => true, 
    88                         'edit_deleted' => true, 
    89                         'browse_deleted' => true, 
    90                         'edit_others_tags' => true, 
    91                         'edit_others_topics' => true, 
    92                         'delete_posts' => true, 
    93                         'throttle' => true, 
    94                         'ignore_edit_lock' => true, 
    95                         'edit_others_posts' => true, 
    96                         'edit_favorites' => true, 
    97                         'edit_tags' => true, 
    98                         'edit_topics' => true, 
    99                         'edit_posts' => true, 
    100                         'edit_profile' => true, 
    101                         'write_topics' => true, 
    102                         'write_posts' => true, 
    103                         'change_password' => true, 
    104                         'read' => true 
    105                 )), 
    106  
    107                 'moderator' => array( 
    108                     'name' => __('Moderator'), 
    109                     'capabilities' => array( 
    110                         'moderate' => true, 
    111                         'participate' => true, 
    112  
    113                         'manage_tags' => true,      //+ 
    114                         'delete_topics' => true,    //+ 
    115                         'close_topics' => true,     //+ 
    116                         'stick_topics' => true,     //+ 
    117                         'move_topics' => true,      //+ 
    118                         'view_by_ip' => true,       //+ 
    119                         'edit_closed' => true,      //+ 
    120                         'edit_deleted' => true,     //+ 
    121                         'browse_deleted' => true,   //+ 
    122                         'edit_others_tags' => true, //+ 
    123                         'edit_others_topics' => true,   //+ 
    124                         'delete_posts' => true,     //+ 
    125                         'throttle' => true,     //+ 
    126                         'ignore_edit_lock' => true, //+ 
    127                         'edit_others_posts' => true,    //+ 
    128                         'edit_favorites' => true, 
    129                         'edit_tags' => true, 
    130                         'edit_topics' => true, 
    131                         'edit_posts' => true, 
    132                         'edit_profile' => true, 
    133                         'write_topics' => true, 
    134                         'write_posts' => true, 
    135                         'change_password' => true, 
    136                         'read' => true 
    137                 )), 
    138  
    139                 'member' => array( 
    140                     'name' => __('Member'), 
    141                     'capabilities' => array( 
    142                         'participate' => true, 
    143  
    144                         'edit_favorites' => true, 
    145                         'edit_tags' => true, 
    146                         'edit_topics' => true, 
    147                         'edit_posts' => true, 
    148                         'edit_profile' => true, 
    149                         'write_topics' => true, 
    150                         'write_posts' => true, 
    151                         'change_password' => true, 
    152                         'read' => true 
    153                 )), 
    154                                              
    155                 'inactive' => array( 
    156                     'name' => __('Inactive'), 
    157                     'capabilities' => array( 
    158                         'change_password' => true, 
    159                         'read' => true 
    160                 )), 
    161  
    162                 'blocked' => array( 
    163                     'name' => __('Blocked'), 
    164                     'capabilities' => array( 
    165                         'not_play_nice' => true 
    166                 )) 
    167             )); 
    168     } 
    169  
    170  
    171     function add_role($role, $capabilities, $display_name) { 
    172         $this->roles[$role] = array('name' => $display_name, 'capabilities' => $capabilities); 
    173         $this->role_objects[$role] = new BB_Role($role, $capabilities); 
    174         $this->role_names[$role] = $display_name; 
    175     } 
    176      
    177     function remove_role($role) { 
    178         if ( ! isset($this->role_objects[$role]) ) 
    179             return; 
    180          
    181         unset($this->role_objects[$role]); 
    182         unset($this->role_names[$role]); 
    183         unset($this->roles[$role]); 
    184     } 
    185  
    186     function add_cap($role, $cap, $grant) { 
    187         $this->roles[$role]['capabilities'][$cap] = $grant; 
    188     } 
    189  
    190     function remove_cap($role, $cap) { 
    191         unset($this->roles[$role]['capabilities'][$cap]); 
    192     } 
    193  
    194     function &get_role($role) { 
    195         if ( isset($this->role_objects[$role]) ) 
    196             return $this->role_objects[$role]; 
    197         else 
    198             return null; 
    199     } 
    200  
    201     function get_names() { 
    202         return $this->role_names; 
    203     } 
    204  
    205     function is_role($role) 
    206     { 
    207         return isset($this->role_names[$role]); 
    208     }    
    209 } 
    210  
    211 class BB_Role { 
    212     var $name; 
    213     var $capabilities; 
    214  
    215     function BB_Role($role, $capabilities) { 
    216         $this->name = $role; 
    217         $this->capabilities = $capabilities; 
    218     } 
    219  
    220     function add_cap($cap, $grant) { 
    221         global $bb_roles; 
    222  
    223         $this->capabilities[$cap] = $grant; 
    224         $bb_roles->add_cap($this->name, $cap, $grant); 
    225     } 
    226  
    227     function remove_cap($cap) { 
    228         global $bb_roles; 
    229  
    230         unset($this->capabilities[$cap]); 
    231         $bb_roles->remove_cap($this->name, $cap); 
    232     } 
    233  
    234     function has_cap($cap) { 
    235         if ( !empty($this->capabilities[$cap]) ) 
    236             return $this->capabilities[$cap]; 
    237         else 
    238             return false; 
    239     } 
    240  
    241 } 
    242  
    243 class BB_User { 
    244     var $data; 
    245     var $id = 0; 
    246     var $ID = 0; 
    247     var $caps = array(); 
    248     var $cap_key; 
    249     var $roles = array(); 
    250     var $allcaps = array(); 
    251  
    252     function BB_User($id) { 
    253         global $bb_roles, $bbdb; 
    254  
    255         $this->data = bb_get_user( $id ); 
    256  
    257         if ( empty($this->data->ID) ) 
    258             return; 
    259  
    260         $this->id = $this->ID = $this->data->ID; 
    261         $this->cap_key = $bbdb->prefix . 'capabilities'; 
    262         $this->caps = &$this->data->capabilities; 
    263         if ( ! is_array($this->caps) ) { 
    264             $this->caps  = array(); 
    265             $this->roles = array(); 
    266             do_action_ref_array('bb_user_has_no_caps', array(&$this)); 
    267         } 
    268         $this->get_role_caps(); 
    269     } 
    270  
    271     function get_role_caps() { 
    272         global $bb_roles; 
    273         //Filter out caps that are not role names and assign to $this->roles 
    274         if(is_array($this->caps)) 
    275             $this->roles = array_filter(array_keys($this->caps), array(&$bb_roles, 'is_role')); 
    276  
    277         //Build $allcaps from role caps, overlay user's $caps 
    278         $this->allcaps = array(); 
    279         foreach($this->roles as $role) { 
    280             $role = $bb_roles->get_role($role); 
    281             $this->allcaps = array_merge($this->allcaps, $role->capabilities); 
    282         } 
    283         $this->allcaps = array_merge($this->allcaps, $this->caps); 
    284     } 
    285      
    286     function add_role($role) { 
    287         $this->caps[$role] = true; 
    288         bb_update_usermeta($this->id, $this->cap_key, $this->caps); 
    289         $this->get_role_caps(); 
    290     } 
    291      
    292     function remove_role($role) { 
    293         if ( empty($this->roles[$role]) || (count($this->roles) <= 1) ) 
    294             return; 
    295         unset($this->caps[$role]); 
    296         bb_update_usermeta($this->id, $this->cap_key, $this->caps); 
    297         $this->get_role_caps(); 
    298     } 
    299      
    300     function set_role($role) { 
    301         foreach($this->roles as $oldrole) 
    302             unset($this->caps[$oldrole]); 
    303         $this->caps[$role] = true; 
    304         $this->roles = array($role => true); 
    305         bb_update_usermeta($this->id, $this->cap_key, $this->caps); 
    306         $this->get_role_caps(); 
    307     } 
    308  
    309     function add_cap($cap, $grant = true) { 
    310         $this->caps[$cap] = $grant; 
    311         bb_update_usermeta($this->id, $this->cap_key, $this->caps); 
    312     } 
    313  
    314     function remove_cap($cap) { 
    315         if ( empty($this->caps[$cap]) ) return; 
    316         unset($this->caps[$cap]); 
    317         bb_update_usermeta($this->id, $this->cap_key, $this->caps); 
    318     } 
    319      
    320     function has_cap($cap) { 
    321         global $bb_roles; 
    322  
    323         $args = array_slice(func_get_args(), 1); 
    324         $args = array_merge(array($cap, $this->id), $args); 
    325         $caps = call_user_func_array('bb_map_meta_cap', $args); 
    326         // Must have ALL requested caps 
    327         $capabilities = apply_filters('bb_user_has_cap', $this->allcaps, $caps, $args); 
    328         foreach ($caps as $cap) { 
    329             //echo "Checking cap $cap<br/>"; 
    330             if(empty($capabilities[$cap]) || !$capabilities[$cap]) 
    331                 return false; 
    332         } 
    333  
    334         return true; 
    335     } 
    336  
    337 } 
    338  
    339 // Map meta capabilities to primitive capabilities. 
    340 function bb_map_meta_cap($cap, $user_id) { 
    341     $args = array_slice(func_get_args(), 2); 
    342     $caps = array(); 
    343  
    344     switch ( $cap ) { 
    345     case 'write_post': 
    346         $caps[] = 'write_posts'; 
    347         break; 
    348     case 'edit_post': // edit_posts, edit_others_posts, edit_deleted, edit_closed, ignore_edit_lock 
    349         if ( !$bb_post = bb_get_post( $args[0] ) ) : 
    350             $caps[] = 'magically_provide_data_given_bad_input'; 
    351             return $caps; 
    352         endif; 
    353         if ( $user_id == $bb_post->poster_id ) 
    354             $caps[] = 'edit_posts'; 
    355         else    $caps[] = 'edit_others_posts'; 
    356         if ( $bb_post->post_status == '1' ) 
    357             $caps[] = 'edit_deleted'; 
    358         if ( !topic_is_open( $bb_post->topic_id ) ) 
    359             $caps[] = 'edit_closed'; 
    360         $post_time = bb_gmtstrtotime( $bb_post->post_time ); 
    361         $curr_time = time(); 
    362         $edit_lock = bb_get_option( 'edit_lock' ); 
    363                 if ( $edit_lock >= 0 && $curr_time - $post_time > $edit_lock * 60 ) 
    364             $caps[] = 'ignore_edit_lock'; 
    365         break; 
    366     case 'delete_post' : // edit_deleted, delete_posts 
    367         if ( !$bb_post = bb_get_post( $args[0] ) ) : 
    368             $caps[] = 'magically_provide_data_given_bad_input'; 
    369             return $caps; 
    370         endif; 
    371         if ( 0 != $bb_post->post_status ) 
    372             $caps[] = 'edit_deleted'; 
    373         // NO BREAK 
    374     case 'manage_posts' : // back compat 
    375         $caps[] = 'delete_posts'; 
    376         break; 
    377     case 'write_topic': 
    378         $caps[] = 'write_topics'; 
    379         break; 
    380     case 'edit_topic': // edit_closed, edit_deleted, edit_topics, edit_others_topics 
    381         if ( !$topic = get_topic( $args[0] ) ) : 
    382             $caps[] = 'magically_provide_data_given_bad_input'; 
    383             return $caps; 
    384         endif; 
    385         if ( !topic_is_open( $args[0]) ) 
    386             $caps[] = 'edit_closed'; 
    387         if ( '1' == $topic->topic_status ) 
    388             $caps[] = 'edit_deleted'; 
    389         if ( $user_id == $topic->topic_poster ) 
    390             $caps[] = 'edit_topics'; 
    391         else    $caps[] = 'edit_others_topics'; 
    392         break; 
    393     case 'move_topic' : 
    394         $caps[] = 'move_topics'; 
    395         break; 
    396     case 'stick_topic' : 
    397         $caps[] = 'stick_topics'; 
    398         break; 
    399     case 'close_topic' : 
    400         $caps[] = 'close_topics'; 
    401         break; 
    402     case 'delete_topic' : 
    403         $caps[] = 'delete_topics'; 
    404         add_filter( 'get_topic_where', 'no_where', 9999 ); 
    405         if ( !$topic = get_topic( $args[0] ) ) : 
    406             $caps[] = 'magically_provide_data_given_bad_input'; 
    407             return $caps; 
    408         endif; 
    409         if ( 0 != $topic->topic_status ) 
    410             $caps[] = 'edit_deleted'; 
    411         remove_filter( 'get_topic_where', 'no_where', 9999 ); 
    412         break; 
    413     case 'manage_topics' : // back compat 
    414         $caps[] = 'move_topics'; 
    415         $caps[] = 'stick_topics'; 
    416         $caps[] = 'close_topics'; 
    417         $caps[] = 'delete_topics'; 
    418         break; 
    419     case 'add_tag_to': // edit_closed, edit_deleted, edit_tags; 
    420         if ( !$topic = get_topic( $args[0] ) ) : 
    421             $caps[] = 'magically_provide_data_given_bad_input'; 
    422             return $caps; 
    423         endif; 
    424         if ( !topic_is_open( $topic->topic_id ) ) 
    425             $caps[] = 'edit_closed'; 
    426         if ( '1' == $topic->topic_status ) 
    427             $caps[] = 'edit_deleted'; 
    428         $caps[] = 'edit_tags'; 
    429         break; 
    430     case 'edit_tag_by_on': // edit_closed, edit_deleted, edit_tags, edit_others_tags 
    431         if ( !$topic = get_topic( $args[1] ) ) : 
    432             $caps[] = 'magically_provide_data_given_bad_input'; 
    433             return $caps; 
    434         endif; 
    435         if ( !topic_is_open( $topic->topic_id ) ) 
    436             $caps[] = 'edit_closed'; 
    437         if ( '1' == $topic->topic_status ) 
    438             $caps[] = 'edit_deleted'; 
    439         if ( $user_id == $args[0] ) 
    440             $caps[] = 'edit_tags'; 
    441         else    $caps[] = 'edit_others_tags'; 
    442         break; 
    443     case 'edit_user': // edit_profile, edit_users; 
    444         if ( $user_id == $args[0] ) 
    445             $caps[] = 'edit_profile'; 
    446         else    $caps[] = 'edit_users'; 
    447         break; 
    448     case 'edit_favorites_of': // edit_favorites, edit_others_favorites; 
    449         if ( $user_id == $args[0] ) 
    450             $caps[] = 'edit_favorites'; 
    451         else    $caps[] = 'edit_others_favorites'; 
    452         break; 
    453     case 'delete_forum': 
    454         $caps[] = 'delete_forums'; 
    455         break; 
    456     case 'change_user_password': // change_password, edit_users 
    457         $caps[] = 'change_password'; 
    458         if ( $user_id != $args[0] ) 
    459             $caps[] = 'edit_users'; 
    460         break; 
    461     default: 
    462         // If no meta caps match, return the original cap. 
    463         $caps[] = $cap; 
    464     } 
    465  
    466     return $caps; 
    467 } 
    4682 
    4693// Capability checking wrapper around the global $bb_current_user object. 
     
    48519 
    48620function bb_give_user_default_role( $user ) { 
    487     if ( !( is_object($user) && is_a($user, 'BB_User') ) ) 
     21    if ( !( is_object($user) && is_a($user, 'WP_User') ) ) 
    48822        return; 
    48923    $user->set_role('member'); 
    49024} 
    49125 
     26function bb_get_roles( $roles ) { 
     27    $new_roles = array( 
     28        'keymaster' => array( 'name' => __('Key Master'), 'capabilities' => array( 
     29            'use_keys' => true,     // Verb forms of roles - keymaster 
     30            'administrate' => true,     // administrator 
     31            'moderate' => true,         // moderator 
     32            'participate' => true,      // member 
     33 
     34            'keep_gate' => true,        // Make new Key Masters     //+ 
     35            'recount' => true,      // bb-do-counts.php     //+ 
     36            'manage_options' => true,   // backend          //+ 
     37            'manage_themes' => true,    // Themes           //+ 
     38            'manage_plugins' => true,   // Plugins          //+ 
     39            'manage_options' => true,   // Options          //+ 
     40            'edit_users' => true, 
     41            'manage_tags' => true,      // Rename, Merge, Destroy 
     42            'edit_others_favorites' => true, 
     43            'manage_forums' => true,    // Add/Rename forum 
     44            'delete_forums' => true,    // Delete forum 
     45            'delete_topics' => true, 
     46            'close_topics' => true, 
     47            'stick_topics' => true, 
     48            'move_topics' => true, 
     49            'view_by_ip' => true,       // view-ip.php 
     50            'edit_closed' => true,      // Edit closed topics 
     51            'edit_deleted' => true,     // Edit deleted topics/posts 
     52            'browse_deleted' => true,   // Use 'deleted' view 
     53            'edit_others_tags' => true, 
     54            'edit_others_topics' => true, 
     55            'delete_posts' => true, 
     56            'throttle' => true,     // Post back to back arbitrarily quickly 
     57            'ignore_edit_lock' => true, 
     58            'edit_others_posts' => true, 
     59            'edit_favorites' => true, 
     60            'edit_tags' => true, 
     61            'edit_topics' => true,      // Edit title, resolution status 
     62            'edit_posts' => true, 
     63            'edit_profile' => true, 
     64            'write_topics' => true, 
     65            'write_posts' => true, 
     66            'change_password' => true, 
     67            'read' => true 
     68        ) ), 
     69 
     70        'administrator' => array( 'name' => __('Administrator'), 'capabilities' => array( 
     71            'administrate' => true, 
     72            'moderate' => true, 
     73            'participate' => true, 
     74 
     75            'edit_users' => true,           //+ 
     76            'edit_others_favorites' => true,    //+ 
     77            'manage_forums' => true,        //+ 
     78            'delete_forums' => true,        //+ 
     79            'manage_tags' => true, 
     80            'delete_topics' => true, 
     81            'close_topics' => true, 
     82            'stick_topics' => true, 
     83            'move_topics' => true, 
     84            'view_by_ip' => true, 
     85            'edit_closed' => true, 
     86            'edit_deleted' => true, 
     87            'browse_deleted' => true, 
     88            'edit_others_tags' => true, 
     89            'edit_others_topics' => true, 
     90            'delete_posts' => true, 
     91            'throttle' => true, 
     92            'ignore_edit_lock' => true, 
     93            'edit_others_posts' => true, 
     94            'edit_favorites' => true, 
     95            'edit_tags' => true, 
     96            'edit_topics' => true, 
     97            'edit_posts' => true, 
     98            'edit_profile' => true, 
     99            'write_topics' => true, 
     100            'write_posts' => true, 
     101            'change_password' => true, 
     102            'read' => true 
     103        ) ), 
     104 
     105        'moderator' => array( 'name' => __('Moderator'), 'capabilities' => array( 
     106            'moderate' => true, 
     107            'participate' => true, 
     108            'manage_tags' => true,      //+ 
     109            'delete_topics' => true,    //+ 
     110            'close_topics' => true,     //+ 
     111            'stick_topics' => true,     //+ 
     112            'move_topics' => true,      //+ 
     113            'view_by_ip' => true,       //+ 
     114            'edit_closed' => true,      //+ 
     115            'edit_deleted' => true,     //+ 
     116            'browse_deleted' => true,   //+ 
     117            'edit_others_tags' => true, //+ 
     118            'edit_others_topics' => true,   //+ 
     119            'delete_posts' => true,     //+ 
     120            'throttle' => true,     //+ 
     121            'ignore_edit_lock' => true, //+ 
     122            'edit_others_posts' => true,    //+ 
     123            'edit_favorites' => true, 
     124            'edit_tags' => true, 
     125            'edit_topics' => true, 
     126            'edit_posts' => true, 
     127            'edit_profile' => true, 
     128            'write_topics' => true, 
     129            'write_posts' => true, 
     130            'change_password' => true, 
     131            'read' => true 
     132        ) ), 
     133 
     134        'member' => array( 'name' => __('Member'), 'capabilities' => array( 
     135            'participate' => true, 
     136            'edit_favorites' => true, 
     137            'edit_tags' => true, 
     138            'edit_topics' => true, 
     139            'edit_posts' => true, 
     140            'edit_profile' => true, 
     141            'write_topics' => true, 
     142            'write_posts' => true, 
     143            'change_password' => true, 
     144            'read' => true 
     145        ) ), 
     146                                             
     147        'inactive' => array( 'name' => __('Inactive'), 'capabilities' => array( 
     148            'change_password' => true, 
     149            'read' => true 
     150        ) ), 
     151 
     152        'blocked' => array( 'name' => __('Blocked'), 'capabilities' => array( 
     153            'not_play_nice' => true 
     154        ) ) 
     155    ); 
     156    return array_merge( $roles, $new_roles ); 
     157} 
     158 
     159// Map meta capabilities to primitive capabilities. 
     160function bb_map_meta_cap( $caps, $cap, $user_id, $args ) { 
     161    switch ( $cap ) { 
     162    case 'write_post': 
     163        $caps[] = 'write_posts'; 
     164        break; 
     165    case 'edit_post': // edit_posts, edit_others_posts, edit_deleted, edit_closed, ignore_edit_lock 
     166        if ( !$bb_post = bb_get_post( $args[0] ) ) : 
     167            $caps[] = 'magically_provide_data_given_bad_input'; 
     168            return $caps; 
     169        endif; 
     170        if ( $user_id == $bb_post->poster_id ) 
     171            $caps[] = 'edit_posts'; 
     172        else    $caps[] = 'edit_others_posts'; 
     173        if ( $bb_post->post_status == '1' ) 
     174            $caps[] = 'edit_deleted'; 
     175        if ( !topic_is_open( $bb_post->topic_id ) ) 
     176            $caps[] = 'edit_closed'; 
     177        $post_time = bb_gmtstrtotime( $bb_post->post_time ); 
     178        $curr_time = time(); 
     179        $edit_lock = bb_get_option( 'edit_lock' ); 
     180                if ( $edit_lock >= 0 && $curr_time - $post_time > $edit_lock * 60 ) 
     181            $caps[] = 'ignore_edit_lock'; 
     182        break; 
     183    case 'delete_post' : // edit_deleted, delete_posts 
     184        if ( !$bb_post = bb_get_post( $args[0] ) ) : 
     185            $caps[] = 'magically_provide_data_given_bad_input'; 
     186            return $caps; 
     187        endif; 
     188        if ( 0 != $bb_post->post_status ) 
     189            $caps[] = 'edit_deleted'; 
     190        // NO BREAK 
     191    case 'manage_posts' : // back compat 
     192        $caps[] = 'delete_posts'; 
     193        break; 
     194    case 'write_topic': 
     195        $caps[] = 'write_topics'; 
     196        break; 
     197    case 'edit_topic': // edit_closed, edit_deleted, edit_topics, edit_others_topics 
     198        if ( !$topic = get_topic( $args[0] ) ) : 
     199            $caps[] = 'magically_provide_data_given_bad_input'; 
     200            return $caps; 
     201        endif; 
     202        if ( !topic_is_open( $args[0]) ) 
     203            $caps[] = 'edit_closed'; 
     204        if ( '1' == $topic->topic_status ) 
     205            $caps[] = 'edit_deleted'; 
     206        if ( $user_id == $topic->topic_poster ) 
     207            $caps[] = 'edit_topics'; 
     208        else    $caps[] = 'edit_others_topics'; 
     209        break; 
     210    case 'move_topic' : 
     211        $caps[] = 'move_topics'; 
     212        break; 
     213    case 'stick_topic' : 
     214        $caps[] = 'stick_topics'; 
     215        break; 
     216    case 'close_topic' : 
     217        $caps[] = 'close_topics'; 
     218        break; 
     219    case 'delete_topic' : 
     220        $caps[] = 'delete_topics'; 
     221        add_filter( 'get_topic_where', 'no_where', 9999 ); 
     222        if ( !$topic = get_topic( $args[0] ) ) : 
     223            $caps[] = 'magically_provide_data_given_bad_input'; 
     224            return $caps; 
     225        endif; 
     226        if ( 0 != $topic->topic_status ) 
     227            $caps[] = 'edit_deleted'; 
     228        remove_filter( 'get_topic_where', 'no_where', 9999 ); 
     229        break; 
     230    case 'manage_topics' : // back compat 
     231        $caps[] = 'move_topics'; 
     232        $caps[] = 'stick_topics'; 
     233        $caps[] = 'close_topics'; 
     234        $caps[] = 'delete_topics'; 
     235        break; 
     236    case 'add_tag_to': // edit_closed, edit_deleted, edit_tags; 
     237        if ( !$topic = get_topic( $args[0] ) ) : 
     238            $caps[] = 'magically_provide_data_given_bad_input'; 
     239            return $caps; 
     240        endif; 
     241        if ( !topic_is_open( $topic->topic_id ) ) 
     242            $caps[] = 'edit_closed'; 
     243        if ( '1' == $topic->topic_status ) 
     244            $caps[] = 'edit_deleted'; 
     245        $caps[] = 'edit_tags'; 
     246        break; 
     247    case 'edit_tag_by_on': // edit_closed, edit_deleted, edit_tags, edit_others_tags 
     248        if ( !$topic = get_topic( $args[1] ) ) : 
     249            $caps[] = 'magically_provide_data_given_bad_input'; 
     250            return $caps; 
     251        endif; 
     252        if ( !topic_is_open( $topic->topic_id ) ) 
     253            $caps[] = 'edit_closed'; 
     254        if ( '1' == $topic->topic_status ) 
     255            $caps[] = 'edit_deleted'; 
     256        if ( $user_id == $args[0] ) 
     257            $caps[] = 'edit_tags'; 
     258        else    $caps[] = 'edit_others_tags'; 
     259        break; 
     260    case 'edit_user': // edit_profile, edit_users; 
     261        if ( $user_id == $args[0] ) 
     262            $caps[] = 'edit_profile'; 
     263        else    $caps[] = 'edit_users'; 
     264        break; 
     265    case 'edit_favorites_of': // edit_favorites, edit_others_favorites; 
     266        if ( $user_id == $args[0] ) 
     267            $caps[] = 'edit_favorites'; 
     268        else    $caps[] = 'edit_others_favorites'; 
     269        break; 
     270    case 'delete_forum': 
     271        $caps[] = 'delete_forums'; 
     272        break; 
     273    case 'change_user_password': // change_password, edit_users 
     274        $caps[] = 'change_password'; 
     275        if ( $user_id != $args[0] ) 
     276            $caps[] = 'edit_users'; 
     277        break; 
     278    default: 
     279        // If no meta caps match, return the original cap. 
     280        $caps[] = $cap; 
     281    } 
     282 
     283    return $caps; 
     284} 
     285 
    492286?> 
  • trunk/bb-includes/default-filters.php

    r1074 r1076  
    4040add_filter('get_user_link', 'bb_fix_link'); 
    4141 
    42 add_action('bb_head', 'bb_print_scripts'); 
    43 add_action('bb_admin_print_scripts', 'bb_print_scripts'); 
     42add_action('bb_head', 'wp_print_scripts'); 
     43add_action('bb_admin_print_scripts', 'wp_print_scripts'); 
    4444 
    4545add_action('bb_user_has_no_caps', 'bb_give_user_default_role'); 
     
    8585} 
    8686 
     87add_filter( 'get_roles', 'bb_get_roles' ); 
     88add_filter( 'map_meta_cap', 'bb_map_meta_cap', 1, 4 ); 
     89 
    8790?> 
  • trunk/bb-includes/deprecated.php

    r1044 r1076  
    544544} 
    545545 
     546function bb_enqueue_script( $handle, $src = false, $deps = array(), $ver = false ) { 
     547    wp_enqueue_script( $handle, $src, $deps, $ver ); 
     548} 
     549 
     550function bb_get_user_by_name( $name ) { 
     551    return bb_get_user( $name ); 
     552} 
     553 
     554function bb_user_exists( $user ) { 
     555    return bb_get_user( $name ); 
     556} 
     557 
     558function bb_maybe_serialize( $string ) { 
     559    return maybe_serialize( $string ); 
     560} 
     561 
     562function bb_maybe_unserialize( $string ) { 
     563    return maybe_unserialize( $string ); 
     564} 
     565 
    546566?> 
  • trunk/bb-includes/functions.php

    r1073 r1076  
    308308        if ( $ids = $bbdb->get_col( "SELECT user_id, meta_value FROM $bbdb->usermeta WHERE meta_key = 'favorites' and FIND_IN_SET('$topic_id', meta_value) > 0" ) ) 
    309309            foreach ( $ids as $id ) 
    310               bb_remove_user_favorite( $id, $topic_id ); 
     310                bb_remove_user_favorite( $id, $topic_id ); 
    311311 
    312312        if ( $new_status ) { 
     
    371371        "SELECT post_id, poster_id, post_time FROM $bbdb->posts WHERE topic_id = %d AND post_status = 0 ORDER BY post_time DESC LIMIT 1", $topic_id 
    372372    ) ); 
    373     $old_name = $bbdb->get_var( $bbdb->prepare( "SELECT user_login FROM $bbdb->users WHERE ID = %d", $old_post->poster_id ) ); 
    374     return $bbdb->update( $bbdb->topics, array( 'topic_time' => $old_post->post_time, 'topic_last_poster' => $old_post->poster_id, 'topic_last_poster_name' => $old_name, 'topic_last_post_id' => $old_post->post_id ), compact( 'topic_id' ) ); 
     373    $old_poster = bb_get_user( $old_post->poster_id ); 
     374    return $bbdb->update( $bbdb->topics, array( 'topic_time' => $old_post->post_time, 'topic_last_poster' => $old_post->poster_id, 'topic_last_poster_name' => $old_poster->login_name, 'topic_last_post_id' => $old_post->post_id ), compact( 'topic_id' ) ); 
    375375}    
    376376 
     
    11381138} 
    11391139 
    1140 function bb_get_user( $user_id, $cache = true ) { 
    1141     global $bb_cache, $bb_user_cache; 
    1142     if ( !is_numeric( $user_id ) ) { 
    1143         if ( is_string($user_id) ) 
    1144             return bb_get_user_by_name( $user_id ); 
    1145         else 
    1146             return false; 
    1147     } 
    1148     $user_id = (int) $user_id; 
    1149     if ( isset( $bb_user_cache[$user_id] ) && $cache ) 
    1150         return $bb_user_cache[$user_id]; 
    1151     else 
    1152         return $bb_cache->get_user( $user_id, $cache ); 
    1153 } 
    1154  
    1155 function bb_cache_users( $ids, $soft_cache = true ) { 
    1156     global $bb_cache, $bb_user_cache; 
    1157     if ( $soft_cache ) 
    1158         foreach( $ids as $i => $d ) 
    1159             if ( isset($bb_user_cache[$d]) ) 
    1160                 unset($ids[i]); // Don't cache what we already have 
    1161     if ( 0 < count($ids) ) 
    1162         $bb_cache->cache_users( $ids ); 
    1163 } 
    1164  
    1165 function bb_get_user_by_name( $name ) { 
    1166     global $bbdb; 
    1167     $name = sanitize_user( $name ); 
    1168     if ( $user_id = $bbdb->get_var( $bbdb->prepare( "SELECT ID FROM $bbdb->users WHERE user_login = %s", $name ) ) ) 
    1169         return bb_get_user( $user_id ); 
    1170     else 
    1171         return false; 
     1140function bb_get_user( $user_id ) { 
     1141    global $wp_users_object; 
     1142    $user = $wp_users_object->get_user( $user_id ); 
     1143    if ( is_wp_error($user) ) 
     1144        return false; 
     1145    return $user; 
     1146} 
     1147 
     1148function bb_cache_users( $ids ) { 
     1149    global $wp_users_object; 
     1150    $wp_users_object->get_user( $ids ); 
    11721151} 
    11731152 
    11741153function bb_get_user_by_nicename( $nicename ) { 
    1175     global $bbdb; 
    1176     $nicename = sanitize_user( $nicename ); 
    1177     if ( $user_id = $bbdb->get_var( $bbdb->prepare( "SELECT ID FROM $bbdb->users WHERE user_nicename = %s", $nicename ) ) ) 
    1178         return bb_get_user( $user_id ); 
    1179     else 
    1180         return false; 
    1181 } 
    1182  
    1183 function bb_user_exists( $user ) { 
    1184     global $bbdb; 
    1185     $user = sanitize_user( $user ); 
    1186     return $bbdb->get_row( $bbdb->prepare( "SELECT * FROM $bbdb->users WHERE user_login = %s", $user )); 
     1154    global $wp_users_object; 
     1155    $user = $wp_users_object->get_user( $user_id, array( 'by' => 'nicename' ) ); 
     1156    if ( is_wp_error($user) ) 
     1157        return false; 
     1158    return $user; 
    11871159} 
    11881160 
    11891161function bb_delete_user( $user_id, $reassign = 0 ) { 
    1190     global $bbdb, $bb_cache; 
    1191  
    1192     $reassign = (int) $reassign; 
     1162    global $wp_users_object; 
    11931163 
    11941164    if ( !$user = bb_get_user( $user_id ) ) 
     
    12031173        $bbdb->update( $bbdb->topics, array( 'topic_last_poster' => $new_user->ID, 'topic_last_poster_name' => $new_user->user_login ), array( 'topic_last_poster' => $user->ID ) ); 
    12041174        bb_update_topics_replied( $new_user->ID ); 
    1205         $bb_cache->flush_one( 'user', $new_user->ID ); 
    12061175    } 
    12071176 
    12081177    do_action( 'bb_delete_user', $user->ID, $reassign ); 
    12091178 
    1210     $bbdb->query( $bbdb->prepare( "DELETE FROM $bbdb->users WHERE ID = %d", $user->ID ) ); 
    1211     $bbdb->query( $bbdb->prepare( "DELETE FROM $bbdb->usermeta WHERE user_id = %d", $user->ID ) ); 
    1212     $bb_cache->flush_one( 'user', $user->ID ); 
     1179    $wp_users_object->delete_user( $user->ID ); 
    12131180 
    12141181    return true; 
     
    12281195 
    12291196function update_user_status( $user_id, $user_status = 0 ) { 
    1230     global $bbdb, $bb_cache; 
     1197    global $wp_users_object; 
    12311198    $user = bb_get_user( $user_id ); 
    12321199    $user_status = (int) $user_status; 
    1233     if ( $user->ID != bb_get_current_user_info( 'id' ) && bb_current_user_can( 'edit_users' ) ) : 
    1234         $bbdb->update( $bbdb->users, campact( 'user_status'), array( 'ID' => $user->ID ) ); 
    1235         $bb_cache->flush_one( 'user', $user->ID ); 
    1236     endif; 
     1200 
     1201    if ( $user->ID != bb_get_current_user_info( 'id' ) && bb_current_user_can( 'edit_users' ) ) 
     1202        $wp_users_object->update_user( $user->ID, compact( 'user_status' ) ); 
    12371203} 
    12381204 
     
    12431209function bb_is_trusted_user( $user ) { // ID, user_login, BB_User, DB user obj 
    12441210    if ( is_numeric($user) || is_string($user) ) 
    1245         $user = new BB_User( $user ); 
    1246     elseif ( is_object($user) && is_a($user, 'BB_User') ); // Intentional 
     1211        $user = new WP_User( $user ); 
     1212    elseif ( is_object($user) && is_a($user, 'WP_User') ); // Intentional 
    12471213    elseif ( is_object($user) && isset($user->ID) && isset($user->user_login) ) // Make sure it's actually a user object 
    1248         $user = new BB_User( $user->ID ); 
     1214        $user = new WP_User( $user->ID ); 
    12491215    else 
    12501216        return; 
     
    15381504    switch ( $type ) : 
    15391505    case 'user' : 
    1540         global $bb_user_cache; 
    1541         $cache =& $bb_user_cache; 
    1542         $table = $bbdb->usermeta; 
    1543         $field = 'user_id'; 
    1544         $id = 'ID'; 
     1506        global $wp_users_object; 
     1507        return $wp_users_object->append_meta( $object ); 
    15451508        break; 
    15461509    case 'topic' : 
     
    16141577 
    16151578// Internal use only.  Use API. 
    1616 function bb_update_meta( $type_id, $meta_key, $meta_value, $type, $global = false ) { 
     1579function bb_update_meta( $id, $meta_key, $meta_value, $type, $global = false ) { 
    16171580    global $bbdb, $bb_cache; 
    1618     if ( !is_numeric( $type_id ) || empty($type_id) && !$global ) 
    1619         return false; 
    1620     $type_id = (int) $type_id; 
     1581    if ( !is_numeric( $id ) || empty($id) && !$global ) 
     1582        return false; 
     1583    $id = (int) $id; 
    16211584    switch ( $type ) : 
    16221585    case 'user' : 
    1623         global $bb_user_cache; 
    1624         $cache =& $bb_user_cache; 
    1625         $table = $bbdb->usermeta; 
    1626         $field = 'user_id'; 
     1586        global $wp_users_object; 
     1587        $return = $wp_users_object->update_meta( compact( 'id', 'meta_key', 'meta_value' ) ); 
     1588        if ( is_wp_error($return) ) 
     1589            return false; 
     1590        return $return; 
    16271591        break; 
    16281592    case 'topic' : 
     
    16451609    $meta_value = bb_maybe_unserialize( $meta_value ); 
    16461610 
    1647     $cur = $bbdb->get_row( $bbdb->prepare( "SELECT * FROM $table WHERE $field = %d AND meta_key = %s", $type_id, $meta_key ) ); 
     1611    $cur = $bbdb->get_row( $bbdb->prepare( "SELECT * FROM $table WHERE $field = %d AND meta_key = %s", $id, $meta_key ) ); 
    16481612    if ( !$cur ) { 
    1649         $bbdb->insert( $table, array( $field => $type_id, 'meta_key' => $meta_key, 'meta_value' => $_meta_value ) ); 
     1613        $bbdb->insert( $table, array( $field => $id, 'meta_key' => $meta_key, 'meta_value' => $_meta_value ) ); 
    16501614    } elseif ( $cur->meta_value != $meta_value ) { 
    1651         $bbdb->update( $table, array( 'meta_value' => $_meta_value), array( $field => $type_id, 'meta_key' => $meta_key ) ); 
    1652     } 
    1653  
    1654     if ( isset($cache[$type_id]) ) { 
    1655         $cache[$type_id]->{$meta_key} = $meta_value; 
     1615        $bbdb->update( $table, array( 'meta_value' => $_meta_value), array( $field => $id, 'meta_key' => $meta_key ) ); 
     1616    } 
     1617 
     1618    if ( isset($cache[$id]) ) { 
     1619        $cache[$id]->{$meta_key} = $meta_value; 
    16561620        if ( 0 === strpos($meta_key, $bbdb->prefix) ) 
    1657             $cache[$type_id]->{substr($meta_key, strlen($bbdb->prefix))} = $cache[$type_id]->{$meta_key}; 
    1658     } 
    1659  
    1660     $bb_cache->flush_one( $type, $type_id ); 
     1621            $cache[$id]->{substr($meta_key, strlen($bbdb->prefix))} = $cache[$id]->{$meta_key}; 
     1622    } 
     1623 
     1624    $bb_cache->flush_one( $type, $id ); 
    16611625    if ( !$cur ) 
    16621626        return true; 
     
    16641628 
    16651629// Internal use only.  Use API. 
    1666 function bb_delete_meta( $type_id, $meta_key, $meta_value, $type, $global = false ) { 
     1630function bb_delete_meta( $id, $meta_key, $meta_value, $type, $global = false ) { 
    16671631    global $bbdb, $bb_cache; 
    1668     if ( !is_numeric( $type_id ) || empty($type_id) && !$global ) 
    1669         return false; 
    1670     $type_id = (int) $type_id; 
     1632    if ( !is_numeric( $id ) || empty($id) && !$global ) 
     1633        return false; 
     1634    $id = (int) $id; 
    16711635    switch ( $type ) : 
    16721636    case 'user' : 
    1673         global $bb_user_cache; 
    1674         $cache =& $bb_user_cache; 
    1675         $table = $bbdb->usermeta; 
    1676         $field = 'user_id'; 
    1677         $meta_id_field = 'umeta_id'; 
     1637        global $wp_users_object; 
     1638        return $wp_users_object->update_meta( compact( 'id', 'meta_key', 'meta_value' ) ); 
    16781639        break; 
    16791640    case 'topic' : 
     
    16951656 
    16961657    $meta_sql = empty($meta_value) ?  
    1697         $bbdb->prepare( "SELECT $meta_id_field FROM $table WHERE $field = %d AND meta_key = %s", $type_id, $meta_key ) : 
    1698         $bbdb->prepare( "SELECT $meta_id_field FROM $table WHERE $field = %d AND meta_key = %s AND meta_value = %s", $type_id, $meta_key, $meta_value ); 
     1658        $bbdb->prepare( "SELECT $meta_id_field FROM $table WHERE $field = %d AND meta_key = %s", $id, $meta_key ) : 
     1659        $bbdb->prepare( "SELECT $meta_id_field FROM $table WHERE $field = %d AND meta_key = %s AND meta_value = %s", $id, $meta_key, $meta_value ); 
    16991660 
    17001661    if ( !$meta_id = $bbdb->get_var( $meta_sql ) ) 
     
    17031664    $bbdb->query( $bbdb->prepare( "DELETE FROM $table WHERE $meta_id_field = %d", $meta_id ) ); 
    17041665 
    1705     unset($cache[$type_id]->{$meta_key}); 
     1666    unset($cache[$id]->{$meta_key}); 
    17061667    if ( 0 === strpos($meta_key, $bbdb->prefix) ) 
    1707         unset($cache[$type_id]->{substr($meta_key, strlen($bbdb->prefix))}); 
    1708  
    1709     $bb_cache->flush_one( $type, $type_id ); 
     1668        unset($cache[$id]->{substr($meta_key, strlen($bbdb->prefix))}); 
     1669 
     1670    $bb_cache->flush_one( $type, $id ); 
    17101671    return true; 
    1711 } 
    1712  
    1713 function bb_maybe_serialize( $data ) { 
    1714     if ( is_string($data) ) 
    1715         $data = trim($data); 
    1716     elseif ( is_array($data) || is_object($data) || is_bool($data) ) 
    1717         return serialize($data); 
    1718     if ( is_serialized( $data ) ) 
    1719         return serialize($data); 
    1720     return $data; 
    1721 } 
    1722  
    1723 function bb_maybe_unserialize( $data ) { 
    1724     if ( is_serialized( $data ) ) { 
    1725         if ( 'b:0;' === $data ) 
    1726             return false; 
    1727         if ( false !== $_data = @unserialize($data) ) 
    1728             return $_data; 
    1729     } 
    1730     return $data; 
    17311672} 
    17321673 
     
    20411982        $viewer =& $bb_current_user; 
    20421983    else 
    2043         $viewer = new BB_User( $viewer_id ); 
     1984        $viewer = new WP_User( $viewer_id ); 
    20441985    if ( !$viewer ) 
    20451986        return false; 
  • trunk/bb-includes/pluggable.php

    r1061 r1076  
    22 
    33if ( !function_exists('bb_auth') ) : 
    4 function bb_auth() { 
    5     // Checks if a user has a valid cookie, if not redirects them to the login page 
    6     if (!wp_validate_auth_cookie()) { 
     4function bb_auth() { // Checks if a user has a valid cookie, if not redirects them to the main page 
     5    if ( !wp_validate_auth_cookie() ) { 
    76        nocache_headers(); 
    87        header('Location: ' . bb_get_option('uri')); 
     
    1514if ( !function_exists('bb_check_login') ) : 
    1615function bb_check_login($user, $pass, $already_md5 = false) { 
    17     global $bbdb; 
    18     $user = sanitize_user( $user ); 
    19     if ($user == '') { 
    20         return false; 
    21     } 
    22     $user = bb_get_user_by_name( $user ); 
    23      
    24     if ( !wp_check_password($pass, $user->user_pass) ) { 
    25         return false; 
    26     } 
     16    global $wp_auth_object; 
     17 
     18    if ( !$user = sanitize_user( $user ) ) 
     19        return false; 
     20 
     21    if ( !$user = bb_get_user( $user ) ) 
     22        return false; 
     23     
     24    if ( !wp_check_password($pass, $user->user_pass) ) 
     25        return false; 
    2726     
    2827    // If using old md5 password, rehash. 
    2928    if ( strlen($user->user_pass) <= 32 ) { 
    30         $hash = wp_hash_password($pass); 
    31         $bbdb->query( $bbdb->prepare( "UPDATE $bbdb->users SET user_pass = %s WHERE ID = %d", $hash, $user->ID ) ); 
    32         global $bb_cache; 
    33         $bb_cache->flush_one( 'user', $user->ID ); 
     29        $wp_auth_object->set_password( $pass, $user->ID ); 
    3430        $user = bb_get_user( $user->ID ); 
    3531    } 
     
    4137if ( !function_exists('bb_get_current_user') ) : 
    4238function bb_get_current_user() { 
    43     global $bb_current_user; 
    44      
    45     bb_current_user(); 
    46      
    47     return $bb_current_user; 
     39    global $wp_auth_object; 
     40    return $wp_auth_object->get_current_user(); 
    4841} 
    4942endif; 
    5043 
    5144if ( !function_exists('bb_set_current_user') ) : 
    52 function bb_set_current_user($id) { 
    53     global $bb_current_user; 
    54      
    55     if ( isset($bb_current_user) && ($id == $bb_current_user->ID) ) 
    56         return $bb_current_user; 
    57      
    58     if ( empty($id) ) { 
    59         $bb_current_user = 0; 
    60     } else { 
    61         $bb_current_user = new BB_User($id); 
    62         if ( !$bb_current_user->ID ) 
    63             $bb_current_user = 0; 
    64     } 
    65      
    66     do_action('bb_set_current_user', $id); 
    67      
    68     return $bb_current_user; 
     45function bb_set_current_user( $id ) { 
     46    global $wp_auth_object; 
     47    $current_user = $wp_auth_object->set_current_user( $id ); 
     48     
     49    do_action('bb_set_current_user', isset($current_user->ID) ? $current_user->ID : 0 ); 
     50     
     51    return $current_user; 
    6952} 
    7053endif; 
     
    7356//This is only used at initialization.  Use bb_get_current_user_info() (or $bb_current_user global if really needed) to grab user info. 
    7457function bb_current_user() { 
    75     global $bb_current_user; 
    76      
    7758    if ( defined( 'BB_INSTALLING' ) ) 
    7859        return false; 
    79      
    80     if ( ! empty($bb_current_user) ) 
    81         return $bb_current_user; 
    82      
    83     if ($user_id = wp_validate_auth_cookie()) { 
    84         return bb_set_current_user($user_id); 
    85     } else { 
    86         global $bb_user_cache; 
    87         $bb_user_cache[$user_id] = false; 
    88         bb_set_current_user(0); 
    89         return false; 
    90     } 
     60 
     61    return bb_get_current_user(); 
    9162} 
    9263endif; 
     
    11081 
    11182if ( !function_exists('bb_login') ) : 
    112 function bb_login($login, $password) { 
     83function bb_login( $login, $password, $remember = false ) { 
     84    global $wp_auth_object; 
    11385    if ( $user = bb_check_login( $login, $password ) ) { 
    114         wp_set_auth_cookie($user->ID); 
    115          
     86        wp_set_auth_cookie( $user->ID, $remember ); 
    11687        do_action('bb_user_login', (int) $user->ID ); 
    11788    } 
     
    131102if ( !function_exists('wp_validate_auth_cookie') ) : 
    132103function wp_validate_auth_cookie($cookie = '') { 
    133     if ( empty($cookie) ) { 
    134         global $bb; 
    135         if ( empty($_COOKIE[$bb->authcookie]) ) 
    136             return false; 
    137         $cookie = $_COOKIE[$bb->authcookie]; 
    138     } 
    139  
    140     list($username, $expiration, $hmac) = explode('|', $cookie); 
    141  
    142     $expired = $expiration; 
    143  
    144     // Allow a grace period for POST and AJAX requests 
    145     if ( defined('DOING_AJAX') || 'POST' == $_SERVER['REQUEST_METHOD'] ) 
    146         $expired += 3600; 
    147  
    148     if ( $expired < time() ) 
    149         return false; 
    150  
    151     $key = wp_hash($username . $expiration); 
    152     $hash = hash_hmac('md5', $username . $expiration, $key); 
    153      
    154     if ( $hmac != $hash ) 
    155         return false; 
    156  
    157     $user = bb_get_user_by_name($username); 
    158     if ( ! $user ) 
    159         return false; 
    160  
    161     return $user->ID; 
    162 } 
    163 endif; 
    164  
    165 if ( !function_exists('wp_generate_auth_cookie') ) : 
    166 function wp_generate_auth_cookie($user_id, $expiration) { 
    167     $user = bb_get_user($user_id); 
    168      
    169     $key = wp_hash($user->user_login . $expiration); 
    170     $hash = hash_hmac('md5', $user->user_login . $expiration, $key); 
    171      
    172     $cookie = $user->user_login . '|' . $expiration . '|' . $hash; 
    173      
    174     return apply_filters('auth_cookie', $cookie, $user_id, $expiration); 
     104    global $wp_auth_object; 
     105    return $wp_auth_object->validate_auth_cookie( $cookie ); 
    175106} 
    176107endif; 
     
    178109if ( !function_exists('wp_set_auth_cookie') ) : 
    179110function wp_set_auth_cookie($user_id, $remember = false) { 
    180     global $bb; 
    181      
    182     if ( $remember ) { 
    183         $expiration = $expire = time() + 1209600; 
    184     } else { 
    185         $expiration = time() + 172800; 
    186         $expire = 0; 
    187     } 
    188      
    189     $cookie = wp_generate_auth_cookie($user_id, $expiration); 
    190      
    191     do_action('set_auth_cookie', $cookie, $expire); 
    192      
    193     setcookie($bb->authcookie, $cookie, $expire, $bb->cookiepath, $bb->cookiedomain); 
    194     if ( $bb->cookiepath != $bb->sitecookiepath ) 
    195         setcookie($bb->authcookie, $cookie, $expire, $bb->sitecookiepath, $bb->cookiedomain); 
     111    global $wp_auth_object; 
     112 
     113    if ( $remember ) 
     114        $expiration = time() + 1209600; 
     115    else 
     116        $expiration = 0; 
     117 
     118    $wp_auth_object->set_auth_cookie( $user_id, $expiration ); 
    196119} 
    197120endif; 
     
    199122if ( !function_exists('wp_clear_auth_cookie') ) : 
    200123function wp_clear_auth_cookie() { 
    201     global $bb; 
    202     setcookie($bb->authcookie, ' ', time() - 31536000, $bb->cookiepath, $bb->cookiedomain); 
    203     setcookie($bb->authcookie, ' ', time() - 31536000, $bb->sitecookiepath, $bb->cookiedomain); 
     124    global $bb, $wp_auth_object; 
     125 
     126    $wp_auth_object->clear_auth_cookie(); 
    204127     
    205128    // Old cookies 
     
    348271if ( !function_exists('wp_hash_password') ) : // [WP6350] 
    349272function wp_hash_password($password) { 
    350     global $wp_hasher; 
    351  
    352     if ( empty($wp_hasher) ) {  
    353         require_once( BBPATH . BBINC . 'class-phpass.php'); 
    354         // By default, use the portable hash from phpass 
    355         $wp_hasher = new PasswordHash(8, TRUE); 
    356     } 
    357      
    358     return $wp_hasher->HashPassword($password); 
     273    global $wp_auth_object; 
     274    return $wp_auth_object->hash_password( $password ); 
    359275} 
    360276endif; 
     
    362278if ( !function_exists('wp_check_password') ) : // [WP6350] 
    363279function wp_check_password($password, $hash) { 
    364     global $wp_hasher; 
    365  
    366     if ( strlen($hash) <= 32 ) 
    367         return ( $hash == md5($password) ); 
    368  
    369     // If the stored hash is longer than an MD5, presume the 
    370     // new style phpass portable hash. 
    371     if ( empty($wp_hasher) ) { 
    372         require_once( BBPATH . BBINC . 'class-phpass.php'); 
    373         // By default, use the portable hash from phpass 
    374         $wp_hasher = new PasswordHash(8, TRUE); 
    375     } 
    376  
    377     return $wp_hasher->CheckPassword($password, $hash); 
     280    global $wp_auth_object; 
     281    return $wp_auth_object->check_password( $password, $hash ); 
    378282} 
    379283endif; 
     
    384288 * @return string the password 
    385289 **/ 
    386 function wp_generate_password() { 
    387     $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 
    388     $length = 7; 
    389     $password = ''; 
    390     for ( $i = 0; $i < $length; $i++ ) 
    391         $password .= substr($chars, mt_rand(0, 61), 1); 
    392     return $password; 
     290function wp_generate_password( $length = 7 ) { 
     291    global $wp_auth_object; 
     292    return $wp_auth_object->generate_password( $length ); 
    393293} 
    394294endif; 
     
    475375if ( !function_exists('bb_new_user') ) : 
    476376function bb_new_user( $user_login, $user_email, $user_url ) { 
    477     global $bbdb; 
    478     $user_login = sanitize_user( $user_login, true ); 
    479     $user_email = bb_verify_email( $user_email ); 
    480      
    481     if ( !$user_login || !$user_email ) 
     377    global $wp_users_object; 
     378 
     379    // is_email check + dns 
     380    if ( !$user_email = bb_verify_email( $user_email ) ) 
     381        return false; 
     382 
     383    $new_user = $wp_users_object->new_user( compact( 'user_login', 'user_email', 'user_url' ) ); 
     384    if ( is_wp_error($new_user) ) 
     385        return false; 
     386 
     387    if ( !$user_login = sanitize_user( $user_login, true ) ) 
    482388        return false; 
    483389     
     
    487393     
    488394    $user_url = bb_fix_link( $user_url ); 
     395 
    489396    $user_registered = bb_current_time('mysql'); 
    490     $password = wp_generate_password(); 
    491     $user_pass = wp_hash_password( $password ); 
    492  
    493     $bbdb->insert( $bbdb->users, 
    494         compact( 'user_login', 'user_pass', 'user_nicename', 'user_email', 'user_url', 'user_registered' ) 
    495     ); 
    496      
    497     $user_id = $bbdb->insert_id; 
     397 
     398    $user = $wp_users_object->new_user( compact( 'user_login', 'user_email', 'user_url', 'user_nicename', 'user_registered' ) ); 
    498399 
    499400    if ( defined( 'BB_INSTALLING' ) ) { 
    500         bb_update_usermeta( $user_id, $bbdb->prefix . 'capabilities', array('keymaster' => true) ); 
     401        bb_update_usermeta( $user->ID, $bbdb->prefix . 'capabilities', array('keymaster' => true) ); 
    501402    } else {         
    502         bb_update_usermeta( $user_id, $bbdb->prefix . 'capabilities', array('member' => true) ); 
    503         bb_send_pass( $user_id, $password ); 
    504     } 
    505  
    506     do_action('bb_new_user', $user_id, $password); 
    507     return $user_id; 
     403        bb_update_usermeta( $user->ID, $bbdb->prefix . 'capabilities', array('member' => true) ); 
     404        bb_send_pass( $user->ID, $password ); 
     405    } 
     406 
     407    do_action('bb_new_user', $user->ID, $password); 
     408    return $user->ID; 
    508409} 
    509410endif; 
  • trunk/bb-includes/registration-functions.php

    r1033 r1076  
    6161    if ( !$user_id = $bbdb->get_var( $bbdb->prepare( "SELECT user_id FROM $bbdb->usermeta WHERE meta_key = 'newpwdkey' AND meta_value = %s", $key ) ) ) 
    6262        bb_die(__('Key not found.')); 
    63     if ( $user = new BB_User( $user_id ) ) : 
     63    if ( $user = new WP_User( $user_id ) ) : 
    6464        if ( bb_has_broken_pass( $user->ID ) ) 
    6565            bb_block_current_user(); 
  • trunk/bb-includes/template-functions.php

    r1046 r1076  
    13511351 
    13521352function get_user_type_label( $type ) { 
    1353     global $bb_roles; 
    1354     if ( $bb_roles->is_role( $type ) ) 
    1355         return apply_filters( 'get_user_type_label', $bb_roles->role_names[$type], $type ); 
     1353    global $wp_roles; 
     1354    if ( $wp_roles->is_role( $type ) ) 
     1355        return apply_filters( 'get_user_type_label', $wp_roles->role_names[$type], $type ); 
    13561356} 
    13571357 
     
    14531453 
    14541454function bb_profile_admin_form( $id = 0 ) { 
    1455     global $bb_roles; 
     1455    global $wp_roles; 
    14561456    if ( !$user = bb_get_user( bb_get_user_id( $id ) ) ) 
    14571457        return; 
     
    14661466    $required = false; 
    14671467 
    1468     $roles = $bb_roles->role_names; 
     1468    $roles = $wp_roles->role_names; 
    14691469    if ( !bb_current_user_can( 'keep_gate' ) ) 
    14701470        unset($roles['keymaster']); 
  • trunk/bb-includes/wp-functions.php

    r978 r1076  
    116116 
    117117    return $unicode; 
    118 } 
    119 endif; 
    120  
    121 if ( !function_exists('sanitize_user') ) : // [WP3795] 
    122 function sanitize_user( $username, $strict = false ) { 
    123     $raw_username = $username; 
    124     $username = strip_tags($username); 
    125     // Kill octets 
    126     $username = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '', $username); 
    127     $username = preg_replace('/&.+?;/', '', $username); // Kill entities 
    128  
    129     // If strict, reduce to ASCII for max portability. 
    130     if ( $strict ) 
    131         $username = preg_replace('|[^a-z0-9 _.\-@]|i', '', $username); 
    132  
    133     return apply_filters('sanitize_user', $username, $raw_username, $strict); 
    134118} 
    135119endif; 
     
    482466endif; 
    483467 
    484 /* Plugin API */ 
    485  
    486 if ( !function_exists('add_filter') ) : // [WP5936] 
    487 function add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) { 
    488     global $wp_filter, $merged_filters; 
    489  
    490     // So the format is wp_filter['tag']['array of priorities']['array of functions serialized']['array of ['array (functions, accepted_args)]'] 
    491     $idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority); 
    492     $wp_filter[$tag][$priority][$idx] = array('function' => $function_to_add, 'accepted_args' => $accepted_args); 
    493     //$wp_filter[$tag][$priority][serialize($function_to_add)] = array('function' => $function_to_add, 'accepted_args' => $accepted_args); 
    494     unset( $merged_filters[ $tag ] ); 
    495     return true; 
    496 } 
    497 endif; 
    498  
    499  
    500 if ( !function_exists('apply_filters') ) : // [WP5857] 
    501 function apply_filters($tag, $string) { 
    502     global $wp_filter, $merged_filters; 
    503  
    504     if ( !isset( $merged_filters[ $tag ] ) ) 
    505         merge_filters($tag); 
    506  
    507     if ( !isset($wp_filter[$tag]) ) 
    508         return $string; 
    509  
    510     reset( $wp_filter[ $tag ] ); 
    511  
    512     $args = func_get_args(); 
    513  
    514     do{ 
    515         foreach( (array) current($wp_filter[$tag]) as $the_ ) 
    516             if ( !is_null($the_['function']) ){ 
    517                 $args[1] = $string; 
    518                 $string = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args'])); 
    519             } 
    520  
    521     } while ( next($wp_filter[$tag]) !== false ); 
    522  
    523     return $string; 
    524 } 
    525 endif; 
    526  
    527 if ( !function_exists('merge_filters') ) : // [WP5202] 
    528 function merge_filters($tag) { 
    529     global $wp_filter, $merged_filters; 
    530  
    531     if ( isset($wp_filter['all']) && is_array($wp_filter['all']) ) 
    532         $wp_filter[$tag] = array_merge($wp_filter['all'], (array) $wp_filter[$tag]); 
    533  
    534     if ( isset($wp_filter[$tag]) ){ 
    535         reset($wp_filter[$tag]); 
    536         uksort($wp_filter[$tag], "strnatcasecmp"); 
    537     } 
    538     $merged_filters[ $tag ] = true; 
    539 } 
    540 endif; 
    541  
    542 if ( !function_exists('remove_filter') ) : // [WP5936] 
    543 function remove_filter($tag, $function_to_remove, $priority = 10, $accepted_args = 1) { 
    544     $function_to_remove = _wp_filter_build_unique_id($tag, $function_to_remove, $priority); 
    545  
    546     $r = isset($GLOBALS['wp_filter'][$tag][$priority][$function_to_remove]); 
    547  
    548     unset($GLOBALS['wp_filter'][$tag][$priority][$function_to_remove]); 
    549     unset($GLOBALS['merged_filters'][$tag]); 
    550  
    551     return $r; 
    552 } 
    553 endif; 
    554  
    555 if ( !function_exists('add_action') ) : // [WP3893] 
    556 function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) { 
    557     add_filter($tag, $function_to_add, $priority, $accepted_args); 
    558 } 
    559 endif; 
    560  
    561 if ( !function_exists('do_action') ) : // [WP5857] 
    562 function do_action($tag, $arg = '') { 
    563     global $wp_filter, $wp_actions; 
    564  
    565     if ( is_array($wp_actions) ) 
    566         $wp_actions[] = $tag; 
    567     else 
    568         $wp_actions = array($tag); 
    569  
    570     $args = array(); 
    571     if ( is_array($arg) && 1 == count($arg) && is_object($arg[0]) ) // array(&$this) 
    572         $args[] =& $arg[0]; 
    573     else 
    574         $args[] = $arg; 
    575     for ( $a = 2; $a < func_num_args(); $a++ ) 
    576         $args[] = func_get_arg($a); 
    577  
    578     merge_filters($tag); 
    579  
    580     if ( !isset($wp_filter[$tag]) ) 
    581         return; 
    582  
    583     do{ 
    584         foreach( (array) current($wp_filter[$tag]) as $the_ ) 
    585             if ( !is_null($the_['function']) ) 
    586                 call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args'])); 
    587  
    588     } while ( next($wp_filter[$tag]) !== false ); 
    589  
    590 } 
    591 endif; 
    592  
    593 if ( !function_exists('do_action_ref_array') ) : // [WP5958] 
    594 function do_action_ref_array($tag, $args) { 
    595     global $wp_filter, $wp_actions; 
    596  
    597     if ( !is_array($wp_actions) ) 
    598         $wp_actions = array($tag); 
    599     else 
    600         $wp_actions[] = $tag; 
    601  
    602     merge_filters($tag); 
    603  
    604     if ( !isset($wp_filter[$tag]) ) 
    605         return; 
    606  
    607     do{ 
    608         foreach( (array) current($wp_filter[$tag]) as $the_ ) 
    609             if ( !is_null($the_['function']) ) 
    610                 call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args'])); 
    611  
    612     } while ( next($wp_filter[$tag]) !== false ); 
    613  
    614 } 
    615 endif; 
    616  
    617 if ( !function_exists('did_action') ) : // [WP5413] 
    618 function did_action($tag) { 
    619     global $wp_actions; 
    620  
    621     if ( empty($wp_actions) ) 
    622         return 0; 
    623  
    624     return count(array_keys($wp_actions, $tag)); 
    625 } 
    626 endif; 
    627  
    628 if ( !function_exists('remove_action') ) : // [WP5393] 
    629 function remove_action($tag, $function_to_remove, $priority = 10, $accepted_args = 1) { 
    630     return remove_filter($tag, $function_to_remove, $priority, $accepted_args); 
    631 } 
    632 endif; 
    633  
    634 if ( !function_exists('_wp_filter_build_unique_id') ) : // [WP6025] 
    635 function _wp_filter_build_unique_id($tag, $function, $priority = 10) 
    636 { 
    637     global $wp_filter; 
    638  
    639     // If function then just skip all of the tests and not overwrite the following. 
    640     // Static Calling 
    641     if( is_string($function) ) 
    642         return $function; 
    643     // Object Class Calling 
    644     else if(is_object($function[0]) ) 
    645     { 
    646         $obj_idx = get_class($function[0]).$function[1]; 
    647         if( is_null($function[0]->wp_filter_id) ) { 
    648             $count = count((array)$wp_filter[$tag][$priority]); 
    649             $function[0]->wp_filter_id = $count; 
    650             $obj_idx .= $count; 
    651             unset($count); 
    652         } else 
    653             $obj_idx .= $function[0]->wp_filter_id; 
    654         return $obj_idx; 
    655     } 
    656     else if( is_string($function[0]) ) 
    657         return $function[0].$function[1]; 
    658 } 
    659 endif; 
    660  
    661468 
    662469/* 
     
    979786    endswitch; 
    980787    return $r; 
    981 } 
    982 endif; 
    983  
    984 if ( !function_exists('is_serialized') ) : // [WP4438] 
    985 function is_serialized($data) { 
    986     // if it isn't a string, it isn't serialized 
    987     if ( !is_string($data) ) 
    988         return false; 
    989     $data = trim($data); 
    990     if ( 'N;' == $data ) 
    991         return true; 
    992     if ( !preg_match('/^([adObis]):/', $data, $badions) ) 
    993         return false; 
    994     switch ( $badions[1] ) : 
    995     case 'a' : 
    996     case 'O' : 
    997     case 's' : 
    998         if ( preg_match("/^{$badions[1]}:[0-9]+:.*[;}]\$/s", $data) ) 
    999             return true; 
    1000         break; 
    1001     case 'b' : 
    1002     case 'i' : 
    1003     case 'd' : 
    1004         if ( preg_match("/^{$badions[1]}:[0-9.E-]+;\$/", $data) ) 
    1005             return true; 
    1006         break; 
    1007     endswitch; 
    1008     return false; 
    1009 } 
    1010 endif; 
    1011  
    1012 if ( !function_exists('is_serialized_string') ) : // [WP4438] 
    1013 function is_serialized_string($data) { 
    1014     // if it isn't a string, it isn't a serialized string 
    1015     if ( !is_string($data) ) 
    1016         return false; 
    1017     $data = trim($data); 
    1018     if ( preg_match('/^s:[0-9]+:.*;$/s',$data) ) // this should fetch all serialized strings 
    1019         return true; 
    1020     return false; 
    1021788} 
    1022789endif; 
  • trunk/bb-settings.php

    r1067 r1076  
    6565    define('BBLANGDIR', BBPATH . BBINC . 'languages/'); // absolute path with trailing slash 
    6666 
     67if ( !defined( 'BACKPRESS_PATH' ) ) 
     68    define( 'BACKPRESS_PATH', BBPATH . BBINC . 'backpress/' ); 
     69 
    6770// Include functions 
     71require( BACKPRESS_PATH . 'functions.core.php' ); 
    6872require( BBPATH . BBINC . 'compat.php'); 
    6973require( BBPATH . BBINC . 'wp-functions.php'); 
    7074require( BBPATH . BBINC . 'functions.php'); 
    71 require( BBPATH . BBINC . 'wp-classes.php'); 
    7275require( BBPATH . BBINC . 'classes.php'); 
     76 
     77// Plugin API 
     78if ( !function_exists( 'add_filter' ) ) 
     79    require( BACKPRESS_PATH . 'functions.plugin-api.php' ); 
     80 
     81// Object Cache 
     82if ( !class_exists( 'WP_Object_Cache' ) ) { 
     83    require( BACKPRESS_PATH . 'class.wp-object-cache.php' ); 
     84    require( BACKPRESS_PATH . 'functions.wp-object-cache.php' ); 
     85} 
     86if ( !isset($wp_object_cache) ) 
     87    $wp_object_cache = new WP_Object_Cache(); 
     88 
     89// Gettext 
    7390if ( defined('BBLANG') && '' != constant('BBLANG') ) { 
    74     include_once(BBPATH . BBINC . 'streams.php'); 
    75     include_once(BBPATH . BBINC . 'gettext.php'); 
    76 } 
     91    if ( !class_exists( 'gettext_reader' ) ) 
     92        require( BACKPRESS_PATH . 'class.gettext-reader.php' ); 
     93    if ( !class_exists( 'StreamReader' ) ) 
     94        require( BACKPRESS_PATH . 'class.streamreader.php' ); 
     95} 
     96 
     97// WP_Error 
     98if ( !class_exists( 'WP_Error' ) ) 
     99    require( BACKPRESS_PATH . 'class.wp-error.php' ); 
     100 
    77101if ( !( defined('DB_NAME') || defined('WP_BB') && WP_BB ) ) {  // Don't include these when WP is running. 
    78102    require( BBPATH . BBINC . 'kses.php'); 
     
    284308 
    285309 
     310/* BackPress */ 
     311 
     312// WP_Users 
     313if ( !class_exists( 'WP_Users' ) ) { 
     314    require( BACKPRESS_PATH . 'class.wp-users.php' ); 
     315    $wp_users_object = new WP_Users( &$bbdb ); 
     316} 
     317 
     318if ( !class_exists( 'BP_Roles' ) ) 
     319    require( BACKPRESS_PATH . 'class.bp-roles.php' ); 
     320 
     321// WP_User 
     322if ( !class_exists( 'WP_User' ) ) 
     323    require( BACKPRESS_PATH . 'class.wp-user.php' ); 
     324 
     325// WP_Auth 
     326if ( !class_exists( 'WP_Auth' ) ) { 
     327    require( BACKPRESS_PATH . 'class.wp-auth.php' ); 
     328    $wp_auth_object = new WP_Auth( $bbdb, array( 
     329        'domain' => $bb->cookiedomain, 
     330        'path' => array( $bb->cookiepath, $bb->sitecookiepath ), 
     331        'name' => $bb->authcookie 
     332    ) ); 
     333} 
     334$bb_current_user =& $wp_auth_object->current; 
     335 
     336// WP_Scripts 
     337if ( !isset($wp_scripts) ) { 
     338    if ( !class_exists( 'WP_Scripts' ) ) { 
     339        require( BACKPRESS_PATH . 'class.wp-scripts.php' ); 
     340        require( BACKPRESS_PATH . 'functions.wp-scripts.php' ); 
     341    } 
     342    $wp_scripts = new WP_Scripts( $bb->uri, bb_get_option( 'version' ) ); 
     343} else { 
     344    bb_default_scripts( &$wp_scripts ); 
     345} 
     346 
     347// WP_Taxonomy 
     348if ( !class_exists( 'WP_Taxonomy' ) ) 
     349    require( BACKPRESS_PATH . 'class.wp-taxonomy.php' ); 
     350if ( !class_exists( 'BB_Taxonomy' ) ) 
     351    require( BBPATH . BBINC . 'class-bb-taxonomy.php' ); 
     352if ( !isset($wp_taxonomy_object) ) { // Clean slate 
     353    $wp_taxonomy_object = new BB_Taxonomy( $bbdb ); 
     354} elseif ( !is_a($wp_taxonomy_object, 'BB_Taxonomy') ) { // exists, but it's not good enough, translate it 
     355    $tax =& $wp_taxonomy_object->taxonomies; // preserve the references 
     356    $wp_taxonomy_object = new BB_Taxonomy( $bbdb ); 
     357    $wp_taxonomy_object->taxonomies =& $tax; 
     358    unset($tax); 
     359} 
     360$wp_taxonomy_object->register_taxonomy( 'bb_topic_tag', 'bb_topic', array( 'hierarchical' => false ) ); 
     361 
    286362// Set the path to the tag pages 
    287363if ( !isset( $bb->tagpath ) ) 
     
    313389$bb_locale = new BB_Locale(); 
    314390 
    315 $bb_roles  = new BB_Roles(); 
     391$bb_roles =& $wp_roles; 
    316392do_action('bb_got_roles', ''); 
    317393 
  • trunk/bb-templates/kakumei/header.php

    r821 r1076  
    2121        var isFav = <?php if ( false === $is_fav = is_user_favorite( bb_get_current_user_info( 'id' ) ) ) echo "'no'"; else echo $is_fav; ?>; 
    2222    </script> 
    23     <?php bb_enqueue_script('topic'); ?> 
     23    <?php wp_enqueue_script('topic'); ?> 
    2424<?php endif; ?> 
    2525 
  • trunk/profile-edit.php

    r1009 r1076  
    2828$user_email = true; 
    2929 
    30 if ($_POST) : 
     30if ( 'post' == strtolower($_SERVER['REQUEST_METHOD']) ) : 
    3131    $_POST = stripslashes_deep( $_POST ); 
    3232    bb_check_admin_referer( 'edit-profile_' . $user_id ); 
     
    7979 
    8080        if ( bb_current_user_can( 'edit_users' ) ) : 
    81             $user_obj = new BB_User( $user->ID ); 
     81            $user_obj = new WP_User( $user->ID ); 
    8282            if ( ( 'keymaster' != $role || bb_current_user_can( 'keep_gate' ) ) && !array_key_exists($role, $user->capabilities) && array_key_exists($role, $bb_roles->roles) ) { 
    8383                $old_role = $user_obj->roles[0]; 
Note: See TracChangeset for help on using the changeset viewer.