Skip to content

Commit 887ab71

Browse files
committed
IMAP: Do not return quota resources if no quota is set
1 parent 7285845 commit 887ab71

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

crates/imap/src/op/quota.rs

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
1111
*/
1212

13-
use std::time::Instant;
14-
1513
use crate::{
1614
core::{Session, SessionData},
1715
op::ImapContext,
@@ -28,6 +26,7 @@ use imap_proto::{
2826
},
2927
receiver::Request,
3028
};
29+
use std::time::Instant;
3130

3231
impl<T: SessionStream> Session<T> {
3332
pub async fn handle_get_quota(&mut self, request: Request<Command>) -> trc::Result<()> {
@@ -128,11 +127,15 @@ impl<T: SessionStream> SessionData<T> {
128127
quota_root_items: vec![],
129128
quota_items: vec![QuotaItem {
130129
name: arguments.name,
131-
resources: vec![QuotaResource {
132-
resource: QuotaResourceName::Storage,
133-
total: access_token.quota,
134-
used: used_quota as u64,
135-
}],
130+
resources: if access_token.quota > 0 {
131+
vec![QuotaResource {
132+
resource: QuotaResourceName::Storage,
133+
total: access_token.quota,
134+
used: used_quota as u64,
135+
}]
136+
} else {
137+
vec![]
138+
},
136139
}],
137140
};
138141

@@ -188,11 +191,15 @@ impl<T: SessionStream> SessionData<T> {
188191
quota_root_items: vec![arguments.name, format!("#{account_id}")],
189192
quota_items: vec![QuotaItem {
190193
name: format!("#{account_id}"),
191-
resources: vec![QuotaResource {
192-
resource: QuotaResourceName::Storage,
193-
total: access_token.quota,
194-
used: used_quota as u64,
195-
}],
194+
resources: if access_token.quota > 0 {
195+
vec![QuotaResource {
196+
resource: QuotaResourceName::Storage,
197+
total: access_token.quota,
198+
used: used_quota as u64,
199+
}]
200+
} else {
201+
vec![]
202+
},
196203
}],
197204
};
198205

0 commit comments

Comments
 (0)