commit b3cb5043dae10698e5812efbe314ee5b39cdc726 from: jrmu date: Mon Mar 06 21:21:52 2023 UTC Fixes for Mail.pm commit - 8f114ba73b0d676fcccf561a65b2ab3d0437f44a commit + b3cb5043dae10698e5812efbe314ee5b39cdc726 blob - 998a9f356779d0206a285511fd55fc2242c09c77 blob + e2a2e49708d7f2cbe3208ffc1d3a564681825043 --- Mail.pm +++ Mail.pm @@ -28,8 +28,7 @@ my $virtualspath = "/etc/mail/virtuals"; my $senderspath = "/etc/mail/users"; my @users; -### TODO: Turn this back on once stable ### -#main::cbind("msg", "-", "mail", \&mmail); +main::cbind("msg", "-", "mail", \&mmail); sub init { #dependencies for encrypt @@ -75,9 +74,13 @@ sub mmail { $line =~ s/^#(${username}\@${hostname}.*)/$1/; } # trailing newline necessary - main::writefile("$passwdpath.bak", join("\n", @passwd)."\n"); - copy "${passwdpath}.bak", $passwdpath; + my $passwdfile = join("\n", @passwd)."\n" ; + `doas sh -c 'echo "$passwdfile" > $passwdpath'`; + # below code won't work due to file permissions + #main::writefile("$passwdpath.bak", join("\n", @passwd)."\n"); + #copy "${passwdpath}.bak", $passwdpath; + foreach my $chan (@teamchans) { main::putserv($bot, "PRIVMSG $chan :$username mail approved"); } @@ -119,8 +122,11 @@ sub mmail { $line =~ s/^(${username}\@${hostname}.*)/#$1/; } # trailing newline necessary - main::writefile("$passwdpath.bak", join("\n", @passwd)."\n"); - copy "${passwdpath}.bak", $passwdpath; + my $passwdfile = join("\n", @passwd)."\n" ; + `doas sh -c 'echo "$passwdfile" > $passwdpath'`; + #below won't work due to permissions errors + #main::writefile("$passwdpath.bak", join("\n", @passwd)."\n"); + #copy "${passwdpath}.bak", $passwdpath; main::putserv($bot, "PRIVMSG $nick :Your account has been created but must be manually approved by your admins ($staff) before it can be used."); foreach my $chan (@teamchans) { @@ -269,12 +275,20 @@ sub deletemail { @senders = grep !/^${username}\@${hostname}/, @virtuals; # trailing newline necessary - main::writefile("$passwdpath.bak", join("\n", @passwd)."\n"); - copy "${passwdpath}.bak", $passwdpath; - main::writefile("$virtualspath", join("\n", @virtuals)."\n"); - copy "${virtualspath}.bak", $virtualspath; - main::writefile("$senderspath", join("\n", @senders)."\n"); - copy "${senderspath}.bak", $senderspath; + my $passwdfile = join("\n", @passwd)."\n" ; + `doas sh -c 'echo "$passwdfile" > $passwdpath'`; + my $virtualsfile = join("\n", @virtuals)."\n" ; + `doas sh -c 'echo "$virtualsfile" > $virtualspath'`; + my $sendersfile = join("\n", @senders)."\n" ; + `doas sh -c 'echo "$sendersfile" > $senderspath'`; + + # below won't work due to permissions errors + #main::writefile("$passwdpath.bak", join("\n", @passwd)."\n"); + #copy "${passwdpath}.bak", $passwdpath; + #main::writefile("$virtualspath", join("\n", @virtuals)."\n"); + #copy "${virtualspath}.bak", $virtualspath; + #main::writefile("$senderspath", join("\n", @senders)."\n"); + #copy "${senderspath}.bak", $senderspath; `doas rcctl restart smtpd`; `doas rcctl reload dovecot`;