From 356b4e80baa243c55859d09ba8ee48a5e5c13300 Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Fri, 14 Feb 2025 12:46:56 +0100 Subject: [PATCH 1/3] Allow unauthenticated users to query public domains --- aleksis/apps/postbuero/schema.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/aleksis/apps/postbuero/schema.py b/aleksis/apps/postbuero/schema.py index 27762b8..9e7bcab 100644 --- a/aleksis/apps/postbuero/schema.py +++ b/aleksis/apps/postbuero/schema.py @@ -128,9 +128,13 @@ class Query(graphene.ObjectType): @staticmethod def resolve_mail_domains_for_user(root, info, **kwargs): - mail_domains = get_objects_for_user( - info.context.user, "postbuero.can_use_domain", MailDomain.objects.all() - ).union(MailDomain.objects.filter(is_public=True)) + mail_domains = MailDomain.objects.filter(is_public=True) + if not info.context.user.is_anonymous: + mail_domains = mail_domains.union( + get_objects_for_user( + info.context.user, "postbuero.can_use_domain", MailDomain.objects.all() + ) + ) return mail_domains @staticmethod -- GitLab From 4bee4dc3bb757aa49bfda8e360b62111e89d962a Mon Sep 17 00:00:00 2001 From: magicfelix <felix@felix-zauberer.de> Date: Fri, 14 Feb 2025 13:50:19 +0100 Subject: [PATCH 2/3] Add MailAddressInputType --- aleksis/apps/postbuero/schema.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/aleksis/apps/postbuero/schema.py b/aleksis/apps/postbuero/schema.py index 9e7bcab..e98cc55 100644 --- a/aleksis/apps/postbuero/schema.py +++ b/aleksis/apps/postbuero/schema.py @@ -27,6 +27,11 @@ class MailAddressType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType) filter_fields = {"domain": ["in"]} +class MailAddressInputType(graphene.InputObjectType): + local_part = graphene.String(required=True) + domain = graphene.ID(required=True) + + class MailDomainType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType): class Meta: model = MailDomain -- GitLab From 50d4d6cf4d4e2e087e732a471c1d3bc88b062e82 Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Fri, 14 Feb 2025 17:23:23 +0100 Subject: [PATCH 3/3] Reformat --- .../mail_domains/MailDomainCRUDList.vue | 2 +- .../apps/postbuero/frontend/messages/de.json | 64 +++++++++---------- aleksis/apps/postbuero/schema.py | 6 +- 3 files changed, 35 insertions(+), 37 deletions(-) diff --git a/aleksis/apps/postbuero/frontend/components/mail_domains/MailDomainCRUDList.vue b/aleksis/apps/postbuero/frontend/components/mail_domains/MailDomainCRUDList.vue index 57d0521..f80a32a 100644 --- a/aleksis/apps/postbuero/frontend/components/mail_domains/MailDomainCRUDList.vue +++ b/aleksis/apps/postbuero/frontend/components/mail_domains/MailDomainCRUDList.vue @@ -116,7 +116,7 @@ export default { return item; }, getDomainName(item) { - console.log('getDomainName', item); + console.log("getDomainName", item); return item.domain; }, }, diff --git a/aleksis/apps/postbuero/frontend/messages/de.json b/aleksis/apps/postbuero/frontend/messages/de.json index 7efd4b5..a300428 100644 --- a/aleksis/apps/postbuero/frontend/messages/de.json +++ b/aleksis/apps/postbuero/frontend/messages/de.json @@ -1,35 +1,35 @@ { - "postbuero": { - "mail_addresses": { - "menu_title": "E-Mail-Adressen verwalten", - "title_plural": "Verwalte eigene E-Mail-Adressen", - "data_table": { - "mail_address": "E-Mail-Adresse", - "domain": "Domäne", - "local_part": "Lokalteil", - "errors": { - "local_part_invalid_characters": "Dieses Feld kann nur alphanumerische Zeichen und die folgenden enthalten: : .!#$%&'*+-/=?^_`{|}~", - "local_part_disallowed": "Dieser Lokalteil ist nicht erlaubt." - } - }, - "create": "Neue E-Mail-Adresse erstellen" + "postbuero": { + "mail_addresses": { + "menu_title": "E-Mail-Adressen verwalten", + "title_plural": "Verwalte eigene E-Mail-Adressen", + "data_table": { + "mail_address": "E-Mail-Adresse", + "domain": "Domäne", + "local_part": "Lokalteil", + "errors": { + "local_part_invalid_characters": "Dieses Feld kann nur alphanumerische Zeichen und die folgenden enthalten: : .!#$%&'*+-/=?^_`{|}~", + "local_part_disallowed": "Dieser Lokalteil ist nicht erlaubt." + } + }, + "create": "Neue E-Mail-Adresse erstellen" + }, + "mail_domains": { + "title_plural": "E-Mail-Domänen verwalten", + "data_table": { + "domain": "Domäne", + "is_public": "Öffentlich", + "filters": { + "show_all": "Alle anzeigen", + "only_public": "Nur öffentliche Domänen", + "only_non_public": "Nur nicht-öffentliche Domänen" }, - "mail_domains": { - "title_plural": "E-Mail-Domänen verwalten", - "data_table": { - "domain": "Domäne", - "is_public": "Öffentlich", - "filters": { - "show_all": "Alle anzeigen", - "only_public": "Nur öffentliche Domänen", - "only_non_public": "Nur nicht-öffentliche Domänen" - }, - "errors": { - "domain_invalid": "Dieses Feld ist verpflichtend und muss einen validen Domänennamen beinhalten." - } - }, - "create": "Neue Mail-Domäne erstellen" - }, - "menu_title": "E-Mails" - } + "errors": { + "domain_invalid": "Dieses Feld ist verpflichtend und muss einen validen Domänennamen beinhalten." + } + }, + "create": "Neue Mail-Domäne erstellen" + }, + "menu_title": "E-Mails" + } } diff --git a/aleksis/apps/postbuero/schema.py b/aleksis/apps/postbuero/schema.py index e98cc55..0fc7c5b 100644 --- a/aleksis/apps/postbuero/schema.py +++ b/aleksis/apps/postbuero/schema.py @@ -55,7 +55,7 @@ class MailAddressBatchCreateMutation(BaseBatchCreateMutation): for address in input: domain = MailDomain.objects.get(id=address.domain) if has_person(info.context.user) and info.context.user.has_perm( - "postbuero.can_use_domain_rule", domain + "postbuero.can_use_domain_rule", domain ): return raise PermissionDenied() @@ -87,9 +87,7 @@ class MailAddressBatchCreateMutation(BaseBatchCreateMutation): # Create activity act = Activity( title=_("You have added an email address"), - description=_( - f"You have added the email address {address} to your profile." - ), + description=_(f"You have added the email address {address} to your profile."), app="Postbuero", user=mail_context["person"], ) -- GitLab