bug 773: fix sending email on revocation.
authorFelix Dörre <felix@dogcraft.de>
Tue, 17 Jun 2014 15:58:29 +0000 (17:58 +0200)
committerFelix Dörre <felix@dogcraft.de>
Tue, 17 Jun 2014 15:58:29 +0000 (17:58 +0200)
Use the email (and language) of domain owner to send mail.

CommModule/client.pl

index c337d94..78b229d 100755 (executable)
@@ -1023,17 +1023,25 @@ sub RevokeCerts($$)
 
       if($result)
       {
-        setUsersLanguage($row{memid});
-
-        my %user=getUserData($row{memid});
-
         $dbh->do("update `$table` set `revoked`=now() where `id`='".$row{'id'}."'");
 
-        my $body = _("Hi")." $user{fname},\n\n";
-        $body .= sprintf(_("Your certificate for '%s' with the serial number '%s' has been revoked, as per request.")."\n\n", $row{'CN'}, $row{'serial'});
-        $body .= _("Best regards")."\n"._("CAcert.org Support!")."\n\n";
-       SysLog("Sending email to ".$user{"email"}."\n") if($debug);
-        sendmail($user{email}, "[CAcert.org] "._("Your certificate"), $body, "support\@cacert.org", "", "", "CAcert Support");
+       my $memid = $row{memid};
+       if($server)
+       {
+           $memid = getMemidFromDomid($row{domid});
+       }
+       if($org == "")
+       {
+           setUsersLanguage($memid);
+
+           my %user=getUserData($memid);
+
+           my $body = _("Hi")." $user{fname},\n\n";
+           $body .= sprintf(_("Your certificate for '%s' with the serial number '%s' has been revoked, as per request.")."\n\n", $row{'CN'}, $row{'serial'});
+           $body .= _("Best regards")."\n"._("CAcert.org Support!")."\n\n";
+           SysLog("Sending email to ".$user{"email"}."\n") if($debug);
+           sendmail($user{email}, "[CAcert.org] "._("Your certificate"), $body, "support\@cacert.org", "", "", "CAcert Support");
+       }
       }
 
     }
@@ -1046,6 +1054,12 @@ sub RevokeCerts($$)
 
 }
 
+sub getMemidFromDomid()
+{
+    my @a=$dbh->selectrow_array("select memid from domains where id='".int($_[0])."'");
+    return $a[0];
+}
+