✨(template) add new mailbox ability to manage message templates

This commit is contained in:
Sabrina Demagny
2025-10-13 23:16:54 +02:00
parent 58bfbd38da
commit ae1d9db95a
6 changed files with 22 additions and 1 deletions
+6 -1
View File
@@ -5501,6 +5501,10 @@
"manage_labels": {
"type": "boolean",
"description": "Can manage mailbox labels"
},
"manage_message_templates": {
"type": "boolean",
"description": "Can manage mailbox message templates"
}
},
"required": [
@@ -5512,7 +5516,8 @@
"manage_accesses",
"view_messages",
"send_messages",
"manage_labels"
"manage_labels",
"manage_message_templates"
],
"readOnly": true
}
+4
View File
@@ -107,6 +107,10 @@ class MailboxAbilities(models.TextChoices):
CAN_VIEW_MESSAGES = "view_messages", "Can view mailbox messages"
CAN_SEND_MESSAGES = "send_messages", "Can send messages from mailbox"
CAN_MANAGE_LABELS = "manage_labels", "Can manage mailbox labels"
CAN_MANAGE_MESSAGE_TEMPLATES = (
"manage_message_templates",
"Can manage mailbox message templates",
)
class MessageTemplateTypeChoices(models.IntegerChoices):
+2
View File
@@ -611,6 +611,7 @@ class Mailbox(BaseModel):
"view_messages": False,
"send_messages": False,
"manage_labels": False,
"manage_message_templates": False,
}
is_admin = role == MailboxRoleChoices.ADMIN
@@ -629,6 +630,7 @@ class Mailbox(BaseModel):
MailboxAbilities.CAN_VIEW_MESSAGES: has_access,
MailboxAbilities.CAN_SEND_MESSAGES: can_send,
MailboxAbilities.CAN_MANAGE_LABELS: can_modify,
MailboxAbilities.CAN_MANAGE_MESSAGE_TEMPLATES: is_admin,
}
def get_validated_signature(self, signature_id: str):
@@ -388,6 +388,7 @@ class TestMailboxAbilitiesAPI:
assert abilities["view_messages"] is True
assert abilities["send_messages"] is True
assert abilities["manage_labels"] is True
assert abilities["manage_message_templates"] is True
def test_mailbox_list_with_abilities(self, api_client, user, mailbox):
"""Test that mailbox list includes abilities for each mailbox."""
@@ -416,6 +417,7 @@ class TestMailboxAbilitiesAPI:
assert abilities["view_messages"] is True
assert abilities["send_messages"] is False
assert abilities["manage_labels"] is True
assert abilities["manage_message_templates"] is False
def test_mailbox_detail_no_access_abilities(self, api_client, user, mailbox):
"""Test that abilities are correctly set when user has no access to detail."""
@@ -461,6 +463,7 @@ class TestMailboxAbilitiesAPI:
assert abilities["view_messages"] is True
assert abilities["send_messages"] is False
assert abilities["manage_labels"] is False
assert abilities["manage_message_templates"] is False
def test_mailbox_user_role_annotation(self, api_client, user, mailbox):
"""Test that the user_role annotation works correctly."""
@@ -116,6 +116,7 @@ class TestMailboxModelAbilities:
assert abilities["view_messages"] is False
assert abilities["send_messages"] is False
assert abilities["manage_labels"] is False
assert abilities["manage_message_templates"] is False
def test_mailbox_get_abilities_viewer(self, user, mailbox):
"""Test Mailbox.get_abilities when user has viewer access."""
@@ -136,6 +137,7 @@ class TestMailboxModelAbilities:
assert abilities["view_messages"] is True
assert abilities["send_messages"] is False
assert abilities["manage_labels"] is False
assert abilities["manage_message_templates"] is False
def test_mailbox_get_abilities_editor(self, user, mailbox):
"""Test Mailbox.get_abilities when user has editor access."""
@@ -156,6 +158,7 @@ class TestMailboxModelAbilities:
assert abilities["view_messages"] is True
assert abilities["send_messages"] is False
assert abilities["manage_labels"] is True
assert abilities["manage_message_templates"] is False
def test_mailbox_get_abilities_admin(self, user, mailbox):
"""Test Mailbox.get_abilities when user has admin access."""
@@ -176,6 +179,7 @@ class TestMailboxModelAbilities:
assert abilities["view_messages"] is True
assert abilities["send_messages"] is True
assert abilities["manage_labels"] is True
assert abilities["manage_message_templates"] is True
def test_mailbox_get_abilities_sender(self, user, mailbox):
"""Test Mailbox.get_abilities when user has sender access."""
@@ -196,3 +200,4 @@ class TestMailboxModelAbilities:
assert abilities["view_messages"] is True
assert abilities["send_messages"] is True
assert abilities["manage_labels"] is True
assert abilities["manage_message_templates"] is False
@@ -28,4 +28,6 @@ export type MailboxAbilities = {
readonly send_messages: boolean;
/** Can manage mailbox labels */
readonly manage_labels: boolean;
/** Can manage mailbox message templates */
readonly manage_message_templates: boolean;
};