Example #1
0
function get_currentuserinfo() {
	global $current_user;
	global $xoopsModule,$xoopsUser,$xoopsUserIsAdmin;


	if ($xoopsModule){
		if ( defined('XMLRPC_REQUEST') && XMLRPC_REQUEST )
			return false;

		if (is_object($xoopsUser)){			// When the user is logging in xoops
			if ( ! empty($current_user) ){
				$xoops_user = $xoopsUser->getVar("uname");
				if ($current_user->user_login == $xoops_user){	// If xoops login user and wordpress current user are the same
					return;
				}
			}
			if (check_xpress_auth_cookie()){	//The cookie is login user's or it checks it
				if (function_exists('wp_validate_auth_cookie')){
					if ( $user = wp_validate_auth_cookie() ) {
						// When the user meta prefix is different according to the change in the xoops data base prefix, it restores it. 
						if (!check_user_meta_prefix($user)){
							repair_user_meta_prefix();
						}
						wp_set_current_user($user);
						return ;
					}
				} else { // for WP2.0					
					if ( !empty($_COOKIE[USER_COOKIE]) && !empty($_COOKIE[PASS_COOKIE])){
						if(wp_login($_COOKIE[USER_COOKIE], $_COOKIE[PASS_COOKIE], true) ) {
							$user_login = $_COOKIE[USER_COOKIE];
							wp_set_current_user(0, $user_login);
							return;
						}
					}
				}
			}				
			return xpress_login();	
		} else {							// For the xoops guest
			if ( ! empty($current_user) ){	// When a current user of wordpress is set, a current user is cleared. 
				wp_set_current_user(0);
				wp_logout();
				wp_clear_auth_cookie();
			}
			return false;
		}
	} else {
		// WP original
		if ( defined('XMLRPC_REQUEST') && XMLRPC_REQUEST )
			return false;

		if ( ! empty($current_user) )
			return;

		if (function_exists('wp_validate_auth_cookie')){
			if ( ! $user = wp_validate_auth_cookie() ) {
				 if ( empty($_COOKIE[LOGGED_IN_COOKIE]) || !$user = wp_validate_auth_cookie($_COOKIE[LOGGED_IN_COOKIE], 'logged_in') ) {
				 	wp_set_current_user(0);
				 	return false;
				 }
			}
			wp_set_current_user($user);
		} else { // for WP2.0
			if ( empty($_COOKIE[USER_COOKIE]) || empty($_COOKIE[PASS_COOKIE]) || 
				!wp_login($_COOKIE[USER_COOKIE], $_COOKIE[PASS_COOKIE], true) ) {
				wp_set_current_user(0);
				return false;
			}
			$user_login = $_COOKIE[USER_COOKIE];
			wp_set_current_user(0, $user_login);
		}
	}
}
Example #2
0
function user_sync_to_wordpress($sync_uid = 0, &$message)
{
    global $xoops_db;
    $db_xoops_users = get_xoops_prefix() . 'users';
    $db_xpress_users = get_wp_prefix() . 'users';
    $message = 'Do Sync';
    if ($sync_uid == 0) {
        $xu_sql = "SELECT uid ,name ,uname ,pass ,email, url, user_regdate, user_aim, user_yim FROM {$db_xoops_users}";
    } else {
        $xu_sql = "SELECT uid ,name ,uname ,pass ,email, url, user_regdate, user_aim, user_yim FROM {$db_xoops_users} WHERE uid = {$sync_uid}";
    }
    $xoops_users = $xoops_db->get_results($xu_sql);
    if (empty($xoops_users)) {
        $message .= '...ERR (' . $xu_sql . ')';
        return false;
    }
    foreach ($xoops_users as $xoops_user) {
        $wp_user_id = get_wp_user_id($xoops_user->uname);
        $roles = get_xoops_group_role($xoops_user->uid);
        $has_role = has_group_role($xoops_user->uid);
        if (!$has_role) {
            if ($sync_uid != 0) {
                if ($wp_user_id) {
                    if ($allway_update) {
                        $message .= '...NOT XPRESS USER ' . $xoops_user->uname;
                        return false;
                    }
                } else {
                    $message .= '...NOT XPRESS USER ' . $xoops_user->uname;
                    return false;
                }
            } else {
                $message .= "...PASS '" . $xoops_user->uname . "'[uid=" . $xoops_user->uid . "](not xpress user)";
                continue;
            }
        }
        $user_regist_time = date('Y-m-d H:i:s', $xoops_user->user_regdate);
        $user_status = 0;
        $user_display_name = empty($xoops_user->name) ? $xoops_user->uname : $xoops_user->name;
        $is_update = false;
        if ($wp_user_id) {
            $new_user = false;
            $wu_sql = "UPDATE {$db_xpress_users} ";
            $wu_sql .= 'SET ';
            $wu_sql .= "user_pass  = '******', ";
            $wu_sql .= "user_email = '{$xoops_user->email}', ";
            $wu_sql .= "user_url = '{$xoops_user->url}', ";
            $wu_sql .= "user_nicename = '{$xoops_user->uname}', ";
            $wu_sql .= "user_registered = '{$user_regist_time}', ";
            $wu_sql .= "user_status = 0 ";
            $wu_sql .= "WHERE (user_login = '******' )";
            $xoops_db->query($wu_sql);
            $message .= set_user_role($wp_user_id, $roles, $new_user);
            if (!check_user_meta_prefix($wp_user_id)) {
                repair_user_meta_prefix();
            }
            $is_update = true;
        } else {
            $new_user = true;
            if (is_used_wp_user_id($xoops_user->uid)) {
                // WP User ID has already been used.
                $wu_sql = "INSERT INTO {$db_xpress_users} ";
                $wu_sql .= "(user_login , user_pass ,user_email , user_url , user_nicename ";
                $wu_sql .= " , user_registered , user_status , display_name) ";
                $wu_sql .= "VALUES ";
                $wu_sql .= "('{$xoops_user->uname}', '{$xoops_user->pass}', '{$xoops_user->email}', '{$xoops_user->url}', '{$xoops_user->uname}' ";
                $wu_sql .= " , '{$user_regist_time}', {$user_status}, '{$user_display_name}')";
                $xoops_db->query($wu_sql);
                $wp_user_id = mysql_insert_id();
            } else {
                // WP User ID has not been used yet.
                $wu_sql = "INSERT INTO {$db_xpress_users} ";
                $wu_sql .= "(ID , user_login , user_pass ,user_email , user_url , user_nicename ";
                $wu_sql .= " , user_registered , user_status , display_name) ";
                $wu_sql .= "VALUES ";
                $wu_sql .= "('{$xoops_user->uid}', '{$xoops_user->uname}', '{$xoops_user->pass}', '{$xoops_user->email}', '{$xoops_user->url}', '{$xoops_user->uname}' ";
                $wu_sql .= " , '{$user_regist_time}', {$user_status}, '{$user_display_name}')";
                $xoops_db->query($wu_sql);
                $wp_user_id = $xoops_user->uid;
            }
            $message .= set_user_role($wp_user_id, $roles, $new_user);
        }
        $user_nickname = empty($xoops_user->name) ? $xoops_user->uname : $xoops_user->name;
        $user_rich_editing = 'true';
        $user_first_name = $xoops_user->uname;
        $user_last_name = '';
        $user_description = '';
        $user_jabber = '';
        update_usermeta($wp_user_id, 'nickname', $user_nickname);
        update_usermeta($wp_user_id, 'first_name', $user_first_name);
        update_usermeta($wp_user_id, 'last_name', $user_last_name);
        update_usermeta($wp_user_id, 'description', $user_description);
        update_usermeta($wp_user_id, 'jabber', $user_jabber);
        update_usermeta($wp_user_id, 'aim', $xoops_user->user_aim);
        update_usermeta($wp_user_id, 'yim', $xoops_user->user_yim);
        if ($is_update === false) {
            update_usermeta($wp_user_id, 'rich_editing', $user_rich_editing);
        }
    }
    $message .= "...END";
    return true;
}