From 6b857eebbafba660cc57b19bd11f6484c91f8fd7 Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 18 Mar 2015 00:14:27 +0100 Subject: Integrate Postfix config into module-list.nix. This currently is just a dummy module for now with a big fat TODO, but at least we now have a homogenous module namespace starting with "labernix." and categorized by services/config/tasks/whatnot. Signed-off-by: aszlig --- modules/services/postfix/restrictions.nix | 53 +++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 modules/services/postfix/restrictions.nix (limited to 'modules/services/postfix/restrictions.nix') diff --git a/modules/services/postfix/restrictions.nix b/modules/services/postfix/restrictions.nix new file mode 100644 index 00000000..fbb47f10 --- /dev/null +++ b/modules/services/postfix/restrictions.nix @@ -0,0 +1,53 @@ +{ config, lib, ... }: + +with lib; + +let + mkRestriction = name: specificDescription: { + option.${name} = mkOption { + default = null; + type = types.nullOr types.list; + description = '' + A list of restrictions to apply or to use the + built-in default value from Postfix. + ${specificDescription} + ''; + }; + config = let + cfg = config.labernix.postfix.restrictions.${name}; + in mkIf (cfg != null) '' + smtpd_${name}_restrictions = ${concatStringsSep ", " cfg} + ''; + }; + restrictions = mapAttrsToList mkRestriction { + client = mkRestriction '' + SMTP server access restrictions in the context of a client SMTP connection + request. + ''; + data = mkRestriction '' + Access restrictions that the Postfix SMTP server applies in the context of + the SMTP DATA command. + ''; + end_of_data = mkRestriction '' + Access restrictions that the Postfix SMTP server applies in the context of + the SMTP END-OF-DATA command. + ''; + etrn = mkRestriction '' + SMTP server access restrictions in the context of a client ETRN request. + ''; + helo = mkRestriction '' + Restrictions that the Postfix SMTP server applies in the context of the + SMTP HELO command. + ''; + recipient = mkRestriction '' + Access restrictions that the Postfix SMTP server applies in the context of + the RCPT TO command. + ''; + sender = mkRestriction '' + Restrictions that the Postfix SMTP server applies in the context of the + MAIL FROM command. + ''; + }; +in { + options.labernix.postfix.restrictions = mapAttrs mkRestriction restrictions; +} -- cgit 1.4.1