bug 512:Moved get_assurer_status from includes/general.php to includes/lib/general...
authorINOPIAE <inopiae@cacert.org>
Wed, 28 Nov 2012 06:24:10 +0000 (07:24 +0100)
committerINOPIAE <inopiae@cacert.org>
Wed, 28 Nov 2012 06:24:10 +0000 (07:24 +0100)
Changed script to includes/lib/general.php

includes/general.php
includes/lib/general.php
scripts/oa02-mailingtextCats.txt [new file with mode: 0644]
scripts/oa02-mailingtextPoints.txt [new file with mode: 0644]
scripts/oa02-mailingtextPointsCats.txt [new file with mode: 0644]
scripts/oa02-orgainformation.php.txt [new file with mode: 0644]

index 3478dd4..db859b6 100644 (file)
@@ -15,6 +15,9 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
+
+       require_once("../includes/lib/general.php");
+       
        session_name("cacert");
        session_start();
 
                return($text);
        }
        
-       // returns 0 if $userID is an Assurer
-       // Otherwise :
-       //       Bit 0 is always set
-       //       Bit 1 is set if 100 Assurance Points are not reached
-       //       Bit 2 is set if Assurer Test is missing
-       //       Bit 3 is set if the user is not allowed to be an Assurer (assurer_blocked > 0)
-       function get_assurer_status($userID)
-       {
-               $Result = 0;
-               $query = mysql_query('SELECT * FROM `cats_passed` AS `tp`, `cats_variant` AS `cv` '.
-                       '  WHERE `tp`.`variant_id` = `cv`.`id` AND `cv`.`type_id` = 1 AND `tp`.`user_id` = \''.(int)intval($userID).'\'');
-               if(mysql_num_rows($query) < 1)
-               {
-                       $Result |= 5;
-               }
-               
-               $query = mysql_query('SELECT SUM(`points`) AS `points` FROM `notary` AS `n` WHERE `n`.`to` = \''.(int)intval($userID).'\' AND `n`.`expire` < now()');
-               $row = mysql_fetch_assoc($query);
-               if ($row['points'] < 100) {
-                       $Result |= 3;
-               }
-               
-               $query = mysql_query('SELECT `assurer_blocked` FROM `users` WHERE `id` = \''.(int)intval($userID).'\'');
-               $row = mysql_fetch_assoc($query);
-               if ($row['assurer_blocked'] > 0) {
-                       $Result |= 9;
-               }
-               
-               return $Result;
-       }
-       
+
        // returns text message to be shown to the user given the result of is_no_assurer
        function no_assurer_text($Status)
        {
index d91b24e..85b132d 100644 (file)
@@ -130,3 +130,34 @@ function runCommand($command, $input = "", &$output = null, &$errors = true) {
        }
 }
 
