diff --git a/meilisearch-auth/src/lib.rs b/meilisearch-auth/src/lib.rs index d27d98b4d..43183d4cf 100644 --- a/meilisearch-auth/src/lib.rs +++ b/meilisearch-auth/src/lib.rs @@ -173,28 +173,13 @@ impl AuthController { pub struct AuthFilter { pub search_rules: SearchRules, pub allow_index_creation: bool, - master_key_missing: bool, } -impl AuthFilter { - pub fn with_no_master_key() -> AuthFilter { - AuthFilter { - search_rules: SearchRules::default(), - allow_index_creation: true, - master_key_missing: true, - } - } - - pub fn is_missing_master_key(&self) -> bool { - self.master_key_missing - } -} impl Default for AuthFilter { fn default() -> Self { Self { search_rules: SearchRules::default(), allow_index_creation: true, - master_key_missing: false, } } } diff --git a/meilisearch-http/src/extractors/authentication/mod.rs b/meilisearch-http/src/extractors/authentication/mod.rs index 18093b666..7497d6377 100644 --- a/meilisearch-http/src/extractors/authentication/mod.rs +++ b/meilisearch-http/src/extractors/authentication/mod.rs @@ -48,22 +48,23 @@ impl
GuardedData
{
where
P: Policy + 'static,
{
+ let auth_clone = auth.clone();
+ let master_key: Option<&String> = auth_clone.get_master_key();
+
match Self::authenticate(auth, String::new(), None).await? {
Some(filters) => match data {
- Some(data) => {
- if filters.is_missing_master_key() {
- Err(AuthenticationError::MissingMasterKey.into())
- } else {
- Ok(Self {
- data,
- filters,
- _marker: PhantomData,
- })
- }
- }
+ Some(data) => Ok(Self {
+ data,
+ filters,
+ _marker: PhantomData,
+ }),
+
None => Err(AuthenticationError::IrretrievableState.into()),
},
- None => Err(AuthenticationError::MissingAuthorizationHeader.into()),
+ None => match master_key {
+ Some(_) => Err(AuthenticationError::MissingAuthorizationHeader.into()),
+ None => Err(AuthenticationError::MissingMasterKey.into()),
+ },
}
}
@@ -177,9 +178,6 @@ pub mod policies {
token: &str,
index: Option<&str>,
) -> Option