(mail) manage mailboxes permissions

Manage create and list permissions for all roles.
This commit is contained in:
Sabrina Demagny
2024-08-06 00:04:51 +02:00
parent 87e7d3e0b1
commit b637774179
8 changed files with 236 additions and 63 deletions

View File

@@ -16,6 +16,8 @@ class MailboxSerializer(serializers.ModelSerializer):
class MailDomainSerializer(serializers.ModelSerializer):
"""Serialize mail domain."""
abilities = serializers.SerializerMethodField(read_only=True)
class Meta:
model = models.MailDomain
lookup_field = "slug"
@@ -23,16 +25,25 @@ class MailDomainSerializer(serializers.ModelSerializer):
"id",
"name",
"slug",
"abilities",
"created_at",
"updated_at",
]
read_only_fields = [
"id",
"slug",
"abilities",
"created_at",
"updated_at",
]
def get_abilities(self, domain) -> dict:
"""Return abilities of the logged-in user on the instance."""
request = self.context.get("request")
if request:
return domain.get_abilities(request.user)
return {}
class MailDomainAccessSerializer(serializers.ModelSerializer):
"""Serialize mail domain accesses."""