source code taken from cacert-20180906.tar.bz2
authorBernhard Fröhlich <bernhard@cacert.org>
Mon, 29 Oct 2018 19:07:10 +0000 (20:07 +0100)
committerBernhard Fröhlich <bernhard@cacert.org>
Mon, 29 Oct 2018 19:07:10 +0000 (20:07 +0100)
21 files changed:
CommModule/logclean.sh
locale/Makefile
scripts/59de-ate-freiburg-email.txt [new file with mode: 0644]
scripts/59de-ate-freiburg-mail.php.txt [new file with mode: 0644]
scripts/60de-ate-bremen-email.txt [new file with mode: 0644]
scripts/60de-ate-bremen-mail.php.txt [new file with mode: 0644]
scripts/61de-ate-dresden-email.txt [new file with mode: 0644]
scripts/61de-ate-dresden-mail.php.txt [new file with mode: 0644]
scripts/62de-froscon2015-email.txt [new file with mode: 0644]
scripts/62de-froscon2015-mail.php.txt [new file with mode: 0644]
scripts/63dk-ate-nykobing-email.txt [new file with mode: 0644]
scripts/63dk-ate-nykobing-mail.php.txt [new file with mode: 0644]
scripts/oa03-csr_org_client_cert.php.txt [new file with mode: 0644]
scripts/oa03-csr_org_client_cert.txt [new file with mode: 0644]
scripts/send_policy_cca_correct_20150221_1.php [new file with mode: 0644]
scripts/send_policy_cca_correct_20150221_2.php [new file with mode: 0644]
www/cap.html.php
www/capnew.php
www/coap.html.php
www/coapnew.php
www/policy/NRPDisclaimerAndLicence.php [new file with mode: 0644]

index 99963ee..62aa04c 100755 (executable)
@@ -2,6 +2,9 @@
 # logclean.sh - maintenance script for logfiles generated by CommModule
 #               run this daily or weekly from cron
 
