mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
fix(gateway): align provider restrictions with provider catalog
This commit is contained in:
@@ -50,6 +50,7 @@ fn auth_snapshot_allows_provider_for_models(
|
||||
auth_snapshot: Option<&crate::data::auth::GatewayAuthApiKeySnapshot>,
|
||||
provider_id: &str,
|
||||
provider_name: &str,
|
||||
provider_type: &str,
|
||||
) -> bool {
|
||||
let Some(allowed) = auth_snapshot
|
||||
.and_then(crate::data::auth::GatewayAuthApiKeySnapshot::effective_allowed_providers)
|
||||
@@ -58,8 +59,12 @@ fn auth_snapshot_allows_provider_for_models(
|
||||
};
|
||||
|
||||
allowed.iter().any(|value| {
|
||||
value.trim().eq_ignore_ascii_case(provider_id.trim())
|
||||
|| value.trim().eq_ignore_ascii_case(provider_name.trim())
|
||||
aether_scheduler_core::provider_matches_allowed_value(
|
||||
value,
|
||||
provider_id,
|
||||
provider_name,
|
||||
provider_type,
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -156,6 +161,7 @@ pub(super) fn filter_rows_for_models(
|
||||
auth_snapshot,
|
||||
&row.provider_id,
|
||||
&row.provider_name,
|
||||
&row.provider_type,
|
||||
)
|
||||
})
|
||||
.filter(|row| auth_snapshot_allows_model_for_models(auth_snapshot, &row.global_model_name))
|
||||
|
||||
@@ -107,6 +107,7 @@ async fn resolve_users_me_allowed_global_model_ids(
|
||||
.filter(|provider| {
|
||||
allowed_provider_names.contains(&provider.id.to_ascii_lowercase())
|
||||
|| allowed_provider_names.contains(&provider.name.to_ascii_lowercase())
|
||||
|| allowed_provider_names.contains(&provider.provider_type.to_ascii_lowercase())
|
||||
})
|
||||
.map(|provider| provider.id)
|
||||
.collect::<Vec<_>>();
|
||||
@@ -286,6 +287,7 @@ pub(super) async fn handle_users_me_providers_get(
|
||||
providers.retain(|provider| {
|
||||
allowed_provider_names.contains(&provider.id.to_ascii_lowercase())
|
||||
|| allowed_provider_names.contains(&provider.name.to_ascii_lowercase())
|
||||
|| allowed_provider_names.contains(&provider.provider_type.to_ascii_lowercase())
|
||||
});
|
||||
}
|
||||
providers.sort_by(|left, right| {
|
||||
|
||||
Reference in New Issue
Block a user