fix(admin): clarify invalid group name errors (#5986)

This commit is contained in:
GatewayJ
2026-08-12 20:44:35 +08:00
committed by GitHub
parent 3b49842df0
commit 4c44bc649a
3 changed files with 65 additions and 5 deletions
+1 -1
View File
@@ -619,7 +619,7 @@ impl Operation for UpdateGroupMembers {
&& is_err_no_such_group(&err)
&& has_space_be(&args.group)
{
return Err(s3_error!(InvalidArgument, "group not found"));
return Err(s3_error!(InvalidArgument, "group name contains whitespace"));
}
iam_store
+13 -3
View File
@@ -23,9 +23,10 @@ pub(crate) fn iam_error_to_s3_error(err: IamError) -> S3Error {
| IamError::NoSuchTempAccount(_)
| IamError::NoSuchGroup(_)
| IamError::NoSuchPolicy => S3ErrorCode::NoSuchResource,
IamError::InvalidAccessKeyLength | IamError::InvalidSecretKeyLength | IamError::AccessKeyAlreadyExists => {
S3ErrorCode::InvalidArgument
}
IamError::InvalidAccessKeyLength
| IamError::InvalidSecretKeyLength
| IamError::AccessKeyAlreadyExists
| IamError::GroupNameContainsReservedChars => S3ErrorCode::InvalidArgument,
_ => S3ErrorCode::InternalError,
};
@@ -75,6 +76,15 @@ mod tests {
assert_eq!(s3_error.message(), Some("access key is already in use"));
}
#[test]
fn reserved_group_name_maps_to_invalid_argument() {
let s3_error = iam_error_to_s3_error(IamError::GroupNameContainsReservedChars);
assert_eq!(s3_error.code(), &S3ErrorCode::InvalidArgument);
assert_eq!(s3_error.status_code(), Some(http::StatusCode::BAD_REQUEST));
assert_eq!(s3_error.message(), Some("group name contains reserved characters =,"));
}
#[test]
fn non_validation_iam_errors_remain_internal_errors() {
let s3_error = iam_error_to_s3_error(IamError::IamSysNotInitialized);