Multi-tenancy: a new domain's generated DKIM keys count against maxDkimKeys (MT-17)
This commit is contained in:
@@ -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))
|
||||||
|
|||||||
Reference in New Issue
Block a user