]> git.proxmox.com Git - pmg-api.git/blobdiff - PMG/RuleDB/BCC.pm
Add default rulename of 'unknown' to Actions
[pmg-api.git] / PMG / RuleDB / BCC.pm
index 8987f2fa5adf5a295f8b9ea7fc676143de77fa44..be695f710b6b94f1e31123688ca94faba15ed931 100644 (file)
@@ -2,7 +2,6 @@ package PMG::RuleDB::BCC;
 
 use strict;
 use warnings;
-use Carp;
 use DBI;
 
 use PVE::SafeSyslog;
@@ -25,14 +24,6 @@ sub otype_text {
     return 'BCC';
 }
 
-sub oicon {
-    return 'bcc.gif';
-}
-
-sub oinfo {
-    return 'Blind carbon copy.';
-}
-
 sub oisedit {
     return 1;
 }
@@ -83,9 +74,9 @@ sub load_attr {
 sub save {
     my ($self, $ruledb) = @_;
 
-    defined($self->{ogroup}) || croak "undefined object attribute: ERROR";
-    defined($self->{target}) || croak "undefined object attribute: ERROR";
-    defined($self->{original}) || croak "undefined object attribute: ERROR";
+    defined($self->{ogroup}) || die "undefined object attribute: ERROR";
+    defined($self->{target}) || die "undefined object attribute: ERROR";
+    defined($self->{original}) || die "undefined object attribute: ERROR";
 
     if ($self->{original}) {
        $self->{original} = 1;
@@ -123,12 +114,14 @@ sub execute {
 
     my $subgroups = $mod_group->subgroups($targets, 1);
 
+    my $rulename = $vars->{RULE} // 'unknown';
+
     my $bcc_to = PMG::Utils::subst_values($self->{target}, $vars);
 
     if ($bcc_to =~ m/^\s*$/) {
        # this happens if a notification is triggered by bounce mails
        # which notifies the sender <> - we just log and then ignore it
-       syslog('info', "%s: bcc to <> (ignored)", $queue->{logid});
+       syslog('info', "%s: bcc to <> (rule: %s, ignored)", $queue->{logid}, $rulename);
        return;
     }
 
@@ -157,9 +150,9 @@ sub execute {
                $msginfo->{xforward}, $msginfo->{fqdn}, 1);
            foreach (@bcc_targets) {
                if ($qid) {
-                   syslog('info', "%s: bcc to <%s> (%s)", $queue->{logid}, $_, $qid);
+                   syslog('info', "%s: bcc to <%s> (rule: %s, %s)", $queue->{logid}, $_, $rulename, $qid);
                } else {
-                   syslog('err', "%s: bcc to <%s> failed", $queue->{logid}, $_);
+                   syslog('err', "%s: bcc to <%s> (rule: %s) failed", $queue->{logid}, $_, $rulename);
                }
            }
        }
@@ -171,7 +164,44 @@ sub execute {
 sub short_desc {
     my $self = shift;
 
-    return "send bcc to: $self->{target}";
+    my $descr = "send bcc to: $self->{target}";
+
+    $descr .= " (original)" if $self->{original};
+
+    return $descr;
+}
+
+sub properties {
+    my ($class) = @_;
+
+    return {
+       target => {
+           description => "Send a Blind Carbon Copy to this email address.",
+           type => 'string', format => 'email',
+       },
+       original =>{
+           description => "Send the original, unmodified mail.",
+           type => 'boolean',
+           optional => 1,
+           default => 1,
+       },
+    };
+}
+
+sub get {
+    my ($self) = @_;
+
+    return { 
+       target => $self->{target}, 
+       original => $self->{original},
+    };
+}
+
+sub update {
+    my ($self, $param) = @_;
+
+    $self->{target} = $param->{target};
+    $self->{original} = $param->{original} ? 1 : 0;
 }
 
 1;