diff --git a/aleksis/apps/postbuero/frontend/components/mail_domains/MailDomainCRUDList.vue b/aleksis/apps/postbuero/frontend/components/mail_domains/MailDomainCRUDList.vue index 57d052172b9df50b5dbf04745a52e846a725010a..f80a32ad8f6c61cf3cfb4f4f4e47dc17fdc4ec30 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 7efd4b58825f810e3b3e20259586a9e6c3b01274..a300428b10fa8eb997ff37277cb7f18f10664428 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 27762b81383915d7cb3c8b55b071d38a5c0ba6f1..0fc7c5b8c140062e31354ac7a23bfc556fd80776 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 @@ -50,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() @@ -82,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"], ) @@ -128,9 +131,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