+COMPRESS="xz -9 -M 1GiB"       # compression program to use
+COMPRESS_EXT=xz                        # file extension for compression program
+
 syslog_error()
 {
        logger -i -t CommModule/logclean.sh -p user.err $1
@@ -31,12 +34,12 @@ if [ -n "${FILES}" ]
 then
        for F in ${FILES}
        do
-               syslog_notice "Compressing ${F}" && bzip2 ${F}
+               syslog_notice "Compressing ${F}" && ${COMPRESS} ${F}
        done
 fi
 
 # move compressed logfiles to oldlogs directory
-FILES=`find logfile20*.txt.bz2 -print`
+FILES=`find logfile20*.txt.${COMPRESS_EXT} -print`
 if [ -n "${FILES}" ]
 then
        mkdir -p oldlogs
@@ -47,7 +50,7 @@ then
 fi
 
 # delete old logfiles which have not been modified in at least 2.5+ years
-FILES=`find oldlogs/logfile20*.txt.bz2 -mtime +913 -print`
+FILES=`find oldlogs/logfile20*.txt.${COMPRESS_EXT} -mtime +913 -print`
 if [ -n "${FILES}" ]
 then
        for F in ${FILES}
index a2b856b..b831719 100644 (file)
@@ -127,7 +127,7 @@ SSH_USER := critical
 SSH_OPTIONS :=
 SCP_OPTIONS := $(SSH_OPTIONS)
 
-FILE_OWNER := www-data
+FILE_OWNER := pootle
 
 POT_UPLOAD_PATH := /var/www/Pootle/po/cacert/templates/messages.pot
 MANAGE_PY := /var/www/Pootle/manage.py
diff --git a/scripts/59de-ate-freiburg-email.txt b/scripts/59de-ate-freiburg-email.txt
new file mode 100644 (file)
index 0000000..09b3ad7
--- /dev/null
@@ -0,0 +1,91 @@
+[Deutsch]
+
+Es hat sich viel getan in den letzten Jahren. Eine ganze Reihe von bisher
+eher "muendlich ueberlieferten" Regeln wurden in Policies gegossen.
+Neue Prozeduren (z.B. die Assurer Challenge) und Verpflichtungen (z.B.
+in dem CAcert Community Agreement) wurden beschlossen. Die Assurer
+Training Events wollen versuchen, die ganzen Informationen unter's
+Volk zu bringen:
+
+- Welcher Satz fehlt auf alten CAP Formularen?
+- Warum soll ich mir R/L/O einpraegen?
+- Wie verhaelst du dich,
+    wenn du ein fremdes Ausweisdokument das erste Mal pruefst?
+
+Antworten auf diese und weitere Fragen erhaelst du bei den
+Assurer Training Events (ATEs).
+
+Darueberhinaus wird beim ATE der Vorgang der Identitaetsueberpruefung
+trainiert und auditiert, um die Qualitaet der Assurances in der
+taeglichen Praxis zu erfassen. Dabei gilt es moegliche Fehler und
+Fallstricke zu erkennen und aufzudecken. Die Assurer haben also die
+Moeglichkeit, sich mit den Fehlern auseinanderzusetzen und zu erfahren,
+wie diese vermieden werden koennen.
+
+Wie IanG sagte: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers, and include parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+Die kommende Veranstaltung in deiner Naehe findet statt am:
+
+- Montag, den 2. Februar 2015
+- in der Zeit von: 19:00 - ca. 22:00 Uhr
+- Karma Indian Palace
+- Bertoldstrasse 51-53 (gegenüber Cinemaxx)
+- 79098 Freiburg
+
+
+Details zum Veranstaltungsort und Anfahrthinweise findet Ihr im
+Wiki [http://wiki.cacert.org/Events/2015-02-02-ATE-Freiburg]
+Blog [http://blog.cacert.org/2015/01/ate-freiburg-2015-02-02/]
+
+Teilnehmer Registrierung mit Rueckantwort:
+ 'Ich moechte am ATE-Freiburg teilnehmen'
+
+Das Veranstaltungs-Team freut sich schon auf Eure Teilnahme.
+
+Kontakt: events@cacert.org
+
+
+
+[English]
+
+During the last years many changes took place inside CAcert. Many "oral"
+rules have been put into Policies. New procedures
+(e.g. Assurer Challenge) and obligations
+(e.g. CAcert Community Agreement) have been put into live.
+The Assurer Training Events (ATE) try to spread this information:
+
+- What is missing on the "old" CAP forms?
+- Why should I remember R/L/O?
+- What can you do if an Assuree shows an ID document unknown to you?
+
+These and more questions will be answered during the
+Assurer Training Events (ATEs)
+
+Furthermore, the ATE trains how to do assurances and audits assurances,
+to measure the quality of assurances in the daily routine. Here are some
+possible errors and pitfalls which need to be found. Assurers have the
+opportunity to see those errors and how to avoid them.
+
+As IanG said: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers and includes parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+The next event held in your area will be:
+
+- Monday, February 2nd 2015
+- during: 19:00 - ca. 22:00
+- Karma Indian Palace
+- Bertoldstrasse 51-53 (across to Cinemaxx)
+- 79098 Freiburg
+
+Details to the location can be found:
+Wiki [http://wiki.cacert.org/Events/2015-02-02-ATE-Freiburg]
+Blog [http://blog.cacert.org/2015/01/ate-freiburg-2015-02-02/]
+
+User reply for registration: 'I will attend the ATE-Freiburg'
+
+The event team is looking forward for your attendance:
+
+Contact: events@cacert.org
diff --git a/scripts/59de-ate-freiburg-mail.php.txt b/scripts/59de-ate-freiburg-mail.php.txt
new file mode 100644 (file)
index 0000000..c8f0d81
--- /dev/null
@@ -0,0 +1,138 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2013  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");
+
+    $lines = "";
+    $fp = fopen("59de-ate-freiburg-email.txt", "r");
+    while(!feof($fp))
+    {
+        $line = trim(fgets($fp, 4096));
+        $lines .= wordwrap($line, 75, "\n")."\n";
+    }
+    fclose($fp);
+
+
+//  $locid = intval($_REQUEST['location']);
+//  $maxdist = intval($_REQUEST['maxdist']);
+//  maxdist in [Km]
+  $maxdist = 200;
+
+
+// location      location.ID
+//   verified: 29.4.09 u.schroeter
+//   $locid = 7902857;       // Paris
+//   $locid = 238568;        // Bielefeld
+//   $locid = 715191;        // Hamburg
+//   $locid = 1102495;       // London
+//   $locid = 606058;        // Frankfurt
+//   $locid = 1775784;       // Stuttgart
+//   $locid = 228950;        // Berlin
+//   $locid = 606058;        // Frankfurt
+//   $locid = 599389;        // Flensburg
+//   $locid = 61065;        // Amsterdam, Eemnes
+//   $locid = 228950;        // Berlin
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States
+//   $locid = 1486658;       // Potsdam
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark
+//   $locid = 2093625;       // Los Angeles, CA ???
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States
+//   $locid = 2257312;       // Sydney, New South Wales, Australia
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany
+//   $locid = 1260319;       // Muenchen
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany
+//       $locid = 2262656;       // Melbourne, Victoria, Australia
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States
+//   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany
+//       $locid = 228950;        // Berlin
+// $locid = 1117395;       // Lubeck Hansestadt, Schleswig-Holstein, Germany
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $locid = 1992733;       // Wien, Wien, Austria
+
+//   $locid = ; 54334      // Amberg, Bayern, Germany
+//   $eventname = "ATE-Amberg";
+//   $city = "06. Januar 2014";
+    
+//   $locid = 1089877;      // Linz, Oberoesterreich, Austria
+//   $eventname = "ATE-Linz";
+//   $city = "16. Mai 2014";
+    
+//   $locid = 1993029;      // Wiesbaden, Hessen, Germany
+//   $eventname = "ATE-Wiesbaden";
+//   $city = "22. Mai 2014";
+
+    
+//   $locid = 1356196;      // Oberwart, Burgenland, Germany
+//   $eventname = "ATE-Oberwart (Korrektur)";
+//   $city = "27. Juni 2014";    
+
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $eventname = "ATE-Graz";
+//   $city = "13. November 2014";
+
+//   $locid = 1992733;       // Wien, Wien, Austria
+//   $eventname = "ATE-Wien";
+//   $city = "19. November 2014";
+
+   $locid = 606775;       // Freiburg, Baden-Wuertemberg, Germany
+   $eventname = "ATE-Freiburg";
+   $city = "2. Februar 2015";
+   
+    $query = "select * from `locations` where `id`='$locid'";
+        $loc = mysql_fetch_assoc(mysql_query($query));
+
+    $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) +
+            (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) *
+             COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.*
+            FROM `locations`
+                inner join `users`  on `users`.`locid` = `locations`.`id`
+                inner join `alerts` on `users`.`id`=`alerts`.`memid`
+                inner join `notary` on `users`.`id`=`notary`.`to`
+            WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)
+            GROUP BY `users`.`id`
+            HAVING `distance` <= '$maxdist'
+            ORDER BY `distance` ";
+     echo $query;
+
+    // comment next line when starting to send mail not only to me
+    //  $query = "select * from `users` where `email` like 'cacerttest%'";
+
+    $res = mysql_query($query);
+    $xrows = mysql_num_rows($res);
+
+    while($row = mysql_fetch_assoc($res))
+    {
+    //    uncomment next line to send mails ...
+        sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    }
+  // 1x cc to events.cacert.org
+    sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    // 1x mailing report to events.cacert.org
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+
+    // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1
+  sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    echo "invitation sent to $xrows recipients.\n";
+
+?>
diff --git a/scripts/60de-ate-bremen-email.txt b/scripts/60de-ate-bremen-email.txt
new file mode 100644 (file)
index 0000000..bc80f1b
--- /dev/null
@@ -0,0 +1,92 @@
+[Deutsch]
+
+Es hat sich viel getan in den letzten Jahren. Eine ganze Reihe von bisher
+eher "muendlich ueberlieferten" Regeln wurden in Policies gegossen.
+Neue Prozeduren (z.B. die Assurer Challenge) und Verpflichtungen (z.B.
+in dem CAcert Community Agreement) wurden beschlossen. Die Assurer
+Training Events wollen versuchen, die ganzen Informationen unter's
+Volk zu bringen:
+
+- Welcher Satz fehlt auf alten CAP Formularen?
+- Warum soll ich mir R/L/O einpraegen?
+- Wie verhaelst du dich,
+    wenn du ein fremdes Ausweisdokument das erste Mal pruefst?
+
+Antworten auf diese und weitere Fragen erhaelst du bei den
+Assurer Training Events (ATEs).
+
+Darueberhinaus wird beim ATE der Vorgang der Identitaetsueberpruefung
+trainiert und auditiert, um die Qualitaet der Assurances in der
+taeglichen Praxis zu erfassen. Dabei gilt es moegliche Fehler und
+Fallstricke zu erkennen und aufzudecken. Die Assurer haben also die
+Moeglichkeit, sich mit den Fehlern auseinanderzusetzen und zu erfahren,
+wie diese vermieden werden koennen.
+
+Wie IanG sagte: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers, and include parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+Die kommende Veranstaltung in deiner Naehe findet statt am:
+
+- Dienstag, den 5. Mai 2015
+- in der Zeit von: 19:00 - ca. 22:00 Uhr
+- Embassy of Nerdistan 
+- in den Raeumen des AUCOOP Bremen e.V. (2. OG)
+- Weberstr. 18
+- 28203 Bremen
+
+
+Details zum Veranstaltungsort und Anfahrthinweise findet Ihr im
+Wiki [http://wiki.cacert.org/Events/2015-05-05-ATE-Bremen]
+Blog [http://blog.cacert.org/2015/04/ate-bremen-2015-05-05/]
+
+Teilnehmer Registrierung mit Rueckantwort:
+ 'Ich moechte am ATE-Bremen teilnehmen'
+
+Das Veranstaltungs-Team freut sich schon auf Eure Teilnahme.
+
+Kontakt: events@cacert.org
+
+
+[English]
+
+During the last years many changes took place inside CAcert. Many "oral"
+rules have been put into Policies. New procedures
+(e.g. Assurer Challenge) and obligations
+(e.g. CAcert Community Agreement) have been put into live.
+The Assurer Training Events (ATE) try to spread this information:
+
+- What is missing on the "old" CAP forms?
+- Why should I remember R/L/O?
+- What can you do if an Assuree shows an ID document unknown to you?
+
+These and more questions will be answered during the
+Assurer Training Events (ATEs)
+
+Furthermore, the ATE trains how to do assurances and audits assurances,
+to measure the quality of assurances in the daily routine. Here are some
+possible errors and pitfalls which need to be found. Assurers have the
+opportunity to see those errors and how to avoid them.
+
+As IanG said: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers and includes parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+The next event held in your area will be:
+
+- Tuesday, May 5th 2015
+- during: 19:00 - ca. 22:00
+- Embassy of Nerdistan 
+- located at AUCOOP Bremen e.V. (2n floor)
+- Weberstr. 18
+- 28203 Bremen
+
+Details to the location can be found:
+Wiki [http://wiki.cacert.org/Events/2015-05-05-ATE-Bremen]
+Blog [http://blog.cacert.org/2015/04/ate-bremen-2015-05-05/]
+
+User reply for registration: 'I will attend the ATE-Bremen'
+
+The event team is looking forward for your attendance:
+
+Contact: events@cacert.org
diff --git a/scripts/60de-ate-bremen-mail.php.txt b/scripts/60de-ate-bremen-mail.php.txt
new file mode 100644 (file)
index 0000000..909412d
--- /dev/null
@@ -0,0 +1,142 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2013  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");
+
+    $lines = "";
+    $fp = fopen("60de-ate-bremen-email.txt", "r");
+    while(!feof($fp))
+    {
+        $line = trim(fgets($fp, 4096));
+        $lines .= wordwrap($line, 75, "\n")."\n";
+    }
+    fclose($fp);
+
+
+//  $locid = intval($_REQUEST['location']);
+//  $maxdist = intval($_REQUEST['maxdist']);
+//  maxdist in [Km]
+  $maxdist = 200;
+
+
+// location      location.ID
+//   verified: 29.4.09 u.schroeter
+//   $locid = 7902857;       // Paris
+//   $locid = 238568;        // Bielefeld
+//   $locid = 715191;        // Hamburg
+//   $locid = 1102495;       // London
+//   $locid = 606058;        // Frankfurt
+//   $locid = 1775784;       // Stuttgart
+//   $locid = 228950;        // Berlin
+//   $locid = 606058;        // Frankfurt
+//   $locid = 599389;        // Flensburg
+//   $locid = 61065;        // Amsterdam, Eemnes
+//   $locid = 228950;        // Berlin
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States
+//   $locid = 1486658;       // Potsdam
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark
+//   $locid = 2093625;       // Los Angeles, CA ???
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States
+//   $locid = 2257312;       // Sydney, New South Wales, Australia
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany
+//   $locid = 1260319;       // Muenchen
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany
+//       $locid = 2262656;       // Melbourne, Victoria, Australia
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States
+//   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany
+//       $locid = 228950;        // Berlin
+// $locid = 1117395;       // Lubeck Hansestadt, Schleswig-Holstein, Germany
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $locid = 1992733;       // Wien, Wien, Austria
+
+//   $locid = ; 54334      // Amberg, Bayern, Germany
+//   $eventname = "ATE-Amberg";
+//   $city = "06. Januar 2014";
+    
+//   $locid = 1089877;      // Linz, Oberoesterreich, Austria
+//   $eventname = "ATE-Linz";
+//   $city = "16. Mai 2014";
+    
+//   $locid = 1993029;      // Wiesbaden, Hessen, Germany
+//   $eventname = "ATE-Wiesbaden";
+//   $city = "22. Mai 2014";
+
+    
+//   $locid = 1356196;      // Oberwart, Burgenland, Germany
+//   $eventname = "ATE-Oberwart (Korrektur)";
+//   $city = "27. Juni 2014";    
+
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $eventname = "ATE-Graz";
+//   $city = "13. November 2014";
+
+//   $locid = 1992733;       // Wien, Wien, Austria
+//   $eventname = "ATE-Wien";
+//   $city = "19. November 2014";
+
+//   $locid = 606775;       // Freiburg, Baden-Wuertemberg, Germany
+//   $eventname = "ATE-Freiburg";
+//   $city = "2. Februar 2015";
+   
+   $locid = 281755;       // Bremen, Bremen, Germany
+   $eventname = "ATE-Bremen";
+   $city = "5. Mai 2015";
+   
+    $query = "select * from `locations` where `id`='$locid'";
+        $loc = mysql_fetch_assoc(mysql_query($query));
+
+    $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) +
+            (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) *
+             COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.*
+            FROM `locations`
+                inner join `users`  on `users`.`locid` = `locations`.`id`
+                inner join `alerts` on `users`.`id`=`alerts`.`memid`
+                inner join `notary` on `users`.`id`=`notary`.`to`
+            WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)
+            GROUP BY `users`.`id`
+            HAVING `distance` <= '$maxdist'
+            ORDER BY `distance` ";
+     echo $query;
+
+    // comment next line when starting to send mail not only to me
+    //  $query = "select * from `users` where `email` like 'cacerttest%'";
+
+    $res = mysql_query($query);
+    $xrows = mysql_num_rows($res);
+
+    while($row = mysql_fetch_assoc($res))
+    {
+    //    uncomment next line to send mails ...
+        sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    }
+  // 1x cc to events.cacert.org
+    sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    // 1x mailing report to events.cacert.org
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+
+    // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1
+  sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    echo "invitation sent to $xrows recipients.\n";
+
+?>
diff --git a/scripts/61de-ate-dresden-email.txt b/scripts/61de-ate-dresden-email.txt
new file mode 100644 (file)
index 0000000..e22427c
--- /dev/null
@@ -0,0 +1,92 @@
+[Deutsch]
+
+Es hat sich viel getan in den letzten Jahren. Eine ganze Reihe von bisher
+eher "muendlich ueberlieferten" Regeln wurden in Policies gegossen.
+Neue Prozeduren (z.B. die Assurer Challenge) und Verpflichtungen (z.B.
+in dem CAcert Community Agreement) wurden beschlossen. Die Assurer
+Training Events wollen versuchen, die ganzen Informationen unter's
+Volk zu bringen:
+
+- Welcher Satz fehlt auf alten CAP Formularen?
+- Warum soll ich mir R/L/O einpraegen?
+- Wie verhaelst du dich,
+    wenn du ein fremdes Ausweisdokument das erste Mal pruefst?
+
+Antworten auf diese und weitere Fragen erhaelst du bei den
+Assurer Training Events (ATEs).
+
+Darueberhinaus wird beim ATE der Vorgang der Identitaetsueberpruefung
+trainiert und auditiert, um die Qualitaet der Assurances in der
+taeglichen Praxis zu erfassen. Dabei gilt es moegliche Fehler und
+Fallstricke zu erkennen und aufzudecken. Die Assurer haben also die
+Moeglichkeit, sich mit den Fehlern auseinanderzusetzen und zu erfahren,
+wie diese vermieden werden koennen.
+
+Wie IanG sagte: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers, and include parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+Die kommende Veranstaltung in deiner Naehe findet statt am:
+
+- Dienstag, den 12. Mai 2015
+- in der Zeit von: 18:00 - ca. 21:00 Uhr
+- robotron-Buerokomplex 
+- in den Raeumen des Chaos Computer Club Dresden (GCHQ)
+- Lingnerallee 3
+- 01069 Dresden
+
+
+Details zum Veranstaltungsort und Anfahrthinweise findet Ihr im
+Wiki [http://wiki.cacert.org/Events/2015-05-12-ATE-Dresden]
+Blog [http://blog.cacert.org/2015/04/ate-dresden-2015-05-12/]
+
+Teilnehmer Registrierung mit Rueckantwort:
+ 'Ich moechte am ATE-Dresden teilnehmen'
+
+Das Veranstaltungs-Team freut sich schon auf Eure Teilnahme.
+
+Kontakt: events@cacert.org
+
+
+[English]
+
+During the last years many changes took place inside CAcert. Many "oral"
+rules have been put into Policies. New procedures
+(e.g. Assurer Challenge) and obligations
+(e.g. CAcert Community Agreement) have been put into live.
+The Assurer Training Events (ATE) try to spread this information:
+
+- What is missing on the "old" CAP forms?
+- Why should I remember R/L/O?
+- What can you do if an Assuree shows an ID document unknown to you?
+
+These and more questions will be answered during the
+Assurer Training Events (ATEs)
+
+Furthermore, the ATE trains how to do assurances and audits assurances,
+to measure the quality of assurances in the daily routine. Here are some
+possible errors and pitfalls which need to be found. Assurers have the
+opportunity to see those errors and how to avoid them.
+
+As IanG said: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers and includes parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+The next event held in your area will be:
+
+- Tuesday, May 12th 2015
+- during: 18:00 - ca. 21:00
+- robotron-Buerokomplex 
+- at Chaos Computer Club Dresden (GCHQ)
+- Lingnerallee 3
+- 01069 Dresden
+
+Details to the location can be found:
+Wiki [http://wiki.cacert.org/Events/2015-05-12-ATE-Dresden]
+Blog [http://blog.cacert.org/2015/04/ate-dresden-2015-05-12/]
+
+User reply for registration: 'I will attend the ATE-Dresden'
+
+The event team is looking forward for your attendance:
+
+Contact: events@cacert.org
diff --git a/scripts/61de-ate-dresden-mail.php.txt b/scripts/61de-ate-dresden-mail.php.txt
new file mode 100644 (file)
index 0000000..2b3ec78
--- /dev/null
@@ -0,0 +1,147 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2013  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");
+
+    $lines = "";
+    $fp = fopen("61de-ate-dresden-email.txt", "r");
+    while(!feof($fp))
+    {
+        $line = trim(fgets($fp, 4096));
+        $lines .= wordwrap($line, 75, "\n")."\n";
+    }
+    fclose($fp);
+
+
+//  $locid = intval($_REQUEST['location']);
+//  $maxdist = intval($_REQUEST['maxdist']);
+//  maxdist in [Km]
+  $maxdist = 200;
+
+
+// location      location.ID
+//   verified: 29.4.09 u.schroeter
+//   $locid = 7902857;       // Paris
+//   $locid = 238568;        // Bielefeld
+//   $locid = 715191;        // Hamburg
+//   $locid = 1102495;       // London
+//   $locid = 606058;        // Frankfurt
+//   $locid = 1775784;       // Stuttgart
+//   $locid = 228950;        // Berlin
+//   $locid = 606058;        // Frankfurt
+//   $locid = 599389;        // Flensburg
+//   $locid = 61065;        // Amsterdam, Eemnes
+//   $locid = 228950;        // Berlin
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States
+//   $locid = 1486658;       // Potsdam
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark
+//   $locid = 2093625;       // Los Angeles, CA ???
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States
+//   $locid = 2257312;       // Sydney, New South Wales, Australia
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany
+//   $locid = 1260319;       // Muenchen
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany
+//       $locid = 2262656;       // Melbourne, Victoria, Australia
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States
+//   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany
+//       $locid = 228950;        // Berlin
+// $locid = 1117395;       // Lubeck Hansestadt, Schleswig-Holstein, Germany
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $locid = 1992733;       // Wien, Wien, Austria
+
+//   $locid = ; 54334      // Amberg, Bayern, Germany
+//   $eventname = "ATE-Amberg";
+//   $city = "06. Januar 2014";
+    
+//   $locid = 1089877;      // Linz, Oberoesterreich, Austria
+//   $eventname = "ATE-Linz";
+//   $city = "16. Mai 2014";
+    
+//   $locid = 1993029;      // Wiesbaden, Hessen, Germany
+//   $eventname = "ATE-Wiesbaden";
+//   $city = "22. Mai 2014";
+
+    
+//   $locid = 1356196;      // Oberwart, Burgenland, Germany
+//   $eventname = "ATE-Oberwart (Korrektur)";
+//   $city = "27. Juni 2014";    
+
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $eventname = "ATE-Graz";
+//   $city = "13. November 2014";
+
+//   $locid = 1992733;       // Wien, Wien, Austria
+//   $eventname = "ATE-Wien";
+//   $city = "19. November 2014";
+
+//   $locid = 606775;       // Freiburg, Baden-Wuertemberg, Germany
+//   $eventname = "ATE-Freiburg";
+//   $city = "2. Februar 2015";
+   
+//   $locid = 281755;       // Bremen, Bremen, Germany
+//   $eventname = "ATE-Bremen";
+//   $city = "5. Mai 2015";
+
+   $locid = 510891;       // Dresden, Sachsen, Germany
+   $eventname = "ATE-Dresden";
+   $city = "12. Mai 2015";
+   
+   
+    $query = "select * from `locations` where `id`='$locid'";
+        $loc = mysql_fetch_assoc(mysql_query($query));
+
+    $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) +
+            (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) *
+             COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.*
+            FROM `locations`
+                inner join `users`  on `users`.`locid` = `locations`.`id`
+                inner join `alerts` on `users`.`id`=`alerts`.`memid`
+                inner join `notary` on `users`.`id`=`notary`.`to`
+            WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)
+            GROUP BY `users`.`id`
+            HAVING `distance` <= '$maxdist'
+            ORDER BY `distance` ";
+     echo $query;
+
+    // comment next line when starting to send mail not only to me
+    //  $query = "select * from `users` where `email` like 'cacerttest%'";
+
+    $res = mysql_query($query);
+    $xrows = mysql_num_rows($res);
+
+    while($row = mysql_fetch_assoc($res))
+    {
+    //    uncomment next line to send mails ...
+        sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    }
+  // 1x cc to events.cacert.org
+    sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    // 1x mailing report to events.cacert.org
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+
+    // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1
+  sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    echo "invitation sent to $xrows recipients.\n";
+
+?>
diff --git a/scripts/62de-froscon2015-email.txt b/scripts/62de-froscon2015-email.txt
new file mode 100644 (file)
index 0000000..1daa2a3
--- /dev/null
@@ -0,0 +1,33 @@
+Hallo,
+
+CAcert wird dieses Jahr zum zehnten Mal mit einem Stand auf der FrOSCon
+vertreten sein. Damit gehoert CAcert zu den Projekten, die bei allen zehn
+Auflagen der FrOSCon dabei waren.
+
+CAcert wird neben dem Stand, an dem wie ueblich Assured und ueber CAcert
+informiert wird, auch mit einem Projektraum vertreten sein. In diesem
+Projektraum wird an aktuellen Softwareentwicklungen bei CAcert gearbeitet,
+z.B. Test der Root Erstellung, Gigi/Cassiopeia dem Redesign der Software.
+
+Wir hoffen, dass wir viele von Euch auf der FrOSCon treffen werden.
+
+Wann?
+- Samstag + Sonntag, 22. + 23. August 2015
+- Einlass Samstag ab 08:30h und Sonntag ab 09:00h
+
+Ort:
+- in der Hochschule Bonn-Rhein-Sieg
+- Grantham-Allee 20
+- 53757 Sankt Augustin
+
+Tickets
+- Der Eintritt ist in diesem Jahr frei!
+
+
+Euer Event Team
+
+Kontakt: events@cacert.org
+
+
+[1] [https://www.froscon.de]
+[2] [https://wiki.cacert.org/Events/FrOSCon2015]
diff --git a/scripts/62de-froscon2015-mail.php.txt b/scripts/62de-froscon2015-mail.php.txt
new file mode 100644 (file)
index 0000000..3923e72
--- /dev/null
@@ -0,0 +1,151 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2013  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");
+
+    $lines = "";
+    $fp = fopen("62de-froscon2015-email.txt", "r");
+    while(!feof($fp))
+    {
+        $line = trim(fgets($fp, 4096));
+        $lines .= wordwrap($line, 75, "\n")."\n";
+    }
+    fclose($fp);
+
+
+//  $locid = intval($_REQUEST['location']);
+//  $maxdist = intval($_REQUEST['maxdist']);
+//  maxdist in [Km]
+  $maxdist = 200;
+
+
+// location      location.ID
+//   verified: 29.4.09 u.schroeter
+//   $locid = 7902857;       // Paris
+//   $locid = 238568;        // Bielefeld
+//   $locid = 715191;        // Hamburg
+//   $locid = 1102495;       // London
+//   $locid = 606058;        // Frankfurt
+//   $locid = 1775784;       // Stuttgart
+//   $locid = 228950;        // Berlin
+//   $locid = 606058;        // Frankfurt
+//   $locid = 599389;        // Flensburg
+//   $locid = 61065;        // Amsterdam, Eemnes
+//   $locid = 228950;        // Berlin
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States
+//   $locid = 1486658;       // Potsdam
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark
+//   $locid = 2093625;       // Los Angeles, CA ???
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States
+//   $locid = 2257312;       // Sydney, New South Wales, Australia
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany
+//   $locid = 1260319;       // Muenchen
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany
+//       $locid = 2262656;       // Melbourne, Victoria, Australia
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States
+//   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany
+//       $locid = 228950;        // Berlin
+// $locid = 1117395;       // Lubeck Hansestadt, Schleswig-Holstein, Germany
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $locid = 1992733;       // Wien, Wien, Austria
+
+//   $locid = ; 54334      // Amberg, Bayern, Germany
+//   $eventname = "ATE-Amberg";
+//   $city = "06. Januar 2014";
+    
+//   $locid = 1089877;      // Linz, Oberoesterreich, Austria
+//   $eventname = "ATE-Linz";
+//   $city = "16. Mai 2014";
+    
+//   $locid = 1993029;      // Wiesbaden, Hessen, Germany
+//   $eventname = "ATE-Wiesbaden";
+//   $city = "22. Mai 2014";
+
+    
+//   $locid = 1356196;      // Oberwart, Burgenland, Germany
+//   $eventname = "ATE-Oberwart (Korrektur)";
+//   $city = "27. Juni 2014";    
+
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $eventname = "ATE-Graz";
+//   $city = "13. November 2014";
+
+//   $locid = 1992733;       // Wien, Wien, Austria
+//   $eventname = "ATE-Wien";
+//   $city = "19. November 2014";
+
+//   $locid = 606775;       // Freiburg, Baden-Wuertemberg, Germany
+//   $eventname = "ATE-Freiburg";
+//   $city = "2. Februar 2015";
+   
+//   $locid = 281755;       // Bremen, Bremen, Germany
+//   $eventname = "ATE-Bremen";
+//   $city = "5. Mai 2015";
+
+//   $locid = 510891;       // Dresden, Sachsen, Germany
+//   $eventname = "ATE-Dresden";
+//   $city = "12. Mai 2015";
+
+   $locid = 1631926;       // Sankt Augustin, Nordrhein-Westfalen, Germany
+   $eventname = "CAcert auf der FrOSCon 2015";
+   $city = "22. und 23. August";
+   
+   
+    $query = "select * from `locations` where `id`='$locid'";
+        $loc = mysql_fetch_assoc(mysql_query($query));
+
+    $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) +
+            (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) *
+             COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.*
+            FROM `locations`
+                inner join `users`  on `users`.`locid` = `locations`.`id`
+                inner join `alerts` on `users`.`id`=`alerts`.`memid`
+                inner join `notary` on `users`.`id`=`notary`.`to`
+            WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)
+            GROUP BY `users`.`id`
+            HAVING `distance` <= '$maxdist'
+            ORDER BY `distance` ";
+     echo $query;
+
+    // comment next line when starting to send mail not only to me
+    //  $query = "select * from `users` where `email` like 'cacerttest%'";
+
+    $res = mysql_query($query);
+    $xrows = mysql_num_rows($res);
+
+    while($row = mysql_fetch_assoc($res))
+    {
+    //    uncomment next line to send mails ...
+        sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    }
+  // 1x cc to events.cacert.org
+    sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    // 1x mailing report to events.cacert.org
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+
+    // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1
+  sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    echo "invitation sent to $xrows recipients.\n";
+
+?>
diff --git a/scripts/63dk-ate-nykobing-email.txt b/scripts/63dk-ate-nykobing-email.txt
new file mode 100644 (file)
index 0000000..4c0b7ee
--- /dev/null
@@ -0,0 +1,121 @@
+[Danish]
+Gennem det sidste års tid er der sket mange ændringer hos CAcert. Mange mundtlige regler er blevet skrevet ned i politikker. Nye procedurer (f.eks. Assurer Challenge) og forpligtelser (f.eks. CAcert Community Agreement) har set dagens lys.
+Assurandør trænings events (ATE) forsøger at udbrede disse informationer.
+-          Hvad mangler på den gamle CAP formular?
+-          Hvorfor skal jeg huske R/L/O?
+-          Hvad kan du gøre hvis en person fremviser ID dokumenter jeg ikke kender?
+Disse og flere spørgsmål vil blive besvaret under en Assurandør trænings event (ATE)
+Yderligere, træner man på ATE, hvordan man verificere og kontrollere verificeringer for at måle kvaliteten af verificeringsprocessen i det daglige. Der er en del fejl, som er nemme at falde i. Assurandører får mulighed for at se disse fejl og hvordan man undgår dem.
+Som IanG sagde: ATE eller Assurandør Træningens events er klart anbefalet til alle assurandører og indeholder dele som hjælper direkte med vores godkendelseskontrol. Kom og find ud af hvordan du også kan hjælpe.
+Den næste event, som afholdes i dit område er:
+-          Søndag d. 20. September 2015
+-          Kl. 10:00 – ca. 17:00
+-          ShowIT Media
+-          Slotsbryggen 14 A-D
+-          4800 Nykøbing F.
+-          Denmark
+BEMÆRK: eventen foregår på engelsk
+Detaljerne om eventen og programmet kan findes på:
+Wiki [https://wiki.cacert.org/Events/2015-09-20-ATE-DK-Nykobing]
+Blog [https://blog.cacert.org/2015/07/ate-nykobing-denmark-on-september-20th-2015/]
+Du kan tilmelde dig ved at besvare denne mail og i emnet feltet skrive: 'I will attend the ATE-Nykobing'
+Event teamet ser frem til din deltagelse
+Kontakt: events@cacert.org
+
+[English]
+
+During the last years many changes took place inside CAcert. Many "oral"
+rules have been put into Policies. New procedures
+(e.g. Assurer Challenge) and obligations
+(e.g. CAcert Community Agreement) have been put into live.
+The Assurer Training Events (ATE) try to spread this information:
+
+- What is missing on the "old" CAP forms?
+- Why should I remember R/L/O?
+- What can you do if an Assuree shows an ID document unknown to you?
+
+These and more questions will be answered during the
+Assurer Training Events (ATEs)
+
+Furthermore, the ATE trains how to do assurances and audits assurances,
+to measure the quality of assurances in the daily routine. Here are some
+possible errors and pitfalls which need to be found. Assurers have the
+opportunity to see those errors and how to avoid them.
+
+As IanG said: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers and includes parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+The next event held in your area will be:
+
+- Sunday 20th September 2015
+- during 10:00 - ca. 17:00
+- ShowIT Media
+- Slotsbryggen 14 A-D
+- 4800 Nykobing F
+- Denmark
+
+Important: the speeches will be held in English.
+
+Details to the location and the agenda can be found:
+Wiki [https://wiki.cacert.org/Events/2015-09-20-ATE-DK-Nykobing]
+Blog [https://blog.cacert.org/2015/07/ate-nykobing-denmark-on-september-20th-2015/]
+
+User reply for registration: 'I will attend the ATE-Nykobing'
+
+The event team is looking forward for your attendance:
+
+Contact: events@cacert.org
+
+[Deutsch]
+
+Es hat sich viel getan im letzten Jahr. Eine ganze Reihe von bisher
+eher "mündlich überlieferten" Regeln wurden in Policies gegossen.
+Neue Prozeduren (z.B. die Assurer Challenge) und Verpflichtungen (z.B.
+in dem CAcert Community Agreement) wurden beschlossen. Die Assurer
+Training Events wollen versuchen, die ganzen Informationen unter's
+Volk zu bringen:
+
+- Welcher Satz fehlt auf alten CAP Formularen?
+- Warum soll ich mir R/L/O einprägen?
+- Wie verhältst du dich,
+    wenn du ein fremdes Ausweisdokument das erste Mal prüfst?
+
+Antworten auf diese und weitere Fragen erhältst du bei den
+Assurer Training Events (ATEs).
+
+Darüber hinaus wird beim ATE der Vorgang der Identitätsüberprüfung
+trainiert und auditiert, um die Qualität der Assurances in der
+täglichen Praxis zu erfassen. Dabei gilt es mögliche Fehler und
+Fallstricke zu erkennen und aufzudecken. Die Assurer haben also die
+Möglichkeit, sich mit den Fehlern auseinanderzusetzen und zu erfahren,
+wie diese vermieden werden können.
+
+Wie IanG sagte: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers, and include parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+Die kommende Veranstaltung in deiner Nähe findet statt am:
+
+- Sonntag, den 20. September 2015
+- in der Zeit von: 10:00 - ca. 17:00 Uhr
+- ShowIT Media
+- Slotsbryggen 14 A-D
+- 4800 Nykobing F
+- Denmark
+
+Wichtig: Die Vortragsprache ist Englisch.
+
+Details zum Ablauf, Veranstaltungsort und Anfahrthinweise findet Ihr im
+Wiki [https://wiki.cacert.org/Events/2015-09-20-ATE-DK-Nykobing]
+Blog [https://blog.cacert.org/2015/07/ate-nykobing-denmark-on-september-20th-2015/]
+
+Teilnehmer Registrierung mit Rückantwort:
+ 'Ich moechte am ATE-Nykobing teilnehmen'
+
+Das Veranstaltungs-Team freut sich schon auf Eure Teilnahme.
+
+Kontakt: events@cacert.org
+
diff --git a/scripts/63dk-ate-nykobing-mail.php.txt b/scripts/63dk-ate-nykobing-mail.php.txt
new file mode 100644 (file)
index 0000000..f22e52a
--- /dev/null
@@ -0,0 +1,155 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2013  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");
+
+    $lines = "";
+    $fp = fopen("63dk-ate-nykobing-email.txt", "r");
+    while(!feof($fp))
+    {
+        $line = trim(fgets($fp, 4096));
+        $lines .= wordwrap($line, 75, "\n")."\n";
+    }
+    fclose($fp);
+
+
+//  $locid = intval($_REQUEST['location']);
+//  $maxdist = intval($_REQUEST['maxdist']);
+//  maxdist in [Km]
+  $maxdist = 200;
+
+
+// location      location.ID
+//   verified: 29.4.09 u.schroeter
+//   $locid = 7902857;       // Paris
+//   $locid = 238568;        // Bielefeld
+//   $locid = 715191;        // Hamburg
+//   $locid = 1102495;       // London
+//   $locid = 606058;        // Frankfurt
+//   $locid = 1775784;       // Stuttgart
+//   $locid = 228950;        // Berlin
+//   $locid = 606058;        // Frankfurt
+//   $locid = 599389;        // Flensburg
+//   $locid = 61065;        // Amsterdam, Eemnes
+//   $locid = 228950;        // Berlin
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States
+//   $locid = 1486658;       // Potsdam
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark
+//   $locid = 2093625;       // Los Angeles, CA ???
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States
+//   $locid = 2257312;       // Sydney, New South Wales, Australia
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany
+//   $locid = 1260319;       // Muenchen
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany
+//       $locid = 2262656;       // Melbourne, Victoria, Australia
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States
+//   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany
+//       $locid = 228950;        // Berlin
+// $locid = 1117395;       // Lubeck Hansestadt, Schleswig-Holstein, Germany
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $locid = 1992733;       // Wien, Wien, Austria
+
+//   $locid = ; 54334      // Amberg, Bayern, Germany
+//   $eventname = "ATE-Amberg";
+//   $city = "06. Januar 2014";
+    
+//   $locid = 1089877;      // Linz, Oberoesterreich, Austria
+//   $eventname = "ATE-Linz";
+//   $city = "16. Mai 2014";
+    
+//   $locid = 1993029;      // Wiesbaden, Hessen, Germany
+//   $eventname = "ATE-Wiesbaden";
+//   $city = "22. Mai 2014";
+
+    
+//   $locid = 1356196;      // Oberwart, Burgenland, Germany
+//   $eventname = "ATE-Oberwart (Korrektur)";
+//   $city = "27. Juni 2014";    
+
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $eventname = "ATE-Graz";
+//   $city = "13. November 2014";
+
+//   $locid = 1992733;       // Wien, Wien, Austria
+//   $eventname = "ATE-Wien";
+//   $city = "19. November 2014";
+
+//   $locid = 606775;       // Freiburg, Baden-Wuertemberg, Germany
+//   $eventname = "ATE-Freiburg";
+//   $city = "2. Februar 2015";
+   
+//   $locid = 281755;       // Bremen, Bremen, Germany
+//   $eventname = "ATE-Bremen";
+//   $city = "5. Mai 2015";
+
+//   $locid = 510891;       // Dresden, Sachsen, Germany
+//   $eventname = "ATE-Dresden";
+//   $city = "12. Mai 2015";
+
+//   $locid = 1631926;       // Sankt Augustin, Nordrhein-Westfalen, Germany
+//   $eventname = "CAcert auf der FrOSCon 2015";
+//   $city = "22. und 23. August";
+   
+   $locid = 1352507;       // Nykobing, Storstrom, Denmark
+   $eventname = "ATE-Nykobing";
+   $city = "2015-09-20";
+   
+      
+    $query = "select * from `locations` where `id`='$locid'";
+        $loc = mysql_fetch_assoc(mysql_query($query));
+
+    $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) +
+            (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) *
+             COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.*
+            FROM `locations`
+                inner join `users`  on `users`.`locid` = `locations`.`id`
+                inner join `alerts` on `users`.`id`=`alerts`.`memid`
+                inner join `notary` on `users`.`id`=`notary`.`to`
+            WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)
+            GROUP BY `users`.`id`
+            HAVING `distance` <= '$maxdist'
+            ORDER BY `distance` ";
+     echo $query;
+
+    // comment next line when starting to send mail not only to me
+    //  $query = "select * from `users` where `email` like 'cacerttest%'";
+
+    $res = mysql_query($query);
+    $xrows = mysql_num_rows($res);
+
+    while($row = mysql_fetch_assoc($res))
+    {
+    //    uncomment next line to send mails ...
+        sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    }
+  // 1x cc to events.cacert.org
+    sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    // 1x mailing report to events.cacert.org
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+
+    // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1
+  sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    echo "invitation sent to $xrows recipients.\n";
+
+?>
diff --git a/scripts/oa03-csr_org_client_cert.php.txt b/scripts/oa03-csr_org_client_cert.php.txt
new file mode 100644 (file)
index 0000000..89a49c4
--- /dev/null
@@ -0,0 +1,98 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2011  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");
+
+       $lines = "";
+       $fp = fopen("oa03-csr_org_client_cert.txt", "r");
+       while(!feof($fp))
+       {
+               $line = trim(fgets($fp, 4096));
+               $lines .= wordwrap($line, 75, "\n")."\n";
+       }
+       fclose($fp);
+
+// ---  Variable parameters --- begin
+
+// $country
+//     ""    (empty)  email to _all_ countries
+//     "DE"   2-digit country code, eg. email to Germany Org's only
+
+// $status
+//    Status:  1 mails to org contacts only
+//             2 mails to org admins only
+//             3 mails to org contacts + org admins
+
+// $subject
+//   sample:
+//     with
+//     mailing subject results in
+//     a) $country = ""
+//        "[CAcert.org] Allowance to publish Organisation Assurance on CAcert website"
+//     b) $country = "DE"
+//        "[CAcert.org] Allowance to publish Organisation Assurance on CAcert website (DE)"
+
+
+////OA Allowance
+//$country = "";   //   "DE" or ""
+//$status  = 3;      //   1, 2 or 3   3 = 1+2
+//$subject = "Allowance to publish Organisation Assurance on CAcert website";
+
+
+//OA Org Client Cert Information
+$country = "";   //   "DE" or ""
+$status  = 3;      //   1, 2 or 3   3 = 1+2
+$subject = "New Feature in CAcert Organisation Accounts";
+
+// --- Variable parameters --- end
+
+$query = "SELECT orginfo.contact as email, orginfo.O, 1 as status
+                       FROM orginfo
+                       WHERE (orginfo.C like '$country%' and (1=$status or 3=$status))
+      UNION
+                       Select users.email, orginfo.O, 2 as status
+                       FROM users
+                               inner join org on users.id = org.memid
+                               inner join orginfo on org.orgid=orginfo.id
+      WHERE (orginfo.C like '$country%' and (2=$status or 3=$status))
+      ORDER BY O";
+
+
+        echo $query;
+
+    // comment next line when starting to send mail not only to me 
+    // $query = "select * from `users` where `email` like 'cacerttest%'";
+
+       $res = mysql_query($query);
+       $xrows = mysql_num_rows($res);
+
+       while($row = mysql_fetch_assoc($res))
+       {
+    //    uncomment next line to send mails ...
+               sendmail($row['email'], "[CAcert.org] ".$subject.(empty($country)?"":" (".$country.")") , $lines, "support@cacert.org", "", "", "CAcert OA Support", "returns@cacert.org", 1);
+       }
+  // 1x cc to oao.cacert.org
+       sendmail("oao@cacert.org", "[CAcert.org] ".$subject.(empty($country)?"":" (".$country.")"), $lines, "oao@cacert.org", "", "", "CAcert OA Support", "returns@cacert.org", 1);
+       // 1x mailing report to oao.cacert.org
+  sendmail("oao@cacert.org", "[CAcert.org] ".$subject.(empty($country)?"":" (".$country.")")." - Report", "oa-mailing sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert OA Support", "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] ".$subject.(empty($country)?"":" (".$country.")")." - 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";
+?>
diff --git a/scripts/oa03-csr_org_client_cert.txt b/scripts/oa03-csr_org_client_cert.txt
new file mode 100644 (file)
index 0000000..f766360
--- /dev/null
@@ -0,0 +1,58 @@
+[German version below]
+Dear Sir or Madam,
+ Dear CEO or CAcert Organisation Administrator,
+
+We're proud to announce that the software team has implemented a new variant
+to create Organisation Client Certificates!
+
+Until now, client certificates in an Organisation Account could only be created 
+by using the browser feature to create a key pair and signing request in one 
+run.
+
+The new feature is called CSR, Certificate Signing Request. The end user can 
+create a CSR (certificate signing request) on his own computer and give it to 
+the Organisation Administrator. The Organisation Administrator will copy & paste 
+it into the web form and will receive the signed certificate which he will send 
+back to the user. This means that the user generates the private key for the 
+signed certificate.
+
+The key benefit of this approach is that the Organisation Administrator has no access to the end-user's private key.
+
+See also
+https://blog.cacert.org/2014/12/creating-certificates-with-csr-now-possible-for-org-accounts/
+https://wiki.cacert.org/OrganisationAssurance/OA/OrgAdmin/Handbook/EN#clientcert
+
+Best regards
+
+Marcus Maengel
+CAcert Organisation Assurance Officer
+
+[German version]
+Sehr geehrte Damen und Herren,
+  sehr geehrte CEO und Organisationsadministratoren,
+
+Wir freuen uns darüber, Ihnen mitteilen zu können, dass das Software Team einen 
+weitere Methode der Software hinzugefügt hat, mit der man Organisations-Client-
+Zertifikate erstellen kann.
+
+Der bisher einzige Weg war es, die Organisations-Client-Zertifikate im Browser 
+zu erstellen. Dabei werden sowohl der private Schlüssel erzeugt als auch das 
+Signieren in einem Schritt durchgeführt.
+
+Die neue Methode nutzt den CSR (Certificate Signing Request). Ein Anwender kann 
+auf seinem eigenen PC den privaten Schlüssel und den CSR erstellen. Letzterer 
+wird an den Organisationsadminstrator gesendet. Der Organisationsadminstrator 
+kopiert den CSR in das Web-Formular und erhält den signierten öffentlichen 
+Schlüssel, der dann an den Anwender zurück gesendet wird.
+
+Ein Vorteil dieser Methode ist es, dass der Organisationsadministrator keinen 
+Zugriff auf den privaten Schlüssel des Anwenders benötigt.
+
+Weiteres ist hier zu finden
+https://blog.cacert.org/2014/12/creating-certificates-with-csr-now-possible-for-org-accounts/
+https://wiki.cacert.org/OrganisationAssurance/OA/OrgAdmin/Handbook/DE#clientcert
+
+Mit freundlichen Grüßen
+
+Marcus Maengel
+CAcert Organisation Assurance Officer
\ No newline at end of file
diff --git a/scripts/send_policy_cca_correct_20150221_1.php b/scripts/send_policy_cca_correct_20150221_1.php
new file mode 100644 (file)
index 0000000..797771a
--- /dev/null
@@ -0,0 +1,113 @@
+#!/usr/bin/php -q
+<?php
+/*
+    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");
+
+// read texts
+
+$lines_EN = <<<EOF
+
+We have to inform you that there was an incorrect version of the CAcert Community Agreement (CCA) on the main website of CAcert for a couple of days.
+
+The CCA provides the general terms and conditions for all CAcert members. We may only issue certificates and sign PGP keys to those who have accepted these terms and conditions.
+
+Unfortunately, you are among those who have accepted the CCA while the incorrect version was online.
+
+The correct version of the CCA can be found at:
+http://www.cacert.org/policy/CAcertCommunityAgreement.html
+
+If you agree to this version, you do not need to do anything. 
+
+If you do not accept this version, please send an email to support@cacert.org no later than 2015-03-08 to request termination of your CAcert membership. Terminating your membership will cause the revocation of all your certificates, the disabling of your login to the CAcert web interface and the anonymisation of your personal data.
+
+Most of the differences will probably not affect you. but they can be seen at:
+http://svn.cacert.org/CAcert/Policies/CAcertCommunityAgreement_20140708.html
+
+Major changes are:
+ *  The CCA was changed to clearly be a general terms and conditions what  makes it easier to join and exit as CAcert member. For CAcert it was  obvious to do the change, because all CAcert members sign the same  conditions without the possibility to strike or add personal clauses.
+ * More ways to accept the CCA were added.
+ *  Termination of membership was clarified some more. Some other options  beside the ruling of an Arbitrator were cautiously added.
+ *  You have a new obligation to answer in arbitration cases. This seems to  be obvious, but you never signed it before. In the past this was  derived from some points within our Dispute Resolution Policy (DRP).
+ *  Sharing of accounts and credentials was banned more clearly. Also the  obligation to only use a certificate in the appropriate contexts was  added. It was already part of the Certification Practice Statement  (CPS).
+ * Some kinds of contributions as personal data are now excepted from the non-exclusive non-restrictive non-revocable transfer of licence to CAcert.
+ * Official communication with CAcert was simplified.
+ * Some deprecated references were removed.
+
+Sincerely,
+Eva Stöwe
+CAcert Policy Officer
+EOF;
+
+$lines_EN = wordwrap($lines_EN, 75, "\n");
+$lines_EN = mb_convert_encoding($lines_EN, "HTML-ENTITIES", "UTF-8");
+
+
+// read last used id
+$lastid = 0;
+if (file_exists("send_policy_cca_correct_20150221_1_lastid.txt"))
+{
+       $fp = fopen("send_policy_cca_correct_20150221_1_lastid.txt", "r");
+       $lastid = trim(fgets($fp, 4096));
+       fclose($fp);
+}
+
+echo "ID now: $lastid\n";
+
+
+$count = 0;
+
+$query = "
+
+       SELECT
+               users.id,
+               users.fname,
+               users.lname,
+               users.email,
+               COUNT(*) AS agreement_count
+       FROM user_agreements
+       LEFT JOIN users ON users.id = user_agreements.memid
+       WHERE        user_agreements.date >= '2015-01-08 14:29:00'
+       AND        user_agreements.date <= '2015-01-15 10:48:00'
+       AND        user_agreements.document = 'CCA'
+       AND         users.id NOT IN (
+                SELECT user_agreements.memid
+                FROM  user_agreements
+                WHERE        user_agreements.date < '2015-01-08 14:29:00'
+                AND        user_agreements.document = 'CCA')
+       GROUP BY users.id";
+
+$res = mysql_query($query);
+
+while($row = mysql_fetch_assoc($res))
+{
+       $mailtxt = "Dear ${row["fname"]} ${row["lname"]},\n".$lines_EN."\n\n";
+
+       sendmail($row['email'], "[CAcert.org] CAcert Community Agreement (CCA)", $mailtxt, "support@cacert.org", "", "", "CAcert", "returns@cacert.org", "");
+
+       $fp = fopen("send_policy_cca_correct_20150221_1_lastid.txt", "w");
+       fputs($fp, $row["id"]."\n");
+       fclose($fp);
+
+       $count++;
+       echo "Sent ${count}th mail. User ID: ${row["id"]}\n";
+
+       if(0 == $count % 5) {
+               sleep (1);
+       }
+}
diff --git a/scripts/send_policy_cca_correct_20150221_2.php b/scripts/send_policy_cca_correct_20150221_2.php
new file mode 100644 (file)
index 0000000..fa9f384
--- /dev/null
@@ -0,0 +1,97 @@
+#!/usr/bin/php -q
+<?php
+/*
+    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");
+
+// read texts
+
+$lines_EN = <<<EOF
+
+We have to inform you that there was an incorrect version of the CAcert Community Agreement (CCA) on the main website of CAcert for some a couple of days.
+
+The CCA is the general terms and conditions for CAcert. We may only issue certificates and sign PGP keys to those who have accepted those conditions.
+
+As you have accepted the CCA during that period, we want to give you a link to the correct version, to ensure that you are not confused about the different versions.
+
+The correct version of the CCA can be found at:
+http://www.cacert.org/policy/CAcertCommunityAgreement.html
+
+Sincerely,
+Eva Stöwe
+CAcert Policy Officer
+EOF;
+
+$lines_EN = wordwrap($lines_EN, 75, "\n");
+$lines_EN = mb_convert_encoding($lines_EN, "HTML-ENTITIES", "UTF-8");
+
+
+// read last used id
+$lastid = 0;
+if (file_exists("send_policy_cca_correct_20150221_2_lastid.txt"))
+{
+       $fp = fopen("send_policy_cca_correct_20150221_2_lastid.txt", "r");
+       $lastid = trim(fgets($fp, 4096));
+       fclose($fp);
+}
+
+echo "ID now: $lastid\n";
+
+
+$count = 0;
+
+$query = "
+
+       SELECT
+               users.id,
+               users.fname,
+                       users.lname,
+               users.email,
+               COUNT(*) AS agreement_count
+       FROM user_agreements
+       LEFT JOIN users ON users.id = user_agreements.memid
+       WHERE   user_agreements.date >= '2015-01-08 14:29:00'
+       AND     user_agreements.date <= '2015-01-15 10:48:00'
+       AND     user_agreements.document = 'CCA'
+       AND     users.id IN (
+                       SELECT users.id
+                       FROM  user_agreements
+                       LEFT JOIN users ON users.id = user_agreements.memid
+                       WHERE        user_agreements.date < '2015-01-08 14:29:00'
+                       AND        user_agreements.document = 'CCA')
+       GROUP BY users.id";
+
+$res = mysql_query($query);
+
+while($row = mysql_fetch_assoc($res))
+{
+       $mailtxt = "Dear ${row["fname"]} ${row["lname"]},\n".$lines_EN."\n\n";
+
+       sendmail($row['email'], "[CAcert.org] CAcert Community Agreement (CCA)", $mailtxt, "support@cacert.org", "", "", "CAcert", "returns@cacert.org", "");
+
+       $fp = fopen("send_policy_cca_correct_20150221_2_lastid.txt", "w");
+       fputs($fp, $row["id"]."\n");
+       fclose($fp);
+
+       $count++;
+       echo "Sent ${count}th mail. User ID: ${row["id"]}\n";
+
+       if(0 == $count % 5) {
+               sleep (1);
+       }
+}
index 8e5fe01..3522f1c 100644 (file)
@@ -16,7 +16,7 @@
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
         loadem("index");
         showheader(_("Identity Verification Form (CAP) form"));
-       Version: $Id: cap.html.php,v 1.2 2011-06-10 18:30:41 wytze Exp $
+       Version: $Id: cap.html.php,v 1.3 2015/01/08 15:02:40 wytze Exp $
 */
        echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">', "\n";
        echo '<html>', "\n";
index 273b0e6..a57bde3 100644 (file)
@@ -17,8 +17,8 @@
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
-//   $Id: capnew.php,v 1.4 2012-01-24 14:26:05 root Exp $
-define('REV', '$Revision: 1.4 $');
+//   $Id: capnew.php,v 1.5 2015/01/08 15:02:40 wytze Exp $
+define('REV', '$Revision: 1.5 $');
 
 /*
 **  Created from old cap.php 2003, which used the now obsoleted ftpdf package
@@ -387,7 +387,7 @@ function utf8_is_ascii_ctrl($str) {
 // extend TCPF with custom functions
 class CAPPDF extends TCPDF {
 
-    // do cap form version numbering automatically '$Revision: 1.4 $'
+    // do cap form version numbering automatically '$Revision: 1.5 $'
     /*public*/ function Version() {
        strtok(REV, ' ');
         return(strtok(' '));
index 6291ea2..fdc186e 100644 (file)
@@ -14,7 +14,7 @@
     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
-        Version: $Id: coap.html.php,v 1.2 2011-06-10 18:30:41 wytze Exp $
+        Version: $Id: coap.html.php,v 1.3 2015/01/08 15:02:41 wytze Exp $
 */
 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
index 5a161b4..832e397 100644 (file)
@@ -17,8 +17,8 @@
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
-//   $Id: coapnew.php,v 1.4 2012-01-24 14:26:05 root Exp $
-define('REV', '$Revision: 1.4 $');
+//   $Id: coapnew.php,v 1.5 2015/01/08 15:02:41 wytze Exp $
+define('REV', '$Revision: 1.5 $');
 
 /*
 **  Created from old cap.php 2003, which used the now obsoleted ftpdf package
@@ -422,7 +422,7 @@ function utf8_is_ascii_ctrl($str) {
 // extend TCPF with custom functions
 class COAPPDF extends TCPDF {
 
-    // do cap form version numbering automatically "$Revision: 1.4 $"
+    // do cap form version numbering automatically "$Revision: 1.5 $"
     /*public*/ function Version() {
        strtok(REV, " ");
         return(strtok(" "));
diff --git a/www/policy/NRPDisclaimerAndLicence.php b/www/policy/NRPDisclaimerAndLicence.php
new file mode 100644 (file)
index 0000000..bee8f26
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<html>
+<head><title>NRP-DAL was replaced by the Root Distribution License</title></head>
+<body>
+<table border="1" bgcolor="#EEEEEE"><tr><td>
+
+The document "Non Related Persons - Disclaimer And Licence" was replaced by the Root Distribution Licence, which can be found <a href="/policy/RootDistributionLicense.php">here</a>.
+
+</td>
+</tr>
+</table>
+</body>
+</html>