fix(core/database): store member during permission query

This commit is contained in:
Paul Makles
2023-10-20 18:16:55 +01:00
committed by Paul Makles
parent 96d90215d2
commit 21ffea0f9f
3 changed files with 81 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
use std::num::NonZeroUsize;
use revolt_result::{create_error, Error, Result};
use revolt_result::{create_error, Result};
use async_std::sync::Mutex;
use once_cell::sync::Lazy;

View File

@@ -120,11 +120,15 @@ impl PermissionQuery for DatabasePermissionQuery<'_> {
if let Some(server) = &self.server {
if self.member.is_some() {
true
} else if let Ok(member) = self
.database
.fetch_member(&server.id, &self.perspective.id)
.await
{
self.member = Some(Cow::Owned(member));
true
} else {
self.database
.fetch_member(&server.id, &self.perspective.id)
.await
.is_ok()
false
}
} else {
false