Exemplo n.º 1
0
 function pre_can_user($verdict, $args)
 {
     if (!class_exists('BP_Roles')) {
         require_once BACKPRESS_PATH . 'class.bp-roles.php';
     }
     if (!class_exists('BP_User')) {
         require_once BACKPRESS_PATH . 'class.bp-user.php';
     }
     $user = new BP_User($args['user_id']);
     // 78 = global.wordpress.org. Administrators on this site are considered global admins in GlotPress.
     if (!empty($user->ros_78_capabilities) && is_array($user->ros_78_capabilities) && !empty($user->ros_78_capabilities['administrator'])) {
         return true;
     }
     if ($args['action'] !== 'approve' || !in_array($args['object_type'], array('project|locale|set-slug', 'translation-set'))) {
         return false;
     }
     if (!($locale_slug = $this->get_locale_slug($args['object_type'], $args['object_id']))) {
         return false;
     }
     if (!($maybe_cap_key = $this->get_cap_key($locale_slug))) {
         return false;
     }
     $user->cap_key = $maybe_cap_key;
     $user->caps =& $user->{$user->cap_key};
     if (!is_array($user->caps)) {
         $user->caps = array();
     }
     $user->get_role_caps();
     foreach (array('administrator', 'editor', 'author', 'contributor', 'validator') as $role) {
         if ($user->has_cap($role)) {
             return true;
         }
     }
     return false;
 }
Exemplo n.º 2
0
 // Sanitize the profile info keys and check for missing required data
 foreach ($profile_info_keys as $key => $label) {
     ${$key} = apply_filters('sanitize_profile_info', $_POST[$key], $key, $_POST[$key]);
     if (!${$key} && $label[0] == 1) {
         $errors->add($key, sprintf(__('%s is required.'), esc_html($label[1])));
         ${$key} = false;
     }
 }
 // Find out if we have a valid email address
 if (isset($user_email) && !($user_email = is_email($user_email))) {
     $errors->add('user_email', __('Invalid email address'), array('data' => $_POST['user_email']));
 }
 // Deal with errors for users who can edit others data
 if (bb_current_user_can('edit_users')) {
     // Get the user object
     $user_obj = new BP_User($user->ID);
     // If we are deleting just do it and redirect
     if (isset($_POST['delete-user']) && $_POST['delete-user'] && $bb_current_id != $user->ID) {
         if (!bb_current_user_can('keep_gate') && 'keymaster' == $user_obj->roles[0]) {
             /* Only a keymaster can delete another keymaster */
             $errors->add('delete', __('You can not delete this user!'));
         } else {
             bb_delete_user($user->ID);
             nxt_redirect(bb_get_uri(null, null, BB_URI_CONTEXT_HEADER));
             exit;
         }
     }
     // Store the new role
     $role = $_POST['role'];
     // Deal with errors with the role
     if (!isset($nxt_roles->role_objects[$role])) {
Exemplo n.º 3
0
function bb_can_access_tab($profile_tab, $viewer_id, $owner_id)
{
    global $bb_current_user;
    $viewer_id = (int) $viewer_id;
    $owner_id = (int) $owner_id;
    if ($viewer_id == bb_get_current_user_info('id')) {
        $viewer =& $bb_current_user;
    } else {
        $viewer = new BP_User($viewer_id);
    }
    if (!$viewer) {
        return '' === $profile_tab[2];
    }
    if ($owner_id == $viewer_id) {
        if ('' === $profile_tab[1]) {
            return true;
        } else {
            return $viewer->has_cap($profile_tab[1]);
        }
    } else {
        if ('' === $profile_tab[2]) {
            return true;
        } else {
            return $viewer->has_cap($profile_tab[2]);
        }
    }
}
Exemplo n.º 4
0
 function nxt_User($id, $name = '')
 {
     return parent::BP_User($id, $name);
 }
Exemplo n.º 5
0
 function BP_User($id, $name = '')
 {
     parent::WP_User($id, $name);
 }
/**
 * Handles the resetting of users' passwords
 *
 * Handles resetting a user's password, prompted by an email sent by
 * {@see bb_reset_email()}
 *
 * @since 0.7.2
 * @global bbdb $bbdb
 *
 * @param string $key
 * @return unknown
 */
function bb_reset_password($key)
{
    global $bbdb;
    $key = sanitize_user($key, true);
    if (empty($key)) {
        return new WP_Error('key_not_found', __('Key not found.'));
    }
    if (!($user_id = $bbdb->get_var($bbdb->prepare("SELECT user_id FROM {$bbdb->usermeta} WHERE meta_key = 'newpwdkey' AND meta_value = %s", $key)))) {
        return new WP_Error('key_not_found', __('Key not found.'));
    }
    if ($user = new BP_User($user_id)) {
        if (bb_has_broken_pass($user->ID)) {
            bb_block_current_user();
        }
        if (!$user->has_cap('change_user_password', $user->ID)) {
            return new WP_Error('permission_denied', __('You are not allowed to change your password.'));
        }
        $newpass = bb_generate_password();
        bb_update_user_password($user->ID, $newpass);
        if (!bb_send_pass($user->ID, $newpass)) {
            return new WP_Error('sending_mail_failed', __('The email containing the new password could not be sent.'));
        } else {
            bb_update_usermeta($user->ID, 'newpwdkey', '');
            return true;
        }
    } else {
        return new WP_Error('key_not_found', __('Key not found.'));
    }
}
Exemplo n.º 7
0
        bb_update_meta($uid, 'first_name', $first_name, 'user');
        bb_update_meta($uid, 'last_name', $last_name, 'user');
    }
    // Add users location, occupation, interests, timezone
    bb_update_meta($uid, 'from', $obj->location, 'user');
    bb_update_meta($uid, 'occ', $obj->occupation, 'user');
    bb_update_meta($uid, 'interest', $obj->interests, 'user');
    bb_update_meta($uid, 'time_zone', $obj->time_zone, 'user');
    echo "Update user meta info <br/>";
    // Update users joined date and alias
    $date = date('Y-m-d H:i:s', $obj->join_date);
    $sql1 = "UPDATE wp_users SET user_registered = '{$date}', display_name = '{$obj->alias}' WHERE ID = {$uid}";
    $bbdb->query($sql1);
    // Update users role
    switch ($obj->level_id) {
        case 1:
            $role = 'seniormember';
            break;
        case 2:
            $role = 'member';
            break;
        case 3:
            $role = 'juniormember';
            break;
    }
    $user_obj = new BP_User($uid);
    $user_obj->set_role($role);
    # insert into map_users (fud_users_id, bb_users_ID) values (10213, 9580);
    $sql2 = "INSERT INTO map_users (fud_users_id, bb_users_ID) values ({$obj->id}, {$uid})";
    $bbdb->query($sql2);
}
function bb_anon_activate_plugin()
{
    global $bbdb;
    $bbdb->query("INSERT INTO {$bbdb->users} (user_login,user_nicename, user_registered) VALUES ('anonymous','Anonymous', '" . bb_current_time('mysql') . "')");
    if ($anon_id = bb_get_option('bb_anon_user_id')) {
        $bbdb->query("UPDATE {$bbdb->users} SET ID = {$anon_id} where ID = " . $bbdb->insert_id);
    } else {
        $anon_id = $bbdb->insert_id;
        bb_update_option('bb_anon_user_id', $anon_id);
    }
    $user = new BP_User($anon_id);
    $user->add_role('anonymous');
    $user->remove_role('member');
    $user->add_cap('anonymous');
    $user->remove_cap('member');
}