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'); }
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)); } } }