Add token auth and room leaves

This commit is contained in:
2026-05-30 18:20:17 -07:00
parent 44f8c3a625
commit 53398bf4ea
+20 -14
View File
@@ -65,13 +65,20 @@ impl SignedClientMessage {
unimplemented!()
}
}
#[derive(Serialize,Deserialize,Clone,Debug)]
pub enum AuthMethod {
Password(String),
Token(String)
}
#[derive(Serialize,Deserialize,Clone,Debug)]
pub enum ClientMessage {
Auth{
username: String,
password: String
password: AuthMethod
},
// Create a token with a default expiry window
CreateToken,
// Maybe ask for email too? Or a potential invite code
UserCreate {
username: String,
@@ -222,6 +229,9 @@ pub enum ClientMessage {
RoomJoin {
room_id: RoomId,
},
RoomLeave {
room_id: RoomId,
},
RoomCreate {
room_id: RoomId,
},
@@ -242,20 +252,12 @@ impl ClientMessage<> {
use ClientMessage::*;
match self {
MediaUpload{bytes: _}
| Auth{
username: _,
password: _
}
| UserCreate {
username: _,
password: _,
}
| Auth { .. }
| CreateToken { .. }
| UserCreate { .. }
// Groups can only be created locally. However, you can still
// grant admin permissions to users on other servers
| GroupCreate {
users: _,
group: _,
} => false,
| GroupCreate { .. } => false,
// In the future challenges might be forwardable but right now they are
// only used for signups and auth is local.
//| ChallengeAnswer {
@@ -310,6 +312,8 @@ impl ClientMessage<> {
}
}
//TODO: Implement thiserror for both of these for better info
#[derive(Serialize,Deserialize,Debug)]
pub enum ServerError {
InvalidPermission,
@@ -324,6 +328,7 @@ pub enum ServerError {
RoomNotFound(RoomId),
ValueNotFound(StatePath),
MismatchedTypes,
TokenExpired,
DeleteNotEmpty(StatePath),
RemoveLastOwner,
MessageNotForwardable,
@@ -334,7 +339,7 @@ pub enum ServerError {
}
#[derive(Serialize,Deserialize)]
#[derive(Serialize,Deserialize,Debug)]
pub enum ServerMessage {
// Returned on fetch or naturally from subscribe
// This should be
@@ -348,5 +353,6 @@ pub enum ServerMessage {
// Returned on subscribe, forwards state change message to client
StateChange(TaggedMessage),
OkMessage(MessageId),
Token(String),
Ok,
}