Multi-tenancy: a new domain's generated DKIM keys count against maxDkimKeys (MT-17)

This commit is contained in:
2026-09-18 15:28:59 -07:00
parent 2cbecac415
commit 05ee6ac2be
+16 -1
View File
@@ -25,7 +25,7 @@ use registry::{
schema::{ schema::{
enums::TenantStorageQuota, enums::TenantStorageQuota,
prelude::{Object, ObjectInner, Property}, prelude::{Object, ObjectInner, Property},
structs::{Account, Domain, Tenant}, structs::{Account, DkimManagement, Domain, Tenant},
}, },
types::{EnumImpl, id::ObjectId}, types::{EnumImpl, id::ObjectId},
}; };
@@ -126,6 +126,21 @@ pub async fn check(
{ {
return Ok(Err(over_quota(reached, tenant_id))); return Ok(Err(over_quota(reached, tenant_id)));
} }
// A new domain's generated DKIM keys, one per algorithm, count too (MT-9)
if let ObjectInner::Domain(Domain {
dkim_management: DkimManagement::Automatic(dkim),
..
}) = &new.inner
{
let quota = TenantStorageQuota::MaxDkimKeys;
let keys = dkim.algorithms.iter().count() as u64;
if let Err(reached) =
quota::check(registry, tenant_id.document_id(), quota, limit(quota), keys).await?
{
return Ok(Err(over_quota(reached, tenant_id)));
}
}
} }
Ok(Ok(after)) Ok(Ok(after))