Add token auth and room leaves
This commit is contained in:
+20
-14
@@ -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,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user