summaryrefslogtreecommitdiff
path: root/crates/jmap/src/sieve
diff options
context:
space:
mode:
authorMauro D <mauro@stalw.art>2023-06-02 18:02:35 +0000
committerMauro D <mauro@stalw.art>2023-06-02 18:02:35 +0000
commitc6e45a21e36f7b287afb62b39dd2163040441aed (patch)
tree88a5d97c38865f1aa11f16bfff49264cf906726a /crates/jmap/src/sieve
parent5c8784bc86d7e5847d3af9b327cfe064cc232490 (diff)
Directory implementation - all tests passing
Diffstat (limited to 'crates/jmap/src/sieve')
-rw-r--r--crates/jmap/src/sieve/ingest.rs8
-rw-r--r--crates/jmap/src/sieve/set.rs10
-rw-r--r--crates/jmap/src/sieve/validate.rs6
3 files changed, 13 insertions, 11 deletions
diff --git a/crates/jmap/src/sieve/ingest.rs b/crates/jmap/src/sieve/ingest.rs
index f5c8de2b..3a569ab3 100644
--- a/crates/jmap/src/sieve/ingest.rs
+++ b/crates/jmap/src/sieve/ingest.rs
@@ -78,8 +78,10 @@ impl JMAP {
// Obtain mail from address
let mail_from = if let Some(email) = self
- .get_addresses_by_uid(account_id)
+ .directory
+ .emails_by_id(account_id)
.await
+ .unwrap_or_default()
.into_iter()
.next()
{
@@ -92,8 +94,8 @@ impl JMAP {
instance.set_user_address(&mail_from);
// Set account name
- if let Some(name) = self.get_account_name(account_id).await {
- instance.set_user_full_name(&name);
+ if let Ok(Some(p)) = self.directory.principal_by_id(account_id).await {
+ instance.set_user_full_name(p.description().unwrap_or_else(|| p.name()));
}
// Set envelope
diff --git a/crates/jmap/src/sieve/set.rs b/crates/jmap/src/sieve/set.rs
index a72d8956..80a5c55d 100644
--- a/crates/jmap/src/sieve/set.rs
+++ b/crates/jmap/src/sieve/set.rs
@@ -50,11 +50,11 @@ use store::{
BlobKind,
};
-use crate::{auth::AclToken, JMAP};
+use crate::{auth::AccessToken, JMAP};
struct SetContext<'x> {
account_id: u32,
- acl_token: &'x AclToken,
+ access_token: &'x AccessToken,
response: SetResponse,
}
@@ -73,7 +73,7 @@ impl JMAP {
pub async fn sieve_script_set(
&self,
mut request: SetRequest<SetArguments>,
- acl_token: &AclToken,
+ access_token: &AccessToken,
) -> Result<SetResponse, MethodError> {
let account_id = request.account_id.document_id();
let mut sieve_ids = self
@@ -82,7 +82,7 @@ impl JMAP {
.unwrap_or_default();
let mut ctx = SetContext {
account_id,
- acl_token,
+ access_token,
response: self
.prepare_set_response(&request, Collection::SieveScript)
.await?,
@@ -450,7 +450,7 @@ impl JMAP {
.is_document(ctx.account_id, Collection::SieveScript, *document_id)
}) {
// Check access
- if let Some(mut bytes) = self.blob_download(&blob_id, ctx.acl_token).await? {
+ if let Some(mut bytes) = self.blob_download(&blob_id, ctx.access_token).await? {
// Compile script
match self.sieve_compiler.compile(&bytes) {
Ok(script) => {
diff --git a/crates/jmap/src/sieve/validate.rs b/crates/jmap/src/sieve/validate.rs
index a75c36a3..e28f24bd 100644
--- a/crates/jmap/src/sieve/validate.rs
+++ b/crates/jmap/src/sieve/validate.rs
@@ -29,18 +29,18 @@ use jmap_proto::{
method::validate::{ValidateSieveScriptRequest, ValidateSieveScriptResponse},
};
-use crate::{auth::AclToken, JMAP};
+use crate::{auth::AccessToken, JMAP};
impl JMAP {
pub async fn sieve_script_validate(
&self,
request: ValidateSieveScriptRequest,
- acl_token: &AclToken,
+ access_token: &AccessToken,
) -> Result<ValidateSieveScriptResponse, MethodError> {
Ok(ValidateSieveScriptResponse {
account_id: request.account_id,
error: match self
- .blob_download(&request.blob_id, acl_token)
+ .blob_download(&request.blob_id, access_token)
.await?
.map(|bytes| self.sieve_compiler.compile(&bytes))
{