summaryrefslogtreecommitdiff
path: root/crates/imap/src/op/namespace.rs
diff options
context:
space:
mode:
authormdecimus <mauro@stalw.art>2024-09-10 18:44:44 +0200
committermdecimus <mauro@stalw.art>2024-09-10 18:44:44 +0200
commitfbcf55d8e1891b72499fed7d5ff54964c8a2f256 (patch)
treec6f18add7f0b62ce3bb6848c1b8b9e68c4eb4e5e /crates/imap/src/op/namespace.rs
parent08a95ae58b451dbc2284ed7ac2d413185bc879fe (diff)
Access token permissions
Diffstat (limited to 'crates/imap/src/op/namespace.rs')
-rw-r--r--crates/imap/src/op/namespace.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/crates/imap/src/op/namespace.rs b/crates/imap/src/op/namespace.rs
index 3935955e..0f9ed1ac 100644
--- a/crates/imap/src/op/namespace.rs
+++ b/crates/imap/src/op/namespace.rs
@@ -6,6 +6,7 @@
use crate::core::Session;
use common::listener::SessionStream;
+use directory::Permission;
use imap_proto::{
protocol::{namespace::Response, ImapResponse},
receiver::Request,
@@ -14,6 +15,9 @@ use imap_proto::{
impl<T: SessionStream> Session<T> {
pub async fn handle_namespace(&mut self, request: Request<Command>) -> trc::Result<()> {
+ // Validate access
+ self.assert_has_permission(Permission::ImapNamespace)?;
+
trc::event!(
Imap(trc::ImapEvent::Namespace),
SpanId = self.session_id,