Ejemplo n.º 1
0
function bituser_api_handler($pMethod, $pRequest)
{
    global $gApi, $gBitSystem, $gBitSmarty, $gBitUser;
    switch ($pMethod) {
        case 'POST':
            //		case 'PUT':
            $newUser = new BitUser();
            if ($newUser->register($pRequest)) {
                $gApi->outputJson(200, $newUser->mInfo);
            } else {
                $gApi->outputJson(HttpStatusCodes::HTTP_CONFLICT, $newUser->mErrors);
            }
            break;
        case 'GET':
            $gApi->verifyAuthorization();
            $gContent =& $gBitUser;
            $gContent->verifyViewPermission();
            $gApi->outputJson(HttpStatusCodes::HTTP_OK, $gContent->mInfo);
            break;
        case 'DELETE':
            $gApi->verifyAuthorization();
            if ($gContent->hasAdminPermission()) {
                //	if( is_a( $gContent, 'BitUser' ) && $gContent->isValid() ) {
                $gContent->verifyExpungePermission();
                //  }
            }
            break;
    }
    $gBitSystem->display('bitpackage:api/api_json_output.tpl');
}
Ejemplo n.º 2
0
function migrate_wp_users()
{
    global $wpdb, $gBitSystem, $gBitSmarty, $gUserMap, $gErrorMap, $gMaxUser;
    // Get everybody with a post
    $query = "select distinct(u.ID) from " . $wpdb->table_prefix . "wp_users u INNER JOIN " . $wpdb->table_prefix . "wp_comments c ON (u.ID = c.user_id) WHERE u.ID != 1";
    $post_users = $wpdb->get_results($query, ARRAY_A);
    // Get everybody with a comment
    $query = "select distinct(u.ID) from " . $wpdb->table_prefix . "wp_users u INNER JOIN " . $wpdb->table_prefix . "wp_posts p ON (u.ID = p.post_author) WHERE u.ID != 1";
    $comment_users = $wpdb->get_results($query, ARRAY_A);
    $users = array();
    foreach ($post_users as $key => $data) {
        $users[$data['ID']] = $data['ID'];
    }
    foreach ($comment_users as $key => $data) {
        $users[$data['ID']] = $data['ID'];
    }
    // Get info on everybody except the admin
    $query = "select ID, user_login AS login, user_pass AS password, display_name AS real_name, user_email AS email, user_registered, user_pass AS hash from " . $wpdb->table_prefix . "wp_users WHERE ID != 1 AND ID IN (" . implode(",", $users) . ") AND ID > {$gMaxUser}";
    $user_data = $wpdb->get_results($query);
    //  vd($user_data);
    if (!empty($user_data)) {
        foreach ($user_data as $data) {
            $bu = new BitUser();
            $pParamHash = array();
            // Strip out characters that bitweaver doesn't support in logins.
            preg_match_all('/[A-Za-z0-9_-]*/', $data->login, $matches);
            //    vd($matches);
            $pParamHash['login'] = implode("", $matches[0]);
            $pParamHash['password'] = $gBitSystem->genPass();
            $pParamHash['hash'] = $data->hash;
            $pParamHash['real_name'] = $data->real_name;
            $pParamHash['email'] = $data->email;
            // Mash user_registered into the right format
            $pParamHash['registration_date'] = $gBitSystem->mServerTimestamp->getTimestampFromIso($data->user_registered);
            //  vd($pParamHash);
            $bu->register($pParamHash);
            if (empty($bu->mErrors)) {
                //      vd($bu->mUserId);
                $gUserMap[$data->ID] = $bu->mUserId;
                $gBitSystem->mDb->query("UPDATE `" . BIT_DB_PREFIX . "users_users` SET hash = ? where user_id = ?", array($pParamHash['hash'], $bu->mUserId));
            } else {
                $gErrorMap[] = array('error' => "User ID: " . $pParamHash['login'] . " : " . implode(', ', $bu->mErrors));
                //      vd($bu->mErrors);
            }
        }
    }
    //  vd("Map.");
    //  vd($gUserMap);
    $sql = "INSERT INTO `" . BIT_DB_PREFIX . "blogs_wp_users` (`wp_id`, `user_id`) VALUES (?, ?)";
    foreach ($gUserMap as $wp_id => $user_id) {
        if ($wp_id > $gMaxUser) {
            $gBitSystem->mDb->query($sql, array($wp_id, $user_id));
        }
    }
}