initial commit of file from CVS for e-smith-qmail on Wed 12 Jul 09:06:46 BST 2023
This commit is contained in:
51
root/etc/e-smith/templates/var/qmail/users/assign/80groups
Normal file
51
root/etc/e-smith/templates/var/qmail/users/assign/80groups
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
$OUT = '';
|
||||
|
||||
# Generate qmail user assignments for groups. These will be handled
|
||||
# by ~alias/.qmail-groupname and ~alias/.qmail-groupname-ext.
|
||||
|
||||
my (undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
|
||||
= getpwnam("alias");
|
||||
|
||||
# It is almost impossible to get Text::Template to output nothing
|
||||
# on failure. It can be done by removing the newline at the end of
|
||||
# this file but that is messy. Therefore, we'll simply return an
|
||||
# error message that will make qmail-newu fail. Also send a
|
||||
# warning message that will be captured in the logs.
|
||||
|
||||
unless (defined $uid && defined $gid && defined $dir)
|
||||
{
|
||||
my $msg =
|
||||
"Failed to obtain user details for \'alias\' "
|
||||
. "while processing group assignments.";
|
||||
|
||||
warn "$msg\n";
|
||||
$OUT = $msg;
|
||||
return;
|
||||
}
|
||||
|
||||
my $alias_assign = "alias:${uid}:${gid}:${dir}";
|
||||
|
||||
use esmith::AccountsDB;
|
||||
my $adb = esmith::AccountsDB->open_ro();
|
||||
|
||||
foreach $group ( $adb->groups )
|
||||
{
|
||||
# Assign mail for group@
|
||||
$OUT .= "=" . $group->key . ":${alias_assign}:-:" . $group->key . ":\n";
|
||||
|
||||
# Assign mail for group-ext@
|
||||
$OUT .= "+" . $group->key . "-:${alias_assign}:-" . $group->key . "-::\n";
|
||||
}
|
||||
|
||||
# Need to remove the final newline character. Blank lines in
|
||||
# /var/qmail/users/assign are prohibited.
|
||||
|
||||
chomp($OUT);
|
||||
|
||||
# Failsafe: /var/qmail/users/assign cannot have blank lines.
|
||||
# Therefore, if $OUT is empty, simply set up an assign for the
|
||||
# alias user.
|
||||
|
||||
$OUT = "=alias:${alias_assign}:::" unless $OUT;
|
||||
}
|
Reference in New Issue
Block a user