Access token permissions

This commit is contained in:
mdecimus
2024-09-10 18:44:44 +02:00
parent 08a95ae58b
commit fbcf55d8e1
128 changed files with 2415 additions and 906 deletions

View File

@@ -4,7 +4,7 @@
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
use directory::QueryBy;
use directory::{backend::internal::PrincipalField, QueryBy};
use jmap_proto::{
method::get::{GetRequest, GetResponse, RequestArguments},
object::Object,
@@ -125,7 +125,8 @@ impl JMAP {
.await
.caused_by(trc::location!())?
.unwrap_or_default();
if principal.emails.is_empty() {
let num_emails = principal.field_len(PrincipalField::Emails);
if num_emails == 0 {
return Ok(identity_ids);
}
@@ -136,14 +137,14 @@ impl JMAP {
// Create identities
let name = principal
.description
.unwrap_or(principal.name)
.description()
.unwrap_or(principal.name())
.trim()
.to_string();
let has_many = principal.emails.len() > 1;
for (idx, email) in principal.emails.into_iter().enumerate() {
let has_many = num_emails > 1;
for (idx, email) in principal.iter_str(PrincipalField::Emails).enumerate() {
let document_id = idx as u32;
let email = sanitize_email(&email).unwrap_or_default();
let email = sanitize_email(email).unwrap_or_default();
if email.is_empty() {
continue;
}

View File

@@ -4,7 +4,7 @@
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
use directory::QueryBy;
use directory::{backend::internal::PrincipalField, QueryBy};
use jmap_proto::{
error::set::SetError,
method::set::{RequestArguments, SetRequest, SetResponse},
@@ -61,11 +61,9 @@ impl JMAP {
.storage
.directory
.query(QueryBy::Id(account_id), false)
.await
.await?
.unwrap_or_default()
.unwrap_or_default()
.emails
.contains(email)
.has_str_value(PrincipalField::Emails, email)
{
response.not_created.append(
id,