core/protocol: use thiserror, use common authorization error struct

This commit is contained in:
2025-12-15 14:25:22 +09:00
parent 1991e7bfd8
commit bf6027f507
23 changed files with 367 additions and 317 deletions

View File

@@ -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;
}