+       // returns 0 if $userID is an Assurer
+       // Otherwise :
+       //       Bit 0 is always set
+       //       Bit 1 is set if 100 Assurance Points are not reached
+       //       Bit 2 is set if Assurer Test is missing
+       //       Bit 3 is set if the user is not allowed to be an Assurer (assurer_blocked > 0)
+       function get_assurer_status($userID)
+       {
+               $Result = 0;
+               $query = mysql_query('SELECT * FROM `cats_passed` AS `tp`, `cats_variant` AS `cv` '.
+                       '  WHERE `tp`.`variant_id` = `cv`.`id` AND `cv`.`type_id` = 1 AND `tp`.`user_id` = \''.(int)intval($userID).'\'');
+               if(mysql_num_rows($query) < 1)
+               {
+                       $Result |= 5;
+               }
+               
+               $query = mysql_query('SELECT SUM(`points`) AS `points` FROM `notary` AS `n` WHERE `n`.`to` = \''.(int)intval($userID).'\' AND `n`.`expire` < now()');
+               $row = mysql_fetch_assoc($query);
+               if ($row['points'] < 100) {
+                       $Result |= 3;
+               }
+               
+               $query = mysql_query('SELECT `assurer_blocked` FROM `users` WHERE `id` = \''.(int)intval($userID).'\'');
+               $row = mysql_fetch_assoc($query);
+               if ($row['assurer_blocked'] > 0) {
+                       $Result |= 9;
+               }
+               
+               return $Result;
+       }
+       
\ No newline at end of file
diff --git a/scripts/oa02-mailingtextCats.txt b/scripts/oa02-mailingtextCats.txt
new file mode 100644 (file)
index 0000000..044b49b
--- /dev/null
@@ -0,0 +1,71 @@
+(German see below)
+
+Hello <name>,
+
+In preparation for an internal test prior to the audit, we checked if the data 
+entries in the Organisation Accounts are valid. As you are listed as an 
+Organisation Administrator for at least one organisation account, I found out 
+that you currently do not match the requirements to be an Organisation 
+Administrator - in that you need to be an CAcert Assurer. 
+
+The premise to be a CAcert Assurer are that you have:
+ - got at least 100 Assurance Points
+ - passed the CATS test
+        
+It is possible that you may have missed some changes within the CAcert 
+assurance system.
+
+In 2009 the CATS challenge [1] was introduced. You have to pass it before you 
+get the CAcert Assurer status.
+
+In addition, CAcert will be changing the points calculation in the near future. 
+This was announced in 2011 [2].
+
+As you are only missing the CATS challenge, I ask you to do the challenge within 
+the next 2 months. If you have not passed the CATS test by then, I will have 
+to delete you as Organisation Administrator from the appropriate accounts. 
+
+[1] https://wiki.cacert.org/AssurerChallenge
+[2] https://wiki.cacert.org/PR/News/NewPointsCalculation
+
+Thank you for your support.
+
+Marcus Maengel
+CAcert Organisation Assurance Officer
+---------------------------------------------------
+
+[German Version]
+
+Hallo <name>,
+
+bei der Vorbereitung eines internen Tests vor dem Audit haben wir ueberprueft, 
+ob die Datensaetze in den Organisationskonten gueltig sind. Da Sie als 
+Organisations Administrator fuer mindestens ein Organisationskonto eingetragen 
+sind, habe ich festgestellt, dass Sie zurzeit kein CAcert Assurer sind, was die 
+Voraussetzung fuer die Taetigkeit als Organisations Administrator ist.
+
+Als CAcert Assurer muessen Sie die folgenden Vorausetzungen erfuellen:
+ - Mindestens 100 Assurance-Punkte
+ - Bestandene Assurer-Pruefung (CATS-Test)
+
+Moeglicherweise haben Sie einige aenderungen bei CAcert verpasst.
+
+Im Jahre 2009 wurde die Assurer-Pruefung (Assurer Challenge, CATS Test) [1] 
+eingefuehrt. Die muessen Sie bestehen, um den Assurer-Status zu erhalten.
+
+CAcert wird die Punkte-Berechnung in naher Zukunft aendern. Dies wurde bereits 
+2011 angekuendigt [2].
+
+Da Ihnen lediglich die Assurer-Pruefung fehlt, fordere ich Sie auf, diese 
+Pruefung innerhalb der naechsten 2 Monate nachzuholen. Wenn Sie diese Pruefung 
+bis dahin nicht abgelegt haben, werde ich Sie als Organisations Administrator 
+aus den betreffenden Konten austragen.
+
+[1] https://wiki.cacert.org/AssurerChallenge
+[2] https://wiki.cacert.org/PR/News/NewPointsCalculation
+
+Vielen Dank fuer Ihre Unterstuetzung.
+
+Marcus Maengel
+CAcert Organisation Assurance Officer
\ No newline at end of file
diff --git a/scripts/oa02-mailingtextPoints.txt b/scripts/oa02-mailingtextPoints.txt
new file mode 100644 (file)
index 0000000..5e0eadf
--- /dev/null
@@ -0,0 +1,79 @@
+(German see below)
+
+Hello <name>,
+
+In preparation for an internal test prior to the audit, we checked if the data 
+entries in the Organisation Accounts are valid. As you are listed as an 
+Organisation Administrator for at least one organisation account, I found out 
+that you currently do not match the requirements to be an Organisation 
+Administrator - in that you need to be an CAcert Assurer. 
+
+The premise to be a CAcert Assurer are that you have:
+ - got at least 100 Assurance Points
+ - passed the CATS test
+        
+It is possible that you may have missed some changes within the CAcert 
+assurance system.
+
+In 2009 the CATS challenge [1] was introduced. You have to pass it before you 
+get the CAcert Assurer status.
+
+In addition, CAcert will be changing the points calculation in the near future. 
+This was announced in 2011 [2].
+
+As you are missing the 100 Assurance Points requirement (which might be due to 
+the new points calculation) I ask you to get assured during the next 3 months to 
+reach the 100 Assurance Points. If you have problems in getting assured, please 
+let me know, so I can see what can be done to help you. If you have not reached 
+the 100 points by then (or after an additional grace period in cases of 
+hardship), I will have to delete you as Organisation Administrator from the 
+appropriate accounts. 
+
+[1] https://wiki.cacert.org/AssurerChallenge
+[2] https://wiki.cacert.org/PR/News/NewPointsCalculation
+
+Thank you for your support.
+
+Marcus Maengel
+CAcert Organisation Assurance Officer
+---------------------------------------------------
+
+[German Version]
+
+Hallo <name>,
+
+bei der Vorbereitung eines internen Tests vor dem Audit haben wir ueberprueft, 
+ob die Datensaetze in den Organisationskonten gueltig sind. Da Sie als 
+Organisations Administrator fuer mindestens ein Organisationskonto eingetragen 
+sind, habe ich festgestellt, dass Sie zurzeit kein CAcert Assurer sind, was die 
+Voraussetzung fuer die Taetigkeit als Organisations Administrator ist.
+
+Als CAcert Assurer muessen Sie die folgenden Vorausetzungen erfuellen:
+ - Mindestens 100 Assurance-Punkte
+ - Bestandene Assurer-Pruefung (CATS-Test)
+
+Moeglicherweise haben Sie einige aenderungen bei CAcert verpasst.
+
+Im Jahre 2009 wurde die Assurer-Pruefung (Assurer Challenge, CATS Test) [1] 
+eingefuehrt. Die muessen Sie bestehen, um den Assurer-Status zu erhalten.
+
+CAcert wird die Punkte-Berechnung in naher Zukunft aendern. Dies wurde bereits 
+2011 angekuendigt [2].
+
+Da Sie die 100 Assurance-Punkte nicht erreicht haben, was auch an der neuen 
+Punkteberechnung liegen kann, fordere ich Sie auf, sich innerhalb der naechsten 
+3 Monate assuren zu lassen, um die 100 Punkte zu erreichen. Wenn Sie Probleme 
+haben, sich assuren zu lassen, teilen Sie mir das bitte mit und wir werden 
+sehen, wie wir Ihnen dabei helfen koennen. Wenn Sie bis dahin (oder nach einer 
+zusaetzlichen Gnadenfrist in schwierigen Faellen) die 100 Punkte nicht erreicht 
+haben, werde ich Sie als Organisations Administrator aus den betreffenden Konten 
+austragen.
+
+[1] https://wiki.cacert.org/AssurerChallenge
+[2] https://wiki.cacert.org/PR/News/NewPointsCalculation
+
+Vielen Dank fuer Ihre Unterstuetzung.
+
+Marcus Maengel
+CAcert Organisation Assurance Officer
\ No newline at end of file
diff --git a/scripts/oa02-mailingtextPointsCats.txt b/scripts/oa02-mailingtextPointsCats.txt
new file mode 100644 (file)
index 0000000..67bc5d3
--- /dev/null
@@ -0,0 +1,82 @@
+(German see below)
+
+Hello <name>,
+
+In preparation for an internal test prior to the audit, we checked if the data 
+entries in the Organisation Accounts are valid. As you are listed as an 
+Organisation Administrator for at least one organisation account, I found out 
+that you currently do not match the requirements to be an Organisation 
+Administrator - in that you need to be an CAcert Assurer. 
+
+The premise to be a CAcert Assurer are that you have:
+ - got at least 100 Assurance Points
+ - passed the CATS test
+        
+It is possible that you may have missed some changes within the CAcert 
+assurance system.
+
+In 2009 the CATS challenge [1] was introduced. You have to pass it before you 
+get the CAcert Assurer status.
+
+In addition, CAcert will be changing the points calculation in the near future. 
+This was announced in 2011 [2].
+
+As you are missing the 100 Assurance Points requirement (which might be due to 
+the new points calculation) and the CATS challenge, I ask you to get assured 
+during the next 3 months to reach the 100 Assurance Points and do the CATS test. 
+If you have problems in getting assured, please let me know, so I can see what 
+can be done to help you. If you have not passed the CATS test and reached the 
+100 points by then (or after an additional grace period in cases of hardship), 
+I will have to delete you as Organisation Administrator from the appropriate 
+accounts. 
+
+[1] https://wiki.cacert.org/AssurerChallenge
+[2] https://wiki.cacert.org/PR/News/NewPointsCalculation
+
+Thank you for your support.
+
+Marcus Maengel
+CAcert Organisation Assurance Officer
+---------------------------------------------------
+
+[German Version]
+
+Hallo <name>,
+
+bei der Vorbereitung eines internen Tests vor dem Audit haben wir ueberprueft, 
+ob die Datensaetze in den Organisationskonten gueltig sind. Da Sie als 
+Organisations Administrator fuer mindestens ein Organisationskonto eingetragen 
+sind, habe ich festgestellt, dass Sie zurzeit kein CAcert Assurer sind, was die 
+Voraussetzung fuer die Taetigkeit als Organisations Administrator ist.
+
+Als CAcert Assurer muessen Sie die folgenden Vorausetzungen erfuellen:
+ - Mindestens 100 Assurance-Punkte
+ - Bestandene Assurer-Pruefung (CATS-Test)
+
+Moeglicherweise haben Sie einige aenderungen bei CAcert verpasst.
+
+Im Jahre 2009 wurde die Assurer-Pruefung (Assurer Challenge, CATS Test) [1] 
+eingefuehrt. Die muessen Sie bestehen, um den Assurer-Status zu erhalten.
+
+CAcert wird die Punkte-Berechnung in naher Zukunft aendern. Dies wurde bereits 
+2011 angekuendigt [2].
+
+Da Sie die 100 Assurance-Punkte nicht erreicht haben, was auch an der neuen 
+Punkteberechnung liegen kann, und auch die Assurer-Pruefung nicht abgelegt 
+haben, fordere ich Sie auf, sich innerhalb der naechsten 3 Monate assuren zu 
+lassen, um die 100 Punkte zu erreichen, und die Assurer-Pruefung abzulegen. 
+Wenn Sie Probleme haben, sich assuren zu lassen, teilen Sie mir das bitte mit 
+und wir werden sehen, wie wir Ihnen dabei helfen koennen. Wenn Sie bis dahin 
+(oder nach einer zusaetzlichen Gnadenfrist in schwierigen Faellen) die 
+100 Punkte nicht erreicht haben oder die Assurer-Pruefung nicht abgelegt haben, 
+werde ich Sie als Organisations-Administrator aus den betreffenden Konten 
+austragen.
+
+[1] https://wiki.cacert.org/AssurerChallenge
+[2] https://wiki.cacert.org/PR/News/NewPointsCalculation
+
+Vielen Dank fuer Ihre Unterstuetzung.
+
+Marcus Maengel
+CAcert Organisation Assurance Officer
\ No newline at end of file
diff --git a/scripts/oa02-orgainformation.php.txt b/scripts/oa02-orgainformation.php.txt
new file mode 100644 (file)
index 0000000..e0d8ca2
--- /dev/null
@@ -0,0 +1,119 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2009  CAcert Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; version 2 of the License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+       include_once("../includes/mysql.php");
+       include_once("../includes/lib/general.php");
+
+       //default mail text
+       $lines = "";
+       $fp = fopen("oa02-mailingtextPoints.txt", "r");
+       while(!feof($fp))
+       {
+               $line = trim(fgets($fp, 4096));
+               $lines .= wordwrap($line, 75, "\n")."\n";
+       }
+       fclose($fp);
+
+       //first variant of mail text
+       $lines1 = "";
+       $fp = fopen("oa02-mailingtextCats.txt", "r");
+       while(!feof($fp))
+       {
+               $line = trim(fgets($fp, 4096));
+               $lines1 .= wordwrap($line, 75, "\n")."\n";
+       }
+       fclose($fp);
+
+       //second variant of mail text
+       $lines2 = "";
+       $fp = fopen("oa02-mailingtextPointsCats.txt", "r");
+       while(!feof($fp))
+       {
+               $line = trim(fgets($fp, 4096));
+               $lines2 .= wordwrap($line, 75, "\n")."\n";
+       }
+       fclose($fp);
+
+       // comment next line when starting to send mail not only to me 
+       //      $query = "select * from `users` where `email` like 'cacerttest%'";
+
+       $query = "
+       SELECT
+               `users`.`email`,
+               `users`.`fname`,
+               `users`.`lname`,
+               `orginfo`.`O`,
+               `orginfo`.`id`,
+               `org`.`memid`
+       FROM
+               `users`,
+               `orginfo`,
+               `org`
+       WHERE   `org`.`orgid` = `orginfo`.`id`
+       AND     `org`.`memid` = `users`.`id`
+       AND     `users`.`assurer` = 0
+       AND     `org`.`deleted` = 0
+       ORDER BY
+               `users`.`email`,
+               `orginfo`.`O`
+       ";
+
+       $res = mysql_query($query);
+       $xrows = mysql_num_rows($res);
+
+       $report = "";
+       $report1 = "";
+       $report2 = "";
+       $report3 = "";
+
+       while($row = mysql_fetch_assoc($res))
+       {
+               //    uncomment next line to send mails ...
+               $fullname = $row['fname']." ".$row['lname'];
+               $status = get_assurer_status($row['memid']);
+               if (3 == $status) {
+                       $mail = str_replace("<name>",$fullname,$lines);
+                       sendmail($row['email'], "[CAcert.org] Assurer Status Requirement Check on Organisation Adminstrators", $mail, "support@cacert.org", "", "", "CAcert Organisation Assurer", "returns@cacert.org", 1);
+                       $report = $row['email'].", ".$fullname.", ".$row['O']."\n";
+               } elseif (5 == $status) {
+                       $mail = str_replace("<name>",$fullname,$lines1);
+                       sendmail($row['email'], "[CAcert.org] Assurer Status Requirement Check on Organisation Adminstrators", $mail, "support@cacert.org", "", "", "CAcert Organisation Assurer", "returns@cacert.org", 1);
+                       $report1 = $row['email'].", ".$fullname.", ".$row['O']."\n";
+               } elseif (7 == $status){
+                       $mail = str_replace("<name>",$fullname,$lines2);
+                       sendmail($row['email'], "[CAcert.org] Assurer Status Requirement Check on Organisation Adminstrators", $mail, "support@cacert.org", "", "", "CAcert Organisation Assurer", "returns@cacert.org", 1);
+                       $report2 = $row['email'].", ".$fullname.", ".$row['O']."\n";
+               } else {
+                       $report3 = $row['email'].", ".$fullname.", ".$row['O']."\n";
+               }
+       }
+
+       // 1x cc to oao.cacert.org
+       sendmail("oao@cacert.org", "[CAcert.org] Assurer Status Requirement Check on Organisation Adminstrators", $lines."\n\n".$lines1."\n\n".$lines2, "oao@cacert.org", "", "", "CAcert OA Support", "returns@cacert.org", 1);
+
+       // 1x mailing report to oao.cacert.org
+       sendmail("oao@cacert.org", "[CAcert.org] Assurer Status Requirement Check on Organisation Adminstrators - Report", "oa-mailing sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert OA Support", "returns@cacert.org", 1);
+
+       // 1x detailed mailing report to OAO
+       $reporttotal = "Result of the Mailing \n\n Organisation Administrators with missing points \n".$report."\n\n Organisation Adminstrators with missing points ".$report1."\n\n Organisation Adminstrators with missing points and CATS ".$report2."\n\n Organisation Adminstrators with blocked assurer ".$report3;
+       sendmail("oao@cacert.org", "[CAcert.org] Assurer Status Requirement Check on Organisation Adminstrators - Report", $reporttotal, "support@cacert.org", "", "", "CAcert Organisation Assurer", "returns@cacert.org", 1);
+
+       // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20110608.1
+       sendmail("bernhard@cacert.org", "[CAcert.org] Assurer Status Requirement Check on Organisation Adminstrators - Report", "oa-mailing sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert OA Support", "returns@cacert.org", 1);
+
+       echo "oa-mailing sent to $xrows recipients.\n";