Add ListValidNamePrefixes command to protocol
Some checks failed
Some checks failed
This commit is contained in:
@@ -11,6 +11,7 @@ mod list_all_users;
|
||||
mod list_databases;
|
||||
mod list_privileges;
|
||||
mod list_users;
|
||||
mod list_valid_name_prefixes;
|
||||
mod lock_users;
|
||||
mod modify_privileges;
|
||||
mod passwd_user;
|
||||
@@ -29,6 +30,7 @@ pub use list_all_users::*;
|
||||
pub use list_databases::*;
|
||||
pub use list_privileges::*;
|
||||
pub use list_users::*;
|
||||
pub use list_valid_name_prefixes::*;
|
||||
pub use lock_users::*;
|
||||
pub use modify_privileges::*;
|
||||
pub use passwd_user::*;
|
||||
@@ -68,6 +70,7 @@ pub fn create_client_to_server_message_stream(socket: UnixStream) -> ClientToSer
|
||||
pub enum Request {
|
||||
CheckAuthorization(CheckAuthorizationRequest),
|
||||
|
||||
ListValidNamePrefixes,
|
||||
CompleteDatabaseName(CompleteDatabaseNameRequest),
|
||||
CompleteUserName(CompleteUserNameRequest),
|
||||
|
||||
@@ -95,6 +98,7 @@ pub enum Request {
|
||||
pub enum Response {
|
||||
CheckAuthorization(CheckAuthorizationResponse),
|
||||
|
||||
ListValidNamePrefixes(ListValidNamePrefixesResponse),
|
||||
CompleteDatabaseName(CompleteDatabaseNameResponse),
|
||||
CompleteUserName(CompleteUserNameResponse),
|
||||
|
||||
|
||||
1
src/core/protocol/commands/list_valid_name_prefixes.rs
Normal file
1
src/core/protocol/commands/list_valid_name_prefixes.rs
Normal file
@@ -0,0 +1 @@
|
||||
pub type ListValidNamePrefixesResponse = Vec<String>;
|
||||
@@ -181,6 +181,20 @@ async fn session_handler_with_db_connection(
|
||||
let result = check_authorization(dbs_or_users, unix_user).await;
|
||||
Response::CheckAuthorization(result)
|
||||
}
|
||||
Request::ListValidNamePrefixes => {
|
||||
let mut result = Vec::with_capacity(unix_user.groups.len() + 1);
|
||||
result.push(unix_user.username.to_owned());
|
||||
|
||||
for group in unix_user
|
||||
.groups
|
||||
.iter()
|
||||
.filter(|x| *x != &unix_user.username)
|
||||
{
|
||||
result.push(group.to_owned());
|
||||
}
|
||||
|
||||
Response::ListValidNamePrefixes(result)
|
||||
}
|
||||
Request::CompleteDatabaseName(partial_database_name) => {
|
||||
// TODO: more correct validation here
|
||||
if !partial_database_name
|
||||
|
||||
Reference in New Issue
Block a user