fix: problems with /reg and /whisper and /mod commands
This commit is contained in:
parent
6192875d0d
commit
b7624d765b
1 changed files with 17 additions and 2 deletions
|
|
@ -385,7 +385,7 @@ async fn handle_socket(
|
||||||
let _ = channel_state.tx.send(join_msg);
|
let _ = channel_state.tx.send(join_msg);
|
||||||
|
|
||||||
let user_id = user.id;
|
let user_id = user.id;
|
||||||
let is_guest = user.is_guest();
|
let mut is_guest = user.is_guest();
|
||||||
let tx = channel_state.tx.clone();
|
let tx = channel_state.tx.clone();
|
||||||
|
|
||||||
// Acquire a second dedicated connection for the receive task
|
// Acquire a second dedicated connection for the receive task
|
||||||
|
|
@ -1379,7 +1379,9 @@ async fn handle_socket(
|
||||||
// Fetch updated user info from database
|
// Fetch updated user info from database
|
||||||
match users::get_user_by_id(&pool, user_id).await {
|
match users::get_user_by_id(&pool, user_id).await {
|
||||||
Ok(Some(updated_user)) => {
|
Ok(Some(updated_user)) => {
|
||||||
let is_guest: bool = updated_user.is_guest();
|
// Update the is_guest flag - critical for allowing
|
||||||
|
// newly registered users to send whispers
|
||||||
|
is_guest = updated_user.is_guest();
|
||||||
let display_name = updated_user.display_name.clone();
|
let display_name = updated_user.display_name.clone();
|
||||||
|
|
||||||
tracing::info!(
|
tracing::info!(
|
||||||
|
|
@ -1389,6 +1391,19 @@ async fn handle_socket(
|
||||||
is_guest
|
is_guest
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Update WebSocket state with the new display name
|
||||||
|
// This is critical for whispers and mod commands to find
|
||||||
|
// the user by their new name after registration
|
||||||
|
if let Some(conn) = ws_state.get_user(user_id) {
|
||||||
|
ws_state.register_user(
|
||||||
|
user_id,
|
||||||
|
conn.direct_tx.clone(),
|
||||||
|
conn.realm_id,
|
||||||
|
conn.channel_id,
|
||||||
|
display_name.clone(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Broadcast identity update to all channel members
|
// Broadcast identity update to all channel members
|
||||||
let _ = tx.send(ServerMessage::MemberIdentityUpdated {
|
let _ = tx.send(ServerMessage::MemberIdentityUpdated {
|
||||||
user_id,
|
user_id,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue