core/protocol: use thiserror, use common authorization error struct
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
use crate::{
|
||||
core::{common::UnixUser, protocol::CheckAuthorizationError, types::DbOrUser},
|
||||
core::{
|
||||
common::UnixUser,
|
||||
protocol::{CheckAuthorizationError, request_validation::AuthorizationError},
|
||||
types::DbOrUser,
|
||||
},
|
||||
server::input_sanitization::{validate_name, validate_ownership_by_unix_user},
|
||||
};
|
||||
|
||||
@@ -10,19 +14,19 @@ pub async fn check_authorization(
|
||||
let mut results = std::collections::BTreeMap::new();
|
||||
|
||||
for db_or_user in dbs_or_users {
|
||||
if let Err(err) = validate_name(db_or_user.name()) {
|
||||
results.insert(
|
||||
db_or_user.clone(),
|
||||
Err(CheckAuthorizationError::SanitizationError(err)),
|
||||
);
|
||||
if let Err(err) = validate_name(db_or_user.name())
|
||||
.map_err(AuthorizationError::SanitizationError)
|
||||
.map_err(CheckAuthorizationError)
|
||||
{
|
||||
results.insert(db_or_user.clone(), Err(err));
|
||||
continue;
|
||||
}
|
||||
|
||||
if let Err(err) = validate_ownership_by_unix_user(db_or_user.name(), unix_user) {
|
||||
results.insert(
|
||||
db_or_user.clone(),
|
||||
Err(CheckAuthorizationError::OwnershipError(err)),
|
||||
);
|
||||
if let Err(err) = validate_ownership_by_unix_user(db_or_user.name(), unix_user)
|
||||
.map_err(AuthorizationError::OwnershipError)
|
||||
.map_err(CheckAuthorizationError)
|
||||
{
|
||||
results.insert(db_or_user.clone(), Err(err));
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user