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