Allow local access tokens to be used with OIDC backends (closes #1311 closes stalwartlabs/webadmin#52)
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
use common::{Server, storage::index::ObjectIndexBuilder};
|
||||
use directory::QueryBy;
|
||||
use directory::QueryParams;
|
||||
use email::identity::{ArchivedEmailAddress, Identity};
|
||||
use jmap_proto::{
|
||||
method::get::{GetRequest, GetResponse, RequestArguments},
|
||||
@@ -147,7 +147,7 @@ impl IdentityGet for Server {
|
||||
.core
|
||||
.storage
|
||||
.directory
|
||||
.query(QueryBy::Id(account_id), false)
|
||||
.query(QueryParams::id(account_id).with_return_member_of(false))
|
||||
.await
|
||||
.caused_by(trc::location!())?
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
use common::{Server, storage::index::ObjectIndexBuilder};
|
||||
use directory::QueryBy;
|
||||
use directory::QueryParams;
|
||||
use email::identity::{EmailAddress, Identity};
|
||||
use jmap_proto::{
|
||||
error::set::SetError,
|
||||
@@ -61,7 +61,7 @@ impl IdentitySet for Server {
|
||||
if !identity.email.is_empty() {
|
||||
if self
|
||||
.directory()
|
||||
.query(QueryBy::Id(account_id), false)
|
||||
.query(QueryParams::id(account_id).with_return_member_of(false))
|
||||
.await?
|
||||
.is_none_or(|p| !p.emails.iter().any(|e| e == &identity.email))
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
use common::Server;
|
||||
use directory::QueryBy;
|
||||
use directory::QueryParams;
|
||||
use jmap_proto::{
|
||||
method::get::{GetRequest, GetResponse, RequestArguments},
|
||||
types::{
|
||||
@@ -65,7 +65,7 @@ impl PrincipalGet for Server {
|
||||
.core
|
||||
.storage
|
||||
.directory
|
||||
.query(QueryBy::Id(id.document_id()), false)
|
||||
.query(QueryParams::id(id.document_id()).with_return_member_of(false))
|
||||
.await?
|
||||
{
|
||||
principal
|
||||
|
||||
@@ -4,17 +4,16 @@
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
|
||||
*/
|
||||
|
||||
use crate::JmapMethods;
|
||||
use common::Server;
|
||||
use directory::QueryBy;
|
||||
use directory::QueryParams;
|
||||
use http_proto::HttpSessionData;
|
||||
use jmap_proto::{
|
||||
method::query::{Filter, QueryRequest, QueryResponse, RequestArguments},
|
||||
types::{collection::Collection, state::State},
|
||||
};
|
||||
use store::{query::ResultSet, roaring::RoaringBitmap};
|
||||
|
||||
use crate::JmapMethods;
|
||||
use std::future::Future;
|
||||
use store::{query::ResultSet, roaring::RoaringBitmap};
|
||||
|
||||
pub trait PrincipalQuery: Sync + Send {
|
||||
fn principal_query(
|
||||
@@ -45,7 +44,7 @@ impl PrincipalQuery for Server {
|
||||
.core
|
||||
.storage
|
||||
.directory
|
||||
.query(QueryBy::Name(name.as_str()), false)
|
||||
.query(QueryParams::name(name.as_str()).with_return_member_of(false))
|
||||
.await?
|
||||
{
|
||||
if is_set || result_set.results.contains(principal.id()) {
|
||||
|
||||
Reference in New Issue
Block a user