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_databases;
|
||||||
mod list_privileges;
|
mod list_privileges;
|
||||||
mod list_users;
|
mod list_users;
|
||||||
|
mod list_valid_name_prefixes;
|
||||||
mod lock_users;
|
mod lock_users;
|
||||||
mod modify_privileges;
|
mod modify_privileges;
|
||||||
mod passwd_user;
|
mod passwd_user;
|
||||||
@@ -29,6 +30,7 @@ pub use list_all_users::*;
|
|||||||
pub use list_databases::*;
|
pub use list_databases::*;
|
||||||
pub use list_privileges::*;
|
pub use list_privileges::*;
|
||||||
pub use list_users::*;
|
pub use list_users::*;
|
||||||
|
pub use list_valid_name_prefixes::*;
|
||||||
pub use lock_users::*;
|
pub use lock_users::*;
|
||||||
pub use modify_privileges::*;
|
pub use modify_privileges::*;
|
||||||
pub use passwd_user::*;
|
pub use passwd_user::*;
|
||||||
@@ -68,6 +70,7 @@ pub fn create_client_to_server_message_stream(socket: UnixStream) -> ClientToSer
|
|||||||
pub enum Request {
|
pub enum Request {
|
||||||
CheckAuthorization(CheckAuthorizationRequest),
|
CheckAuthorization(CheckAuthorizationRequest),
|
||||||
|
|
||||||
|
ListValidNamePrefixes,
|
||||||
CompleteDatabaseName(CompleteDatabaseNameRequest),
|
CompleteDatabaseName(CompleteDatabaseNameRequest),
|
||||||
CompleteUserName(CompleteUserNameRequest),
|
CompleteUserName(CompleteUserNameRequest),
|
||||||
|
|
||||||
@@ -95,6 +98,7 @@ pub enum Request {
|
|||||||
pub enum Response {
|
pub enum Response {
|
||||||
CheckAuthorization(CheckAuthorizationResponse),
|
CheckAuthorization(CheckAuthorizationResponse),
|
||||||
|
|
||||||
|
ListValidNamePrefixes(ListValidNamePrefixesResponse),
|
||||||
CompleteDatabaseName(CompleteDatabaseNameResponse),
|
CompleteDatabaseName(CompleteDatabaseNameResponse),
|
||||||
CompleteUserName(CompleteUserNameResponse),
|
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;
|
let result = check_authorization(dbs_or_users, unix_user).await;
|
||||||
Response::CheckAuthorization(result)
|
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) => {
|
Request::CompleteDatabaseName(partial_database_name) => {
|
||||||
// TODO: more correct validation here
|
// TODO: more correct validation here
|
||||||
if !partial_database_name
|
if !partial_database_name
|
||||||
|
|||||||
Reference in New Issue
Block a user