Source code taken from cacert-20130129.tar.bz2
authorMichael Tänzer <neo@nhng.de>
Tue, 12 Feb 2013 23:00:20 +0000 (00:00 +0100)
committerMichael Tänzer <neo@nhng.de>
Tue, 12 Feb 2013 23:00:20 +0000 (00:00 +0100)
24 files changed:
includes/general.php
includes/lib/general.php
includes/wot.inc.php
locale/escape_special_chars.php
pages/account/40.php
pages/account/41.php
pages/index/11.php
pages/wot/11.php [deleted file]
pages/wot/14.php [deleted file]
scripts/47us-fudcon-lawrence-email.txt [new file with mode: 0644]
scripts/47us-fudcon-lawrence-mail.php.txt [new file with mode: 0644]
scripts/48de-ate-kiel-email.txt [new file with mode: 0644]
scripts/48de-ate-kiel-mail.php.txt [new file with mode: 0644]
scripts/db_migrations/version2.sh [new file with mode: 0755]
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]
www/account.php
www/index.php
www/policy/DisputeResolutionPolicy.php
www/policy/OrganisationAssurancePolicy.php
www/styles/default.css
www/wot.php

index 3478dd4..d762586 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(dirname(__FILE__)."/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
index edc442a..6b3bcc8 100644 (file)
                                break;
                        case 'Unknown':                  // to be revoked in the future? limit to max 50 pts?
                        case 'Trusted Third Parties':        // to be revoked in the future? limit to max 35 pts?
+                       case 'TTP-Assisted':         // TTP assurances, limit to 35
+                       case 'TOPUP':        // TOPUP to be delevoped in the future, limit to 30
                        case '':                                // to be revoked in the future? limit to max 50 pts?
                        case 'Face to Face Meeting':        // normal assurances, limit to 35/50 pts in the future?
                                break;
index 32de390..0f494f1 100644 (file)
@@ -41,6 +41,9 @@ function is_msgid($line) {
        return substr_compare($line, MSGID, 0, MSGID_LEN) === 0;
 }
 
+
+////////////// Main //////////////
+
 // Skip the metadata (first msgid/msgstr pair)
 while (!feof(STDIN)) {
        $line = fgets(STDIN);
@@ -65,7 +68,13 @@ while (!feof(STDIN)) {
        }
        
        if ($msgstr) {
+               // Escape everything that has a special HTML entity such as
+               // &gt; or &auml; except quote characters
                $line = htmlentities($line, ENT_NOQUOTES, "UTF-8");
+               
+               // Escape everything else -> all characters that don't have a special
+               // HTML entity but are outside the ASCII range
+               $line = mb_convert_encoding($line, "HTML-ENTITIES", "UTF-8");
        }
        echo $line;
 }
index 4877d79..a809595 100644 (file)
@@ -29,15 +29,26 @@ if(!array_key_exists('secrethash',$_SESSION['_config'])) $_SESSION['_config']['s
 <p><?=_("You can alternatively use the form below, however joining the list is the prefered option to support your queries")?></p>
 <form method="post" action="account.php" name="form1">
   <input type="hidden" name="oldid" value="<?=$id?>">
-  <input type="hidden" name="support" value="yes">
+<!--   <input type="hidden" name="support" value="yes"> --> 
   <input type="hidden" name="secrethash2" value="">
-  <table border="0">
-    <tr><td width="90"><?=_("Your Name")?>:</td><td><input type="text" name="who"></td><td>&#160;</td></tr>
-    <tr><td><?=_("Your Email")?>:</td><td><input type="text" name="email"></td></tr>
-    <tr><td><?=_("Subject")?>:</td><td><input type="text" name="subject"></td></tr>
-    <tr><td colspan="2"><textarea name="message" cols="40" rows="10"></textarea></td></tr>
-    <tr><td colspan="3"><font color="#ff0000"><?=_("Warning: Please do not enter confidential data into this form, it is being sent to a public mailinglist. Use the form further below instead.")?></font></td></tr>
-    <tr><td colspan="2"><input type="submit" name="process" value="<?=_("Send")?>"></td></tr>
+  <p class="robotic" id="pot">
+    <label>If you're human leave this blank:</label>
+    <input name="robotest" type="text" id="robotest" class="robotest" />
+  </p>
+<table border="0">
+    <tr><td width="100"><?=_("Your Name")?>:</td><td width="100"><input type="text" name="who"></td><td width="100"></td><td width="100"></td>
+    <tr><td width="100"><?=_("Your Email")?>:</td><td colspan="3"><input type="text" name="email"></td>
+    <tr><td width="100"><?=_("Subject")?>:</td><td colspan="3"><input type="text" name="subject"></td></tr>
+    <tr><td width="100" valign="top"><?=_("Message")?>:</td><td colspan="3"><textarea name="message" cols="70" rows="10"></textarea></td></tr>
+
+    <tr>
+      <td colspan="2"><font color="#ff0000"><?=_("Warning: Please do not use \"send to mailing list\" when you entered confidential data. The request is being sent to a public mailinglist.")?></font></td>
+      <td colspan="2"><?=_("For confidential data use \"send to support\".")?></td>
+    </tr>
+    <tr>
+      <td colspan="2"><input type="submit" name="process[0]" value="<?=_("Send to mailing list")?>"></td>
+      <td colspan="2"><input type="submit" name="process[1]" value="<?=_("Send to support")?>"></td>
+    </tr>
   </table>
 </form>
 
@@ -50,20 +61,6 @@ if(!array_key_exists('secrethash',$_SESSION['_config'])) $_SESSION['_config']['s
 <p><?=_("There are a number of other mailing lists CAcert runs, some are general discussion, others are technical (such as the development list) or platform specific help (such as the list for Apple Mac users)")?></p>
 <p><a href="http://lists.cacert.org/"><?=_("Click here to view all lists available")?></a></p>
 
-<p><b><?=_("Sensitive Information")?></b></p>
-<p><?=_("If you have questions, comments or otherwise and information you're sending to us contains sensitive details, you should use the contact form below. Due to the large amounts of support emails we receive, sending general questions via this contact form will generally take longer then using the support mailing list. Also sending queries in anything but english could cause delays in supporting you as we'd need to find a translator to help.")?></p>
-<form method="post" action="account.php" name="form2">
-  <input type="hidden" name="secrethash2" value="">
-  <input type="hidden" name="oldid" value="<?=$id?>">
-  <table border="0">
-    <tr><td><?=_("Your Name")?>:</td><td><input type="text" name="who"></td></tr>
-    <tr><td><?=_("Your Email")?>:</td><td><input type="text" name="email"></td></tr>
-    <tr><td><?=_("Subject")?>:</td><td><input type="text" name="subject"></td></tr>
-    <tr><td colspan="2"><textarea name="message" cols="40" rows="10"></textarea></td></tr>
-    <tr><td colspan="2"><input type="submit" name="process" value="<?=_("Send")?>"></td></tr>
-  </table>
-</form>
-
 <p><b><?=_("Security Issues")?></b></p>
 <p><?=sprintf(_("Please use any of the following ways to report security ".
        "issues: You can use the above contact form for sensitive information. ".
index d2cfc8c..4ea9b10 100644 (file)
@@ -25,7 +25,7 @@ require_once($_SESSION['_config']['filepath'].'/includes/lib/l10n.php');
     <td colspan="2" class="title"><?=_("My Language Settings")?></td>
   </tr>
   <tr>
-    <td class="DataTD"><?=_("My prefered language")?>:</td>
+    <td class="DataTD"><?=_("My preferred language")?>:</td>
     <td class="DataTD"><select name="lang">
 <?
        foreach(L10n::$translations as $key => $val)
index 01eca3a..d1ef4df 100644 (file)
@@ -29,15 +29,26 @@ if(!array_key_exists('secrethash',$_SESSION['_config'])) $_SESSION['_config']['s
 <p><?=_("You can alternatively use the form below, however joining the list is the prefered option to support your queries")?></p>
 <form method="post" action="index.php" name="form1">
   <input type="hidden" name="oldid" value="<?=$id?>">
-  <input type="hidden" name="support" value="yes">
+<!--   <input type="hidden" name="support" value="yes"> --> 
   <input type="hidden" name="secrethash2" value="">
+  <p class="robotic" id="pot">
+    <label>If you're human leave this blank:</label>
+    <input name="robotest" type="text" id="robotest" class="robotest" />
+  </p>
   <table border="0">
-    <tr><td width="90"><?=_("Your Name")?>:</td><td><input type="text" name="who"></td><td>&#160;</td></tr>
-    <tr><td><?=_("Your Email")?>:</td><td><input type="text" name="email"></td></tr>
-    <tr><td><?=_("Subject")?>:</td><td><input type="text" name="subject"></td></tr>
-    <tr><td colspan="2"><textarea name="message" cols="40" rows="10"></textarea></td></tr>
-    <tr><td colspan="3"><font color="#ff0000"><?=_("Warning: Please do not enter confidential data into this form, it is being sent to a public mailinglist. Use the form further below instead.")?></font></td></tr>
-    <tr><td colspan="2"><input type="submit" name="process" value="<?=_("Send")?>"></td></tr>
+    <tr><td width="100"><?=_("Your Name")?>:</td><td width="100"><input type="text" name="who"></td><td width="100"></td><td width="100"></td>
+    <tr><td width="100"><?=_("Your Email")?>:</td><td colspan="3"><input type="text" name="email"></td>
+    <tr><td width="100"><?=_("Subject")?>:</td><td colspan="3"><input type="text" name="subject"></td></tr>
+    <tr><td width="100" valign="top"><?=_("Message")?>:</td><td colspan="3"><textarea name="message" cols="70" rows="10"></textarea></td></tr>
+
+    <tr>
+      <td colspan="2"><font color="#ff0000"><?=_("Warning: Please do not use \"send to mailing list\" when you entered confidential data. The request is being sent to a public mailinglist.")?></font></td>
+      <td colspan="2"><?=_("For confidential data use \"send to support\".")?></td>
+    </tr>
+    <tr>
+      <td colspan="2"><input type="submit" name="process[0]" value="<?=_("Send to mailing list")?>"></td>
+      <td colspan="2"><input type="submit" name="process[1]" value="<?=_("Send to support")?>"></td>
+    </tr>
   </table>
 </form>
 
@@ -50,20 +61,6 @@ if(!array_key_exists('secrethash',$_SESSION['_config'])) $_SESSION['_config']['s
 <p><?=_("There are a number of other mailing lists CAcert runs, some are general discussion, others are technical (such as the development list) or platform specific help (such as the list for Apple Mac users)")?></p>
 <p><a href="http://lists.cacert.org/"><?=_("Click here to view all lists available")?></a></p>
 
-<p><b><?=_("Sensitive Information")?></b></p>
-<p><?=_("If you have questions, comments or otherwise and information you're sending to us contains sensitive details, you should use the contact form below. Due to the large amounts of support emails we receive, sending general questions via this contact form will generally take longer then using the support mailing list. Also sending queries in anything but english could cause delays in supporting you as we'd need to find a translator to help.")?></p>
-<form method="post" action="index.php" name="form2">
-  <input type="hidden" name="secrethash2" value="">
-  <input type="hidden" name="oldid" value="<?=$id?>">
-  <table border="0">
-    <tr><td><?=_("Your Name")?>:</td><td><input type="text" name="who"></td></tr>
-    <tr><td><?=_("Your Email")?>:</td><td><input type="text" name="email"></td></tr>
-    <tr><td><?=_("Subject")?>:</td><td><input type="text" name="subject"></td></tr>
-    <tr><td colspan="2"><textarea name="message" cols="40" rows="10"></textarea></td></tr>
-    <tr><td colspan="2"><input type="submit" name="process" value="<?=_("Send")?>"></td></tr>
-  </table>
-</form>
-
 <p><b><?=_("Security Issues")?></b></p>
 <p><?=sprintf(_("Please use any of the following ways to report security issues: You can use the above contact form for sensitive information. You can email us to support@cacert.org. You can file a bugreport on %s and mark it as private."),"<a href='https://bugs.cacert.org/'>bugs.cacert.org</a>")?></p>
 
diff --git a/pages/wot/11.php b/pages/wot/11.php
deleted file mode 100644 (file)
index e25a862..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<? /*
-    LibreSSL - CAcert web application
-    Copyright (C) 2004-2008  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
-*/ ?>
-<? if($_SESSION['profile']['admin'] == 1) { ?>
-<table align="center" valign="middle" border="0" cellspacing="0" cellpadding="0" class="wrapper">
-  <tr>
-    <td colspan="2" class="title"><?=_("Organisational Assurance")?></td>
-  </tr>
-  <tr>
-    <td class="DataTD"><b><?=_("Organisation Title")?>:</b></td>
-    <td class="DataTD">&nbsp;</td>
-  </tr>
-  <tr>
-    <td class="DataTD"><b><?=_("Contact Email")?>:</b></td>
-    <td class="DataTD">&nbsp;</td>
-  </tr>
-  <tr>
-    <td class="DataTD"><b><?=_("Town/Suburb")?>:</b></td>
-    <td class="DataTD">&nbsp;</td>
-  </tr>
-  <tr>
-    <td class="DataTD"><b><?=_("State/Province")?>:</b></td>
-    <td class="DataTD">&nbsp;</td>
-  </tr>
-  <tr>
-    <td class="DataTD"><b><?=_("Country")?>:</b></td>
-    <td class="DataTD">&nbsp;</td>
-  </tr>
-  <tr>
-    <td class="DataTD"><b><?=_("Comments")?>:</b></td>
-    <td class="DataTD">&nbsp;</td>
-  </tr>
-</table>
-<? } else { ?>
-<p><?=_("This page is a work in Progress. Please see this")?>
-<a href="http://wiki.cacert.org/wiki/OrganisationEntities"><?=_("article on the Wiki")?></a>
-<?=_("for more information about Organizational Support.")?></a></p>
-<? } ?>
diff --git a/pages/wot/14.php b/pages/wot/14.php
deleted file mode 100644 (file)
index a827ee4..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<? /*
-    LibreSSL - CAcert web application
-    Copyright (C) 2004-2008  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
-*/ ?>
-
-<p>This is a demo page, which isn't fully functional yet.</p>
-
-<p><?=sprintf(_("If you have a %sSignaturecard%s (also called 'Buergerkarte'), you can digitally sign your assurance request here, and get 50 CAcert points:"),"<a href='http://www.buergerkarte.at/'>","</a>")?><br /></p>
-
-<p><?=sprintf(_("To get assured with your Signaturecard, you need the ".
-       "Software from %s. To activate your E-Card, please go to %s."),
-       "<a href='http://www.buergerkarte.at/bku/'>http://www.buergerkarte.at/bku/</a>",
-       "<a href='https://www.sozialversicherung.at/signon2-Registrierung/'>https://www.sozialversicherung.at/signon2-Registrierung/</a>"
-       )?></p>
-
-
-<pre><?=sanitizeHTML($_REQUEST['XMLResponse'])?></pre>
-
-<h1>1. Step: Assurance form</h1>
-
-<form name="form" method="post" action="http://localhost:3495/http-security-layer-request"/>
-   <input type="submit" name="Weiter" value="Start Assurance">
-   <input type="hidden" name="XMLRequest" value="&lt;CreateXMLSignatureRequest xmlns='http://www.buergerkarte.at/namespaces/securitylayer/20020831#' xmlns:dsig='http://www.w3.org/2000/09/xmldsig#' xmlns:sl10='http://www.buergerkarte.at/namespaces/securitylayer/20020225#'>&lt;KeyboxIdentifier>CertifiedKeypair&lt;/KeyboxIdentifier>&lt;DataObjectInfo Structure='enveloping'>&lt;sl10:DataObject>&lt;sl10:XMLContent>Mit dieser Signatur beantragen Sie die Assurance ihres CAcert Accounts '<?=$_SESSION['profile']['email']?>' mit ihrer Buergerkarte.&lt;/sl10:XMLContent>&lt;/sl10:DataObject>&lt;sl10:TransformsInfo>&lt;sl10:FinalDataMetaInfo>&lt;sl10:MimeType>text/plain&lt;/sl10:MimeType>&lt;/sl10:FinalDataMetaInfo>&lt;/sl10:TransformsInfo>&lt;/DataObjectInfo>&lt;/CreateXMLSignatureRequest>"/>
-   <input type="hidden" name="actualtest_" value="4"/>
-   <input type="hidden" name="DataURL" value="https://www.cacert.org/tverify/seclayer.php?id=14&amp;user=<?=$_SESSION['profile']['email']?>"/>
-   <input type="hidden" name="TestResult_" value="&lt;strong&gt;TestResult&lt;/strong&gt;"/>
-</form>
-
-<h1>2. Step: Person binding (Birthday)</h1>
-
-<form name="form" method="post" action="http://localhost:3495/http-security-layer-request"/>
-   <input type="submit" name="Weiter" value="Read birthday from Card">
-   <input type="hidden" name="XMLRequest" value="&lt;InfoboxReadRequest xmlns=&quot;http://www.buergerkarte.at/namespaces/securitylayer/20020225#&quot;&gt;&lt;InfoboxIdentifier&gt;IdentityLink&lt;/InfoboxIdentifier&gt;&lt;BinaryFileParameters ContentIsXMLEntity=&quot;true&quot;/&gt;&lt;/InfoboxReadRequest&gt;"/>
-   <input type="hidden" name="actualtest_" value="4"/>
-   <input type="hidden" name="DataURL" value="https://www.cacert.org/tverify/seclayer.php?id=14&amp;user=<?=$_SESSION['profile']['email']?>"/>
-   <input type="hidden" name="TestResult_" value="&lt;strong&gt;TestResult&lt;/strong&gt;"/>
-</form>
-
diff --git a/scripts/47us-fudcon-lawrence-email.txt b/scripts/47us-fudcon-lawrence-email.txt
new file mode 100644 (file)
index 0000000..d2b6e97
--- /dev/null
@@ -0,0 +1,26 @@
+Hi,\r
+\r
+I'm a Fedora developer and sysadmin (and a CAcert Assurer), and am going to be attending the Fedora Users and Developers Conference which will be held at the University of Kansas, located in Lawrence, KS, from January 18–20, 2013.\r
+\r
+We have a GPG/PGP keysigning party planned, and I'm interested in getting some people together to offer CAcert assurances.  This is especially important since CAcert will be removing all points formerly obtained by Thawte Point Transfer very soon.\r
+\r
+The CAcert Assurance Event will be held on Saturday, January 19, 2013, beginning at 15:30.\r
+The GPG Keysigning Event will begin at 16:30.\r
+\r
+If you are interested in either event, please sign up at:\r
+http://bit.ly/fudcon2013-keysigning for the keysigning event\r
+and/or\r
+http://bit.ly/fudcon2013-cacert-assurance for the CAcert assurance event.\r
+\r
+Please contact me at either nb@fedoraproject.org or nb@cacert.org if you have any questions.\r
+\r
+Nick\r
+\r
+Further infos:\r
+ * [https://wiki.cacert.org/Events/FUDConLawrence]\r
+  * CAcert organizing wiki page\r
+ * [http://fedoraproject.org/wiki/FUDCon:Lawrence_2013]\r
+  * has more information about FUDCon.\r
+\r
+\r
+Contact: events@cacert.org\r
diff --git a/scripts/47us-fudcon-lawrence-mail.php.txt b/scripts/47us-fudcon-lawrence-mail.php.txt
new file mode 100644 (file)
index 0000000..4bb3c8a
--- /dev/null
@@ -0,0 +1,109 @@
+#!/usr/bin/php -q\r
+<? /*\r
+    LibreSSL - CAcert web application\r
+    Copyright (C) 2004-2009  CAcert Inc.\r
+\r
+    This program is free software; you can redistribute it and/or modify\r
+    it under the terms of the GNU General Public License as published by\r
+    the Free Software Foundation; version 2 of the License.\r
+\r
+    This program is distributed in the hope that it will be useful,\r
+    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+    GNU General Public License for more details.\r
+\r
+    You should have received a copy of the GNU General Public License\r
+    along with this program; if not, write to the Free Software\r
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\r
+*/\r
+       include_once("../includes/mysql.php");\r
+\r
+       $lines = "";\r
+       $fp = fopen("47us-fudcon-lawrence-email.txt", "r");\r
+       while(!feof($fp))\r
+       {\r
+               $line = trim(fgets($fp, 4096));\r
+               $lines .= wordwrap($line, 75, "\n")."\n";\r
+       }\r
+       fclose($fp);\r
+\r
+\r
+//     $locid = intval($_REQUEST['location']);\r
+//     $maxdist = intval($_REQUEST['maxdist']);\r
+//  maxdist in [Km]\r
+  $maxdist = 200;\r
+\r
+\r
+// location      location.ID\r
+//   verified: 29.4.09 u.schroeter\r
+//   $locid = 7902857;       // Paris\r
+//   $locid = 238568;        // Bielefeld  \r
+//   $locid = 715191;        // Hamburg    \r
+//   $locid = 1102495;       // London     \r
+//   $locid = 606058;        // Frankfurt  \r
+//   $locid = 1775784;       // Stuttgart  \r
+//   $locid = 228950;        // Berlin  \r
+//   $locid = 606058;        // Frankfurt\r
+//   $locid = 599389;        // Flensburg\r
+//   $locid = 61065;        // Amsterdam, Eemnes\r
+//   $locid = 228950;        // Berlin  \r
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States   \r
+//   $locid = 1486658;       // Potsdam\r
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden\r
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States \r
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark \r
+//   $locid = 2093625;       // Los Angeles, CA ???\r
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States\r
+//   $locid = 2257312;       // Sydney, New South Wales, Australia\r
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany \r
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany \r
+//   $locid = 1260319;       // Muenchen    \r
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany\r
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany\r
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany\r
+//       $locid = 2262656;       // Melbourne, Victoria, Australia\r
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States\r
+\r
+// CAcert Assurance and Keysigning event at FUDcon, Lawrence, KS, Jan 19th 2013\r
+   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States\r
+   $eventname = "CAcert Assurance and Keysigning at FUDcon Lawrence, KS";\r
+   $city = "January 19th 2013";\r
+\r
+\r
+       $query = "select * from `locations` where `id`='$locid'";\r
+        $loc = mysql_fetch_assoc(mysql_query($query));\r
+\r
+       $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) + \r
+                       (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) * \r
+                        COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.* \r
+                       FROM `locations`\r
+                               inner join `users`  on `users`.`locid` = `locations`.`id` \r
+                               inner join `alerts` on `users`.`id`=`alerts`.`memid`\r
+                               inner join `notary` on `users`.`id`=`notary`.`to`\r
+                       WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)\r
+                       GROUP BY `users`.`id`\r
+                       HAVING `distance` <= '$maxdist' \r
+                       ORDER BY `distance` ";\r
+        echo $query;\r
+\r
+    // comment next line when starting to send mail not only to me \r
+    // $query = "select * from `users` where `email` like 'cacerttest%'";\r
+\r
+       $res = mysql_query($query);\r
+       $xrows = mysql_num_rows($res);\r
+\r
+       while($row = mysql_fetch_assoc($res))\r
+       {\r
+    //    uncomment next line to send mails ...\r
+               sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);\r
+       }\r
+  // 1x cc to events.cacert.org\r
+       sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);\r
+       // 1x mailing report to events.cacert.org\r
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);       \r
+\r
+       // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1\r
+  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);     \r
+       echo "invitation sent to $xrows recipients.\n";\r
+\r
+?>\r
diff --git a/scripts/48de-ate-kiel-email.txt b/scripts/48de-ate-kiel-email.txt
new file mode 100644 (file)
index 0000000..d522cdc
--- /dev/null
@@ -0,0 +1,68 @@
+[Deutsch]\r
+\r
+Es hat sich viel getan im letzten Jahr. Eine ganze Reihe von bisher\r
+eher "muendlich ueberlieferten" Regeln wurden in Policies gegossen.\r
+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\92s Volk zu bringen:\r
+\r
+- Welcher Satz fehlt auf alten CAP Formularen?\r
+- Warum soll ich mir R/L/O einpraegen?\r
+- Wie verhaelst du dich, wenn du ein fremdes Ausweis Dokument das erste mal pruefst?\r
+\r
+Antworten auf diese und weitere Fragen erhaelst du bei den Assurer Training Events (ATEs).\r
+\r
+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.\r
+\r
+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.\r
+\r
+Die kommende Veranstaltung in deiner Naehe findet statt am:\r
+\r
+- Dienstag, den 11. Februar 2013\r
+- in der Zeit von: 19:00 - ca. 22:00 Uhr\r
+- Toppoint e.V.\r
+- Eckernförder Str. 20\r
+- 24103 Kiel \r
+\r
+Details zum Veranstaltungsort und Anfahrthinweise findet Ihr im\r
+Wiki [http://wiki.cacert.org/Events/2013-02-11ATE-Kiel]\r
+Blog [http://blog.cacert.org/2013/01/586.html]\r
+\r
+Teilnehmer Registrierung mit Rueckantwort:\r
+ 'Ich moechte am ATE-Kiel teilnehmen'\r
+\r
+Das Veranstaltungs-Team freut sich schon auf Eure Teilnahme.\r
+\r
+Kontakt: events@cacert.org\r
+\r
+\r
+\r
+[English]\r
+\r
+During the last year 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:\r
+\r
+- What is missing on the "old" CAP forms?\r
+- Why should I remember R/L/O?\r
+- What can you do if an Assuree shows an ID document unknown to you?\r
+\r
+These and more questions will be answered during the Assurer Training Events (ATEs)\r
+\r
+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.\r
+\r
+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.\r
+\r
+The next event held in your area will be:\r
+\r
+- Tuesday 11. February 2013\r
+- during 19:00 - ca. 22:00\r
+- Toppoint e.V.\r
+- Eckernförder Str. 20\r
+- 24103 Kiel \r
+\r
+Details to the location can be found: \r
+Wiki [http://wiki.cacert.org/Events/2013-02-11ATE-Kiel]\r
+Blog [http://blog.cacert.org/2013/01/586.html]\r
+\r
+User reply for registration: 'I will attend the ATE-Kiel'\r
+\r
+The event team is looking forward for your attendance:\r
+\r
+Contact: events@cacert.org\r
diff --git a/scripts/48de-ate-kiel-mail.php.txt b/scripts/48de-ate-kiel-mail.php.txt
new file mode 100644 (file)
index 0000000..9f3ab46
--- /dev/null
@@ -0,0 +1,114 @@
+#!/usr/bin/php -q\r
+<? /*\r
+    LibreSSL - CAcert web application\r
+    Copyright (C) 2004-2009  CAcert Inc.\r
+\r
+    This program is free software; you can redistribute it and/or modify\r
+    it under the terms of the GNU General Public License as published by\r
+    the Free Software Foundation; version 2 of the License.\r
+\r
+    This program is distributed in the hope that it will be useful,\r
+    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+    GNU General Public License for more details.\r
+\r
+    You should have received a copy of the GNU General Public License\r
+    along with this program; if not, write to the Free Software\r
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\r
+*/\r
+       include_once("../includes/mysql.php");\r
+\r
+       $lines = "";\r
+       $fp = fopen("48de-ate-kiel-email.txt", "r");\r
+       while(!feof($fp))\r
+       {\r
+               $line = trim(fgets($fp, 4096));\r
+               $lines .= wordwrap($line, 75, "\n")."\n";\r
+       }\r
+       fclose($fp);\r
+\r
+\r
+//     $locid = intval($_REQUEST['location']);\r
+//     $maxdist = intval($_REQUEST['maxdist']);\r
+//  maxdist in [Km]\r
+  $maxdist = 200;\r
+\r
+\r
+// location      location.ID\r
+//   verified: 29.4.09 u.schroeter\r
+//   $locid = 7902857;       // Paris\r
+//   $locid = 238568;        // Bielefeld  \r
+//   $locid = 715191;        // Hamburg    \r
+//   $locid = 1102495;       // London     \r
+//   $locid = 606058;        // Frankfurt  \r
+//   $locid = 1775784;       // Stuttgart  \r
+//   $locid = 228950;        // Berlin  \r
+//   $locid = 606058;        // Frankfurt\r
+//   $locid = 599389;        // Flensburg\r
+//   $locid = 61065;        // Amsterdam, Eemnes\r
+//   $locid = 228950;        // Berlin  \r
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States   \r
+//   $locid = 1486658;       // Potsdam\r
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden\r
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States \r
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark \r
+//   $locid = 2093625;       // Los Angeles, CA ???\r
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States\r
+//   $locid = 2257312;       // Sydney, New South Wales, Australia\r
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany \r
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany \r
+//   $locid = 1260319;       // Muenchen    \r
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany\r
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany\r
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany\r
+//       $locid = 2262656;       // Melbourne, Victoria, Australia\r
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States\r
+\r
+// CAcert Assurance and Keysigning event at FUDcon, Lawrence, KS, Jan 19th 2013\r
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States\r
+//   $eventname = "CAcert Assurance and Keysigning at FUDcon Lawrence, KS";\r
+//   $city = "January 19th 2013";\r
+\r
+// ATE-Kiel 2013-02-11\r
+   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany\r
+   $eventname = "ATE-Kiel";\r
+   $city = "11. Februar 2013";\r
+\r
+\r
+       $query = "select * from `locations` where `id`='$locid'";\r
+        $loc = mysql_fetch_assoc(mysql_query($query));\r
+\r
+       $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) + \r
+                       (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) * \r
+                        COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.* \r
+                       FROM `locations`\r
+                               inner join `users`  on `users`.`locid` = `locations`.`id` \r
+                               inner join `alerts` on `users`.`id`=`alerts`.`memid`\r
+                               inner join `notary` on `users`.`id`=`notary`.`to`\r
+                       WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)\r
+                       GROUP BY `users`.`id`\r
+                       HAVING `distance` <= '$maxdist' \r
+                       ORDER BY `distance` ";\r
+        echo $query;\r
+\r
+    // comment next line when starting to send mail not only to me \r
+    // $query = "select * from `users` where `email` like 'cacerttest%'";\r
+\r
+       $res = mysql_query($query);\r
+       $xrows = mysql_num_rows($res);\r
+\r
+       while($row = mysql_fetch_assoc($res))\r
+       {\r
+    //    uncomment next line to send mails ...\r
+               sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);\r
+       }\r
+  // 1x cc to events.cacert.org\r
+       sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);\r
+       // 1x mailing report to events.cacert.org\r
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);       \r
+\r
+       // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1\r
+  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);     \r
+       echo "invitation sent to $xrows recipients.\n";\r
+       \r
+?>\r
diff --git a/scripts/db_migrations/version2.sh b/scripts/db_migrations/version2.sh
new file mode 100755 (executable)
index 0000000..7d940ff
--- /dev/null
@@ -0,0 +1,96 @@
+#!/bin/sh
+# 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
+
+
+
+# script to do database migrations
+
+# This particular version migrates from the preversioned state to version 1
+# If you want to reuse it for further migrations you probably should pay special 
+# attention because you have to adjust it a bit
+
+set -e # script fails if any command fails
+
+STDIN=0
+STDOUT=1
+STDERR=2
+
+if [ "$1" = "--help" ]; then
+       cat >&$STDERR <<- USAGE
+               Usage: $0 [MYSQL_OPTIONS]
+               You have to specify all options needed by "mysql" as if you had started
+               the MySQL command line client directly (including the name of the
+               database to operate on). The MySQL user used has to have enough
+               privileges to do all necessary operations (among others CREATE, ALTER,
+               DROP, UPDATE, INSERT, DELETE).
+               You might need to enter the mysql password multiple times if you
+               specify the -p option.
+       USAGE
+       exit 1
+fi
+
+mysql_opt=" --batch --skip-column-names $@"
+
+schema_version=$( mysql $mysql_opt <<- 'SQL'
+
+       SELECT MAX(`version`) FROM `schema_version`;
+SQL
+)
+if [ $schema_version != 1 ]; then
+       cat >&$STDERR <<- ERROR
+               Error: database schema is not in the right version to do the migration!
+               Expected version: 1 (i.e. the version before there was versioning)
+       ERROR
+       exit 2
+fi
+
+mysql $mysql_opt <<- 'SQL'
+
+       -- Organisation Assurance bug #1118
+       ALTER TABLE `orgemailcerts` ADD `ou` varchar(50) NOT NULL
+               DEFAULT '';
+       
+       
+       -- Bugs #855, #863, #864, #888, #1118
+       ALTER TABLE `notary`
+               -- add "TTP-Assisted" as method for point transfers (for TTP)
+               MODIFY `method`
+                       enum(
+                               'Face to Face Meeting',
+                               'Trusted Third Parties',
+                               'Thawte Points Transfer',
+                               'Administrative Increase',
+                               'CT Magazine - Germany',
+                               'Temporary Increase',
+                               'Unknown',
+                               'TOPUP',
+                               'TTP-Assisted'
+                       ) NOT NULL DEFAULT 'Face to Face Meeting';
+       
+       
+
+       
+       -- Update schema version number
+       INSERT INTO `schema_version`
+               (`version`, `when`) VALUES
+               ('2'      , NOW() );
+SQL
+
+
+echo "Database successfully migrated to version 2"
+exit 0
+
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";
index 0b32c2c..c7f34a3 100644 (file)
        } else if($id == 19) {
                include_once("../pages/account/19.php");
                exit;
-       } else if($oldid == 40 && $_REQUEST['process'] != "" && $_POST['support'] != "yes") {
-               $who = stripslashes($_REQUEST['who']);
-               $email = stripslashes($_REQUEST['email']);
-               $subject = stripslashes($_REQUEST['subject']);
-               $message = stripslashes($_REQUEST['message']);
-
-                $message = "From: $who\nEmail: $email\nSubject: $subject\n\nMessage:\n".$message;
-
-               sendmail("support@cacert.org", "[CAcert.org] ".$subject, $message, $email, $email, "", "CAcert Website");
-                showheader(_("Welcome to CAcert.org"));
-                echo _("Your message has been sent.");
-                showfooter();
-                exit;
-       } else if($oldid == 40 && $_REQUEST['process'] != "" && $_POST['support'] == "yes") {
+       } else if($oldid == 40 && $_REQUEST['process'] != "") {
                $who = stripslashes($_REQUEST['who']);
                $email = stripslashes($_REQUEST['email']);
                $subject = stripslashes($_REQUEST['subject']);
                $message = stripslashes($_REQUEST['message']);
 
+               //check for spam via honeypot
+               if(!isset($_REQUEST['robotest']) || !empty($_REQUEST['robotest'])){ 
+                       echo _("Form could not be sent.");
+                       showfooter();
+                       exit;
+               }
 
-                $message = "From: $who\nEmail: $email\nSubject: $subject\n\nMessage:\n".$message;
+               $message = "From: $who\nEmail: $email\nSubject: $subject\n\nMessage:\n".$message;
+               if (isset($process[0])){
+                       sendmail("cacert-support@lists.cacert.org", "[website form email]: ".$subject, $message, "website-form@cacert.org", "cacert-support@lists.cacert.org, $email", "", "CAcert-Website");
+                       showheader(_("Welcome to CAcert.org"));
+                       echo _("Your message has been sent to the general support list.");
+                       showfooter();
+                       exit;
+               }
+               if (isset($process[1])){
+                       sendmail("support@cacert.org", "[CAcert.org] ".$subject, $message, $email, "", "", "CAcert Support");
+                       showheader(_("Welcome to CAcert.org"));
+                       echo _("Your message has been sent.");
+                       showfooter();
+                       exit;
+               }
 
-                sendmail("cacert-support@lists.cacert.org", "[website form email]: ".$subject, $message, "website-form@cacert.org", "cacert-support@lists.cacert.org, $email", "", "CAcert Website");
-               
-                showheader(_("Welcome to CAcert.org"));
-                echo _("Your message has been sent to the general support list.");
-                showfooter();
-                exit;
        } else if($id == 51 && $_GET['img'] == "show") {
                $query = "select * from `tverify` where `id`='".intval($_GET['photoid'])."' and `modified`=0";
                $res = mysql_query($query);
index 41b6d7a..35d22d7 100644 (file)
@@ -563,6 +563,13 @@ require_once('../includes/lib/l10n.php');
                $subject = stripslashes($_REQUEST['subject']);
                $message = stripslashes($_REQUEST['message']);
                $secrethash = $_REQUEST['secrethash2'];
+               
+               //check for spam via honeypot
+               if(!isset($_REQUEST['robotest']) || !empty($_REQUEST['robotest'])){ 
+                       echo _("Form could not be sent.");
+                       showfooter();
+                       exit;
+               }
 
                if($_SESSION['_config']['secrethash'] != $secrethash || $secrethash == "" || $_SESSION['_config']['secrethash'] == "")
                {
@@ -603,26 +610,23 @@ require_once('../includes/lib/l10n.php');
                }
        }
 
-       if($oldid == 11 && $process != "" && $_REQUEST['support'] != "yes")
-       {
-               $message = "From: $who\nEmail: $email\nSubject: $subject\n\nMessage:\n".$message;
-
-               sendmail("support@cacert.org", "[CAcert.org] ".$subject, $message, $email, "", "", "CAcert Support");
-               showheader(_("Welcome to CAcert.org"));
-               echo _("Your message has been sent.");
-               showfooter();
-               exit;
-       }
-
-       if($oldid == 11 && $process != "" && $_REQUEST['support'] == "yes")
+       if($oldid == 11 && $process != "")
        {
                $message = "From: $who\nEmail: $email\nSubject: $subject\n\nMessage:\n".$message;
-
-               sendmail("cacert-support@lists.cacert.org", "[website form email]: ".$subject, $message, "website-form@cacert.org", "cacert-support@lists.cacert.org, $email", "", "CAcert-Website");
-               showheader(_("Welcome to CAcert.org"));
-               echo _("Your message has been sent to the general support list.");
-               showfooter();
-               exit;
+               if (isset($process[0])){
+                       sendmail("cacert-support@lists.cacert.org", "[website form email]: ".$subject, $message, "website-form@cacert.org", "cacert-support@lists.cacert.org, $email", "", "CAcert-Website");
+                       showheader(_("Welcome to CAcert.org"));
+                       echo _("Your message has been sent to the general support list.");
+                       showfooter();
+                       exit;
+               }
+               if (isset($process[1])){
+                       sendmail("support@cacert.org", "[CAcert.org] ".$subject, $message, $email, "", "", "CAcert Support");
+                       showheader(_("Welcome to CAcert.org"));
+                       echo _("Your message has been sent.");
+                       showfooter();
+                       exit;
+               }
        }
 
        if(!array_key_exists('signup',$_SESSION) || $_SESSION['signup']['year'] < 1900)
index a97789b..40fca3a 100644 (file)
@@ -1,60 +1,95 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
+<?='<?xml version="1.0" encoding="utf-8"?>'?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Dispute Resulution Policy</title>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
+ <title>Dispute Resulution Policy</title>
+<style type="text/css">
+<!--
+.first-does-not-work {
+        color : red;
+}
+.comment {
+        color : steelblue;
+}
+.q {
+        color : green;
+        font-weight: bold;
+        text-align: center;
+        font-style:italic;
+}
+.change {
+        color : blue;
+        font-weight: bold;
+}
+.change2 {
+        color : steelblue;
+}
+.strike {
+        color : blue;
+        text-decoration:line-through;
+}
+.draftadd {
+        color : darkblue;
+        font-weight: bold;
+        font-style: italic;
+}
+.draftdrop {
+        color : darkblue;
+        text-decoration:line-through;
+        font-style: italic;
+}
+-->
+</style>
+
 </head>
 <body>
 
-<table width="100%">
 
-<tr>
-<td> DRP </td>
-<td> </td>
-<td width="20%"> Teus Hagen </td>
-</tr>
 
-<tr>
-<td> POLICY&nbsp;<a href="http://wiki.cacert.org/wiki/TopMinutes-20070917">m20070919.3</a> </td>
-<td>  </td>
-<td>
-  $Date: 2008-01-18 22:56:31 $
-  <!--
-     to get this to work, we have to do this:
-       svn propset svn:keywords "Date" PolicyOnPolicy.html
-     except it does not work through the website.
-   -->
-</td>
-</tr>
+<div class="comment">
+<table width="100%">
 
 <tr>
-<td> COD7 </td>
-<td> </td>
-<td> <!-- contributors --> </td>
-</tr>
-
+<td>
+  Name: DRP <a style="color: steelblue" href="//svn.cacert.org/CAcert/Policies/ControlledDocumentList.html">COD7</a><br />
+  Status: POLICY <a style="color: steelblue" href="//wiki.cacert.org/wiki/TopMinutes-20070917">m20070919.3</a><br />
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;           <span class="draftadd">DRAFT p20110108 p20121213</span> <br />
+  Editor: <a style="color: steelblue" href="//wiki.cacert.org/TeusHagen">Teus Hagen
+</a><br />
+   Licence: <a style="color: steelblue" href="//wiki.cacert.org/Policy#Licence" title="this document is Copyright &copy; CAcert Inc., licensed openly under CC-by-sa with all disputes resolved under DRP.  More at wiki.cacert.org/Policy" > CC-by-sa+DRP </a><br /></td>
+<td valign="top" align="right">
+  <a href="//www.cacert.org/policy/PolicyOnPolicy.php"><img src="/images/cacert-policy.png" alt="TTP-Assist Status - POLICY" height="31" width="88" style="border-style: none;" /></a><br />
+  <a href="//www.cacert.org/policy/PolicyOnPolicy.php"><img src="/images/cacert-draft.png" alt="TTP-Assist Status - DRAFT" height="31" width="88" style="border-style: none;" /></a>
 
-<tr> <!-- title only -->
-<td> </td>
-<td > <b>Dispute&nbsp;Resolution&nbsp;Policy</b> </td>
-<td> </td>
+</td>
 </tr>
-
 </table>
+</div>
 
 
-<h2> <a name="0"> 0. </a> Introduction</h2>
+<h1> Dispute&nbsp;Resolution&nbsp;Policy </h1>
+
+<h2 id="s0">  0. Introduction</h2>
 
 <p>
-This is the Dispute Resolution Policy for CAcert.
+This is the Dispute Resolution Policy
+<span class="draftdrop">for CAcert</span>
+<span class="draftadd">for the CAcert Community, consisting of CAcert Inc and Members who agree to the CAcert Community Agreement (CCA)</span>.
 Disputes arising out of
-operations by CAcert and interactions between
-users may be addressed through this policy.
+operations by CAcert
+<span class="draftadd">Inc</span>
+and interactions between
+<span class="draftadd">
+Members
+</span>
+may be addressed through this policy.
 This document also presents the rules for
 resolution of disputes.
 </p>
 
-<h3> <a name="0.1"> 0.1 </a> Nature of Disputes </h3>
+<h3 id="s0.1">  0.1 Nature of Disputes </h3>
 
 <p>
 Disputes include:
@@ -64,9 +99,12 @@ Disputes include:
     Requests for non-routine support actions.
     CAcert support team has no authority to
     act outside the normal support facilities made
-    available to Users;
+    available to 
+    <span class="draftadd">
+    Members;
+    </span>
   </li><li>
-    Classical disputes where a User or another
+    Classical disputes where a <span class="draftadd">Member</span> or another
     assert claims and demand remedies;
   </li><li>
     Requests by external organisations, including
@@ -75,15 +113,15 @@ Disputes include:
     Events initiated for training purposes.
 </li></ul>
 
-<h2> <a name="1"> 1. </a> Filing</h2>
+<h2 id="s1">  1. Filing</h2>
 
-<h3> <a name="1.1"> 1.1 </a> Filing Party</h3>
+<h3 id="s1.1">  1.1 Filing Party</h3>
 <p>
 Anyone may file a dispute.
 In filing, they become <i>Claimants</i>.
 </p>
 
-<h3> <a name="1.2">1.2 </a> Channel for Filing</h3>
+<h3 id="s1.2"> 1.2 Channel for Filing</h3>
 
 <p>
 Disputes are filed by being sent to the normal
@@ -96,7 +134,7 @@ Such fees as are imposed on filing will be specified
 on the dispute resolution page of the website.
 </p>
 
-<h3> <a name="1.3">1.3 </a> Case Manager</h3>
+<h3 id="s1.3"> 1.3 Case Manager</h3>
 <p>
 The Case Manager (CM) takes control of the filing.
 </p>
@@ -120,10 +158,10 @@ The Case Manager (CM) takes control of the filing.
 <p>
 The personnel within the CAcert support team
 are Case Managers, by default, or as directed
-by the Dispute Resolution Officer.
+by the Dispute Resolution Officer <span class="change2">(DRO)</span>.
 </p>
 
-<h3> <a name="1.4">1.4 </a> Contents</h3>
+<h3 id="s1.4"> 1.4 Contents</h3>
 <p>
 The filing must specify:
 </p>
@@ -135,13 +173,13 @@ The filing must specify:
     being the <i>Respondent(s)</i>.
     This will be CAcert in the
     case of requests for support actions.
-    It may be a User (possibly unidentified) in the
-    case where one User has given rise to a complaint against another.
+    It may be a <span class="draftadd">Member</span> (possibly unidentified) in the
+    case where one <span class="draftadd">Member</span> has given rise to a complaint against another.
   </li><li>
     The <i>Complaint</i>.
     For example, a trademark has been infringed,
     privacy has been breached,
-    or a user has defrauded using a certificate.
+    or a <span class="draftadd">Member</span> has defrauded using a certificate.
   </li><li>
     The action(s) requested by the filing party
     (technically, called the <i>relief</i>).
@@ -157,11 +195,12 @@ may refile with the additional information,
 attaching the original messages.
 </p>
 
-<h3> <a name="1.5">1.5 </a> The Arbitrator</h3>
+<h3 id="s1.5"> 1.5 The Arbitrator</h3>
 
 <p>
 The Case Manager selects the Arbitrator according
-to the mechanism managed by the Dispute Resolution Officer
+to the mechanism managed by the
+<span class="change2">DRO</span> <!-- Dispute Resolution Officer -->
 and approved from time to time.
 This mechanism is to maintain a list of Arbitrators available for
 dispute resolution.
@@ -174,24 +213,31 @@ closed with status "declined."
 </p>
 
 <p>
-Arbitrators are experienced Assurers of CAcert.
+Arbitrators are experienced Assurers <span class="draftdrop">of CAcert</span>.
 They should be independent and impartial, including
-of CAcert itself where it becomes a party.
+of CAcert <span class="draftadd">Inc.</span> itself where it becomes a party.
 </p>
 
-<h2> <a name="2"> 2. </a> The Arbitration</h2>
+<h2 id="s2">  2. The Arbitration</h2>
 
 
-<h3> <a name="2.1">2.1 </a>  Authority</h3>
+<h3 id="s2.1"> 2.1  Authority</h3>
 
 <p>
-The Board of CAcert and the Users vest in Arbitrators
+The Board of CAcert <span class="draftadd">Inc.</span> and the 
+<span class="draftadd">
+Members of the Community
+</span>
+ vest in Arbitrators
 full authority to hear disputes and deliver rulings
-which are binding on CAcert and the Users.
+which are binding on CAcert <span class="draftadd">Inc.</span> and the
+<span class="draftadd">
+Members.
+</span>
 </p>
 
 
-<h3> <a name="2.2">2.2 </a>  Preliminaries</h3>
+<h3 id="s2.2"> 2.2  Preliminaries</h3>
 
 <p>
 The Arbitrator conducts some preliminaries:
@@ -208,29 +254,54 @@ The Arbitrator conducts some preliminaries:
    agree, are under such jurisdiction, and it is deemed
    more appropriate.
    However, this is strictly limited to those parties,
-   and especially, CAcert and other parties
-   remains under the governing law.
+   and especially, CAcert <span class="draftadd">Inc.</span> and other parties
+   remain under the governing law.
   </li><li>
    The Arbitrator reviews the Respondents and Claimants
    with a view to dismissal or joining of additional parties.
-   E.g., support personel may be joined if emergency action was
+   E.g., support personnel may be joined if emergency action was
    taken.
   </li><li>
-   Any parties that are not Users and are not bound
-   by the CPS are given the opportunity to enter into
-   CAcert and be bound by the CPS and these rules of arbitration.
-   If these Non-Related Persons (NRPs) remain outside,
+   Any parties that are not 
+   <span class="draftadd">
+   Members
+   </span>
+   and are not bound by the
+   <span class="draftdrop">CPS</span> <span class="draftadd">CCA</span>
+   are given the opportunity to enter into
+   CAcert and be bound by the
+   <span class="draftdrop">CPS</span> <span class="draftadd">CCA</span>
+   and these rules of arbitration.
+   If
+   <!-- <span class="draftdrop">these Non-Related Persons (NRPs)</span> <span class="change">they</span> -->
+   these Non-Related Persons (NRPs)
+   remain outside,
    their rights and remedies under CAcert's policies
-   and forum are strictly limited to that specified in the
-   Non-Related Persons -- Disclaimer and Licence.
-   NRPs may proceed with Arbitration subject to preliminary orders
+   and forum are strictly limited to
+   <span class="strike">that</span> <span class="change2">those</span>
+   specified in the
+   <span class="draftdrop">Non-Related Persons -- Disclaimer and Licence</span> <span class="draftadd">Root Distribution License</span>.
+   NRPs
+   may proceed with Arbitration subject to preliminary orders
    of the Arbitrator.
   </li><li>
-   Participating Users may not resign until the completion of the case.
+   Participating 
+   <span class="draftadd">
+   Members
+   </span>
+   may not resign
+   <span class="change2">
+   from the Community
+   </span>
+   until the completion of the case.
   </li><li>
    The Arbitrator confirms that all parties accept
    the forum of dispute resolution.
-   This is especially important where a User might be
+   This is especially important where a
+   <span class="draftadd">
+   Member
+   </span>
+   might be
    in a country with no Arbitration Act in law, or
    where there is reason to believe that a party might
    go to an external court.
@@ -240,12 +311,12 @@ The Arbitrator conducts some preliminaries:
    represented, but are not encouraged to do so,
    bearing in mind the volunteer nature of the
    organisation and the size of the dispute.
-   If they do so they must declare such, including any
-   changes.
+   If they do so<span class="change2">,</span>
+   they must declare such, including any changes.
   </li><li>
    The Arbitrator may appoint experienced Assurers
    to assist and represent parties, especially for NRPs.
-   The Case Manager must not to provide such assistance.
+   The Case Manager must not provide such assistance.
   </li><li>
    The Arbitrator is bound to maintain the balance
    of legal fairness.
@@ -255,16 +326,18 @@ The Arbitrator conducts some preliminaries:
    to emergency actions already taken.
   </li><li>
    The Arbitrator may request any written pleadings,
-   counterclaim, and/or statements of defence.
+   counterclaims, and/or statements of defence.
 </li></ul>
 
 
-<h3> <a name="2.3">2.3 </a>  Jurisdiction </h3>
+<h3 id="s2.3"> 2.3  Jurisdiction </h3>
 
 <p>
-Jurisidiction - the right or power to hear and rule on
+Jurisdiction - the right or power to hear and rule on
 disputes - is initially established by clauses in the
-User agreements for all CAcert Users.
+<span class="draftadd">
+CAcert Community Agreement.
+</span>
 The agreement must establish:
 </p>
 
@@ -292,7 +365,7 @@ to be considered carefully:
 </p>
 
 <ul><li>
-    Where NRPs, being not members of CAcert and not
+    Where NRPs, being not Members of CAcert and not
     bound by agreement, are parties to the dispute.
     E.g., intellectual property disputes may involve
     NRPs and their trademarks;
@@ -301,7 +374,11 @@ to be considered carefully:
     proceedings,
     e.g., fraud;
   </li><li>
-    Contracts between Users that were formed without
+    Contracts between 
+   <span class="draftadd">
+    Members
+   </span>
+    that were formed without
     a clause to seek arbitration in the forum;
   </li><li>
     Areas where laws fall outside the Arbitration Act,
@@ -321,7 +398,7 @@ another forum, the Arbitrator should seek the agreement
 of the NRP to file the ruling as part of the new case.
 </p>
 
-<h3> <a name="2.4">2.4 </a>  Basis in Law </h3>
+<h3 id="s2.4"> 2.4  Basis in Law </h3>
 
 <p>
 Each country generally has an Arbitration Act
@@ -329,7 +406,12 @@ that elevates Arbitration as a strong dispute
 resolution forum.
 The Act generally defers to Arbitration
 if the parties have so agreed.
-That is, as Users of CAcert, you agree to resolve
+That is, as 
+   <span class="draftadd">
+   Members
+   </span>
+<span class="draftdrop">users of CAcert</span>,
+you agree to resolve
 all disputes before CAcert's forum.
 This is sometimes called <i>private law</i>
 or <i>alternative dispute resolution</i>.
@@ -338,13 +420,16 @@ or <i>alternative dispute resolution</i>.
 <p>
 As a matter of public policy, courts will generally
 refer any case back to Arbitration.
-Users should understand that they will have
+   <span class="draftadd">
+   Members
+   </span>
+should understand that they will have
 strictly limited rights to ask the courts to
 seek to have a case heard or to override a Ruling.
 </p>
 
 
-<h3> <a name="2.5">2.5 </a>  External Courts </h3>
+<h3 id="s2.5"> 2.5  External Courts </h3>
 
 <p>
     When an external court claims and asserts its jurisdiction,
@@ -362,17 +447,20 @@ seek to have a case heard or to override a Ruling.
     court, and rules.
     The Arbitrator may rule to reject the order,
     for jurisdiction or other reasons.
-    By way of example, if all Parties are registered Users,
+    By way of example, if all Parties are
+    <span class="draftadd">
+    Members,
+    </span>
     then jurisdiction more normally falls within the forum.
     If the Arbitrator rules to reject,
-    he should do so only after consulting with CAcert counsel.
+    he should do so only after consulting with CAcert <span class="draftadd">Inc.</span> counsel.
     The Arbitrator's jurisidiction is ordinarily that of
     dealing with the order, and
     not that which the external court has claimed to.
 </p>
 
 
-<h3> <a name="2.6">2.6 </a>  Process</h3>
+<h3 id="s2.6"> 2.6  Process</h3>
 
 <p>
 The Arbitrator follows the procedure:
@@ -382,8 +470,11 @@ The Arbitrator follows the procedure:
 <ol><li>
     Establish the facts.
     The Arbitrator collects the evidence from the parties.
-    The Arbitrator may order CAcert or Users under
-    jurisdiction to provide support or information.
+    The Arbitrator may order CAcert <span class="draftadd">Inc.</span> or
+   <span class="draftadd">
+   Members
+   </span>
+    under jurisdiction to provide support or information.
     The Arbitrator may use email, phone or face-to-face
     meetings as proceedings.
   </li><li>
@@ -392,15 +483,23 @@ The Arbitrator follows the procedure:
     The Arbitrator may request that the parties
     submit their views.
     The Arbitrator also works to the mission of CAcert,
-    the benefit of all Users, and the community as a whole.
-    The Arbitrator may any assistance.
+    the benefit of all
+   <span class="draftadd">
+   Members
+   </span>
+    , and the community as a whole.
+    The Arbitrator may
+    <span class="draftadd">
+    seek
+    </span>
+    any assistance.
   </li><li>
     Makes a considered Ruling.
 </li></ol>
 
-<h2> <a name="3"> 3. </a> The Ruling</h2>
+<h2 id="s3">  3. The Ruling</h2>
 
-<h3> <a name="3.1">3.1 </a>  The Contents </h3>
+<h3 id="s3.1"> 3.1  The Contents </h3>
 
 <p>
 The Arbitrator records:
@@ -420,11 +519,11 @@ The Arbitrator records:
 </li></ol>
 
 
-<h3> <a name="3.2">3.2 </a>  Process </h3>
+<h3 id="s3.2"> 3.2  Process </h3>
 <p>
 Once the Ruling is delivered, the case is closed.
 The Case Manager is responsible for recording the
-Ruling, publishing it, and advising users.
+Ruling, publishing it, and advising <span class="draftadd">Members</span>.
 </p>
 
 <p>
@@ -440,53 +539,94 @@ Arbitrator declare the Ruling private <i>under seal</i>.
 Such a declaration must be reviewed in its entirety
 by the Board,
 and the Board must confirm or deny that declaration.
-If it confirms, the existance of any Rulings under seal
-must be published to the Users in a timely manner
+If it confirms, the existence of any Rulings under seal
+must be published to the
+   <span class="draftadd">
+   Members
+   </span>
+in a timely manner
 (within days).
 </p>
 
-<h3> <a name="3.3">3.3 </a>  Binding and Final </h3>
-
-<p>
-The Ruling is binding and final on CAcert and all Users.
-Ordinarily, all Users agree to be bound by this dispute
-resolution policy.  Users must declare in the Preliminaries
+<h3 id="s3.3"> 3.3  Binding and Final </h3>
+
+<p>
+The Ruling is
+<!-- (DRAFT p20110108) -->
+<span class="draftadd">ordinarily final and binding </span>
+<span class="draftdrop">binding and final</span>
+on CAcert <span class="draftadd">Inc.</span> and all
+   <span class="draftadd">
+   Members
+   </span>
+.
+Ordinarily, all
+   <span class="draftadd">
+   Members
+   </span>
+ agree to be bound by this dispute
+resolution policy.
+   <span class="draftadd">
+   Members
+   </span>
+must declare in the Preliminaries
 any default in agreement or binding.
 </p>
 
 <p>
-If a person who is not a User is a party to the dispute,
+If a person who is not a
+   <span class="draftadd">
+   Member
+   </span>
+is a party to the dispute,
 then the Ruling is not binding and final on that person,
 but the Ruling must be presented in filing any dispute
 in another forum such as the person's local courts.
 </p>
 
-<h3> <a name="3.4">3.4 </a>  Re-opening the Case or Appeal </h3>
+<h3 id="s3.4"> 3.4  <span class="draftadd">Review for Appeal (DRAFT p20110108)</span> &nbsp;&nbsp;&nbsp;&nbsp;    <span class="draftdrop">Re-opening the Case or Appeal</span> </h3>
 
 <p>
-In the case of clear injustices, egregious behaviour or
-unconscionable Rulings, parties may seek to re-open the
-case by filing a dispute.  The new Arbitrator
-reviews the new dispute,
+In the <span class="draftadd">event</span> <span class="draftdrop">case</span> of clear injustices, egregious behaviour or
+unconscionable Rulings,
+<span class="draftadd">
+a review may be requested by filing a dispute  (DRAFT p20110108).
+</span>
+<span class="draftdrop">
+parties may seek to re-open the
+case by filing a dispute.
+</span>
+The new Arbitrator reviews the new dispute,
 re-examines and reviews the entire case, then rules on
 whether the case may be re-opened or not.
 </p>
 
 <p>
+<span class="draftadd">
+If the Review Arbitrator rules the case be re-opened,
+then the Review Arbitrator refers the case to an Appeal Panel of 3.
+The Appeal Panel is led by a Senior Arbitrator,
+and is formed according to procedures established
+by the DRO from time to time.
+The Appeal Panel hears the case and delivers a final and binding Ruling.
+ (DRAFT p20110108)
+</span>
+<span class="draftdrop">
 If the new Arbitrator rules the case be re-opened,
 then it is referred to the Board of CAcert Inc.
 The Board hears the case and delivers a final
 and binding Ruling.
+</span>
 </p>
 
-<h3> <a name="3.5">3.5 </a>  Liability </h3>
+<h3 id="s3.5"> 3.5  Liability </h3>
 
 <p>
 All liability of the Arbitrator for any act in
 connection with deciding a dispute is excluded
 by all parties, provided such act does not constitute
 an intentional breach of duty.
-All liability of the Arbitrators, CAcert, its officers and its
+All liability of the Arbitrators, CAcert <span class="draftadd">Inc.</span>, its officers and its
 employees (including Case Manager)
 for any other act or omission in connection with
 arbitration proceedings is excluded, provided such acts do not
@@ -495,15 +635,18 @@ constitute an intentional or grossly negligent breach of duty.
 
 <p>
 The above provisions may only be overridden by
-appeal process (by means of a new dispute causing
-referral to the Board).
+appeal process
+ (by means of a new dispute causing referral to the Board).
+
 </p>
 
-<h3> <a name="3.6">3.6 </a>  Remedies </h3>
+<h3 id="s3.6"> 3.6  Remedies </h3>
 
 <p>
 The Arbitrator generally instructs using internal remedies,
-that is ones that are within the general domain of CAcert,
+that is ones that are within the general domain of
+<span class="draftdrop">CAcert</span>
+<span class="draftadd">the Community</span>,
 but there are some external remedies at his disposal.
 He may rule and instruct any of the parties on these issues.
 </p>
@@ -515,7 +658,7 @@ He may rule and instruct any of the parties on these issues.
       </li><li>
         writing documentation
       </li><li>
-        serve in role - support, dispute arbitration
+        serve in <span class="change2">a</span> role - support, dispute arbitration
     </li></ul>
     or others as decided.
 
@@ -531,7 +674,10 @@ He may rule and instruct any of the parties on these issues.
 
   </li><li>
     Monetary fine up to the liability cap established for
-    each party as described in the Registered User Agreement.
+    each party as described in the
+    <span class="draftadd">
+    CAcert Community Agreement.
+    </span>
 
   </li><li>
     Exclusion from community.
@@ -548,20 +694,25 @@ He may rule and instruct any of the parties on these issues.
 The Arbitrator is not limited within the general domain
 of CAcert, and may instruct novel remedies as seen fit.
 Novel remedies outside the domain may be routinely
-confirmed by the Board by way of appeals process,
+confirmed by the Board by way of appeal process,
 in order to establish precedent.
+
 </p>
 
-<h2> <a name="4"> 4. </a> Appendix</h2>
+<h2 id="s4">  4. Appendix</h2>
 
 
-<h3> <a name="4.1">4.1 </a>  The Advantages of this Forum </h3>
+<h3 id="s4.1"> 4.1  The Advantages of this Forum </h3>
 <p>
-The advantage of this process for Users is:
+The advantage of this process for
+   <span class="draftadd">
+   Members
+   </span>
+ is:
 </p>
 
 <ul><li>
-    CAcert and Users operate across many jurisdictions.
+    CAcert and <span class="draftadd">Members</span> operate across many jurisdictions.
     Arbitration allows us to select a single set of
     rules across all jurisdictions.
   </li><li>
@@ -572,7 +723,7 @@ The advantage of this process for Users is:
     authority to act.
     Good governance is thus maintained.
   </li><li>
-    This forum allows CAcert Users to look after themselves
+    This forum allows CAcert <span class="draftadd">Members</span> to look after themselves
     in a community, without exposing each other to potentially
     disastrous results in strange courts from foreign lands.
   </li><li>
@@ -588,18 +739,21 @@ The advantage of this process for Users is:
     other external agencies. 
 </li></ul>
 
-<h3> <a name="4.2">4.2 </a>  The Disadvantages of this Forum </h3>
+<h3 id="s4.2"> 4.2  The Disadvantages of this Forum </h3>
 
 <p>
 Some disadvantages exist.
 </p>
 
 <ul><li>
-     Users may have their rights trampled over.
+     <span class="draftadd">Members</span> may have their rights trampled over.
      In such a case, the community should strive to
-     re-open the case and refer it to the board.
+     re-open the case
+     and refer it to the board.
+
+
   </li><li>
-     Users may feel overwhelmed by the formality
+     <span class="draftadd">Members</span> may feel overwhelmed by the formality
      of the process.
      It is kept formal so as to establish good and proper
      authority to act;  otherwise, support and other
@@ -613,7 +767,7 @@ Some disadvantages exist.
      they should also depart the community.
 </li></ul>
 
-<h3> <a name="4.3">4.3 </a>  Process and Flow </h3>
+<h3 id="s4.3"> 4.3  Process and Flow </h3>
 
 <p>
 To the extent reasonable, the Arbitrator conducts
@@ -635,5 +789,6 @@ Note also that many elements of legal proceedings are
 deliberately left out of the rules.
 </p>
 
+
 </body>
 </html>
index 7d8699c..e462693 100644 (file)
@@ -1,54 +1,51 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head><title>Organisation Assurance Policy</title></head>
+<?='<?xml version="1.0" encoding="utf-8"?>'?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title> Organisation Assurance Policy </title>
+<style type="text/css">
+<!--
+.comment {
+        color : steelblue;
+}
+-->
+</style>
+
+</head>
 <body>
 
+<div class="comment">
 <table width="100%">
 
 <tr>
-<td> OAP </td>
-<td> </td>
-<td width="20%"> Jens  </td>
-</tr>
-
-<tr>
-<td> POLICY&nbsp;<a href="http://wiki.cacert.org/wiki/TopMinutes-20070917">m20070918.x</a> </td>
-<td>  </td>
 <td>
-  $Date: 2008-01-18 22:56:31 $
-  <!--
-     to get this to work, we have to do this:
-       svn propset svn:keywords "Date" file.html
-     except it does not work through the website.
-   -->
-</td>
-</tr>
+  Name: OAP <a style="color: steelblue" href="//svn.cacert.org/CAcert/Policies/ControlledDocumentList.html">COD11</a><br />
 
-<tr>
-<td> COD11 </td>
-<td> </td>
-<td> </td>
-</tr>
+  Status: POLICY/DRAFT <a style="color: steelblue" href="//wiki.cacert.org/wiki/TopMinutes-20070917">m20070918.x </a><br />
 
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;           <span class="draftadd">DRAFT p20080401.1   </span> <br />
+  Editor: Jens Paul <br />
+   Licence: <a style="color: steelblue" href="//wiki.cacert.org/Policy#Licence" title="this document is Copyright &copy; CAcert Inc., licensed openly under CC-by-sa with all disputes resolved under DRP.  More at wiki.cacert.org/Policy" > CC-by-sa+DRP </a><br /></td>
+<td valign="top" align="right">
+  <a href="//www.cacert.org/policy/PolicyOnPolicy.html"><img src="/images/cacert-policy.png" alt="OAP Status - POLICY" height="31" width="88" style="border-style: none;" /></a><br />
+  <a href="//www.cacert.org/policy/PolicyOnPolicy.html"><img src="/images/cacert-draft.png" alt="OAP Status - DRAFT" height="31" width="88" style="border-style: none;" /></a>
 
-<tr>
-<td> </td>
-<td > <b>Organisation&nbsp;Assurance&nbsp;Policy</b> </td>
-<td> </td>
+</td>
 </tr>
-
 </table>
+</div>
 
 
+<h1> Organisation&nbsp;Assurance&nbsp;Policy </h1>
 
-<h2> <a name="0"> 0. </a>  Preliminaries </h2>
+<h2 id="s0">0.   Preliminaries </h2>
 
 <p>
 This policy describes how Organisation Assurers ("OAs")
 conduct Assurances on Organisations.
 It fits within the overall web-of-trust
-or Assurance process of Cacert.
+or Assurance process of CAcert.
 </p>
 
 <p>
@@ -56,7 +53,7 @@ This policy is not a Controlled document, for purposes of
 Configuration Control Specification ("CCS").
 </p>
 
-<h2> <a name="1"> 1. </a> Purpose </h2>
+<h2 id="s1"> 1. Purpose </h2>
 
 <p>
 Organisations with assured status can issue certificates
@@ -76,27 +73,31 @@ and as described in the CPS.
     to this policy.
   </li><li>
     The organisation is within the jurisdiction
-    and can be taken to Arbitration.
+    and can be taken to CAcert Arbitration.
 </li></ul>
 
 
-<h2> <a name="2"> 2. </a> Roles and Structure </h2> 
+<h2 id="s2"> 2. Roles and Structure </h2> 
 
-<h3> <a name="2.1"> 2.1 </a> Assurance Officer </h3> 
+<h3 id="s2.1"> 2.1 Assurance Officer </h3> 
 
 <p>
 The Assurance Officer ("AO")
-manages this policy and reports to the board.
+manages this policy and reports to the CAcert Inc. Committee ("Board").
 </p>
 
 <p>
 The AO manages all OAs and is responsible for process,
-the CAcert Organisation Assurance Programme form ("COAP"),
+the CAcert Organisation Assurance Programme ("COAP") form,
 OA training and testing, manuals, quality control.
 In these responsibilities, other Officers will assist.
 </p>
+<p>
+The OA is appointed by the Board. 
+Where the OA is failing the Board decides.
+</p>
 
-<h3> <a name="2.2"> 2.2 </a> Organisation Assurers </h3> 
+<h3 id="s2.2"> 2.2 Organisation Assurers </h3> 
 
 <p>
 </p>
@@ -141,11 +142,30 @@ In these responsibilities, other Officers will assist.
            as supervised, trained and tested.
            </li>
     </ol>
+    </li>
+       <li>The OA can decide when a CAcert
+       (individual) Assurer
+       has done several OA Application Advises to appoint this
+       person to OA Assurer.
+       </li>
+
 </ol>
 
+<h3 id="s2.3"> 2.3 Organisation Assurance Advisor ("OAA") </h3>
+       <p>In countries/states/provinces where no OA Assurers are
+       operating for an OA Application (COAP) the OA
+       can be advised by an experienced local CAcert
+       (individual) Assurer to take the decision
+       to accept the OA Application (COAP) of the organisation.
+       </p>
+       <p>
+       The local Assurer must have at least 150 Points,
+       should know the language, and know
+       the organisation trade office registry culture and quality.
+       </p>
 
 
-<h3> <a name="2.3"> 2.3 </a> Organisation Administrator </h3> 
+<h3 id="s2.4"> 2.4 Organisation Administrator </h3> 
 
 <p>
 The Administrator within each Organisation ("O-Admin")
@@ -175,9 +195,9 @@ and the issuing of certificates.
 </ol>
 
 
-<h2> <a name="3"> 3. </a> Policies </h2> 
+<h2 id="s3"> 3. Policies </h2> 
 
-<h3> <a name="3.1"> 3.1 </a> Policy </h3> 
+<h3 id="s3.1"> 3.1 Policy </h3> 
 
 <p>
 There is one policy being this present document,
@@ -191,7 +211,7 @@ and several subsidiary policies.
   <li>  Organisations are assured under an appropriate subsidiary policy. </li>
 </ol>
 
-<h3> <a name="3.2"> 3.2 </a> Subsidiary Policies </h3>
+<h3 id="s3.2"> 3.2 Subsidiary Policies </h3>
 
 <p>
 The nature of the Subsidiary Policies ("SubPols"):
@@ -210,7 +230,7 @@ The nature of the Subsidiary Policies ("SubPols"):
   </li><li>
     For OAs,
     SubPol specifies the <i>tests of local knowledge</i>
-    including the local organisational forms.
+    including the local organisation assurance COAP forms.
   </li><li>
     For assurances,
     SubPol specifies the <i>local documentation forms</i>
@@ -221,7 +241,7 @@ The nature of the Subsidiary Policies ("SubPols"):
    policy approval process.
 </li></ol>
 
-<h3> <a name="">  </a> 3.3  Freedom to Assemble </h3>
+<h3 id="s3.3"> 3.3  Freedom to Assemble </h3>
 
 <p>
 Subsidiary Policies are open, accessible and free to enter. 
@@ -254,9 +274,9 @@ Subsidiary Policies are open, accessible and free to enter.
 </li></ol>
 
 
-<h2> <a name="4"> 4. </a>  Process </h2>
+<h2 id="s4"> 4.  Process </h2>
 
-<h3> <a name="4.1"> 4.1 </a>  Standard of Organisation Assurance </h3>
+<h3 id="s4.1"> 4.1  Standard of Organisation Assurance </h3>
 <p>
 The essential standard of Organisation Assurance is:
 </p>
@@ -276,7 +296,7 @@ The essential standard of Organisation Assurance is:
     requestor can sign on behalf of the organisation.
   </li><li>
     the organisation has agreed to the terms of the
-    Registered User Agreement,
+    CAcert Community Agreement
     and is therefore subject to Arbitration.
 </li></ol>
 
@@ -285,7 +305,7 @@ The essential standard of Organisation Assurance is:
     are stated in the SubPol.
 </p>
 
-<h3> <a name="4.2"> 4.2 </a>  COAP </h3>
+<h3 id="s4.2"> 4.2  COAP </h3>
 <p>
 The COAP form documents the checks and the resultant
 assurance results to meet the standard.
@@ -302,12 +322,13 @@ Additional information to be provided on form:
       <li>additional contact information (as required by SubPol).</li>
     </ol>
   </li><li>
-    administrator account names (1 or more)
+    administrator account name(s) (1 or more)
   </li><li>
     domain name(s)
   </li><li>
-    Agreement with registered user agreement.
-    Statement and initials box for organsation
+    Agreement with
+    CAcert Community Agreement.
+    Statement and initials box for organisation
     and also for OA.
   </li><li>
     Date of completion of Assurance.
@@ -322,17 +343,17 @@ and indication provided that the English is the
 ruling language (due to Arbitration requirements).
 </p>
 
-<h3> <a name="4.3"> 4.3 </a> Jurisdiction </h3>
+<h3 id="s4.3"> 4.3 Jurisdiction </h3>
 
 <p>
 Organisation Assurances are carried out by
-CAcert Inc under its Arbitration jurisdiction.
+CAcert Inc. under its Arbitration jurisdiction.
 Actions carried out by OAs are under this regime.
 </p>
 
 <ol type="a"><li>
     The organisation has agreed to the terms of the
-    Registered User Agreement,
+    CAcert Community Agreement.
   </li><li>
     The organisation, the Organisation Assurers, CAcert and
     other related parties are bound into CAcert's jurisdiction
@@ -340,12 +361,13 @@ Actions carried out by OAs are under this regime.
   </li><li>
     The OA is responsible for ensuring that the
     organisation reads, understands, intends and
-    agrees to the registered user agreement.
+    agrees to the
+    CAcert Community Agreement.
     This OA responsibility should be recorded on COAP
     (statement and initials box).
 </li></ol>
 
-<h2> <a name="5"> 5. </a> Exceptions </h2>
+<h2 id="s5"> 5. Exceptions </h2>
 
 
 <ol type="a"><li>
@@ -375,5 +397,6 @@ Actions carried out by OAs are under this regime.
     E.g., registration as DBA or holding of registered trade mark.
     This means that the anglo law tradition of unregistered DBAs
     is not accepted without further proof.
-</li></ol>
-
+  </li></ol>
+</body>
+</html>
index 9fdd85c..c97e429 100644 (file)
@@ -651,3 +651,7 @@ div.footerbar {
   padding: 10px 10px 10px 10px;
 }
 
+/************ Honeypot  ***********/
+
+.robotic { display: none; }
+
index c6c0568..9e41891 100644 (file)
@@ -87,28 +87,28 @@ function send_reminder()
 {
        $body = "";
        $my_translation = L10n::get_translation();
-       
+
        $_SESSION['_config']['reminder-lang'] = $_POST['reminder-lang'];
-       
+
        $reminder_translations[] = $_POST['reminder-lang'];
        if ( !in_array("en", $reminder_translations, $strict=true) ) {
                $reminder_translations[] = "en";
        }
-       
+
        foreach ($reminder_translations as $translation) {
                L10n::set_translation($translation);
-               
+
                $body .= L10n::$translations[$translation].":\n\n";
                $body .= sprintf(_("This is a short reminder that you filled out forms to become trusted with CAcert.org, and %s has attempted to issue you points. Please create your account at %s as soon as possible and then notify %s so that the points can be issued."), $_SESSION['profile']['fname']." (".$_SESSION['profile']['email'].")", "http://www.cacert.org", $_SESSION['profile']['fname'])."\n\n";
                $body .= _("Best regards")."\n";
                $body .= _("CAcert Support Team")."\n\n";
        }
-       
+
        L10n::set_translation($reminder_translations[0]); // for the subject
        sendmail($_POST['email'], "[CAcert.org] "._("Reminder Notice"), $body, $_SESSION['profile']['email'], "", "", $_SESSION['profile']['fname']);
-       
+
        L10n::set_translation($my_translation);
-       
+
        $_SESSION['_config']['remindersent'] = 1;
        $_SESSION['_config']['error'] = _("A reminder notice has been sent.");
 }
@@ -122,13 +122,13 @@ function send_reminder()
        if(array_key_exists('location',$_POST) && $_POST['location'] != "")
                $_SESSION['_config']['location'] = $_POST['location'];
 
-       $oldid=array_key_exists('oldid',$_REQUEST)?intval($_REQUEST['oldid']):0;        
+       $oldid=array_key_exists('oldid',$_REQUEST)?intval($_REQUEST['oldid']):0;
 
        if($oldid == 12)
                $id = $oldid;
 
        if(($id == 5 || $oldid == 5 || $id == 6 || $oldid == 6))
-               if (!is_assurer($_SESSION['profile']['id'])) 
+               if (!is_assurer($_SESSION['profile']['id']))
                        {
                                show_page ("Exit","",get_assurer_reason($_SESSION['profile']['id']));
                                exit;
@@ -155,7 +155,7 @@ function send_reminder()
                        $_SESSION['_config']['noemailfound'] = 1;
                        show_page("EnterEmail","",_("I'm sorry, there was no email matching what you entered in the system. Please double check your information."));
                        exit;
-               } else 
+               } else
                {
                        $_SESSION['_config']['noemailfound'] = 0;
                        $_SESSION['_config']['notarise'] = mysql_fetch_assoc($res);
@@ -165,6 +165,14 @@ function send_reminder()
                                exit;
                        }
                }
+               $query = "select * from `users` where `email`='".mysql_escape_string(stripslashes($_POST['email']))."' and `locked`=1";
+               $res = mysql_query($query);
+               if(mysql_num_rows($res) >= 1)
+               {
+                       $_SESSION['_config']['noemailfound'] = 0;
+                       show_page("EnterEmail","",_("This account is locked and can not be assured. For more information ask support@cacert.org."));
+                       exit;
+               }
        }
 
        if($oldid == 5 || $oldid == 6)
@@ -247,7 +255,7 @@ $iecho= "c";
                        $newpoints = $awarded = $max;
                if($newpoints < 0)
                        $newpoints = $awarded = 0;
-               
+
                $query = "select sum(`points`) as `total` from `notary` where `to`='".$_SESSION['_config']['notarise']['id']."' group by `to`";
                $res = mysql_query($query);
                $drow = mysql_fetch_assoc($res);
@@ -260,13 +268,13 @@ $iecho= "c";
                        $newpoints = $max - $drow['total'];
                if($newpoints < 0)
                        $newpoints = 0;
-               
+
                if(mysql_escape_string(stripslashes($_POST['date'])) == "")
                        $_POST['date'] = date("Y-m-d H:i:s");
 
                $query = "select * from `notary` where `from`='".$_SESSION['profile']['id']."' AND
                                                `to`='".$_SESSION['_config']['notarise']['id']."' AND
-                                               `awarded`='$awarded' AND 
+                                               `awarded`='$awarded' AND
                                                `location`='".mysql_escape_string(stripslashes($_POST['location']))."' AND
                                                `date`='".mysql_escape_string(stripslashes($_POST['date']))."'";
                $res = mysql_query($query);
@@ -293,11 +301,11 @@ $iecho= "c";
                } else if($_SESSION['profile']['board'] == 1) {
                        $query .= ",\n`method`='".mysql_escape_string(stripslashes($_POST['method']))."'";
                } else if($_SESSION['profile']['ttpadmin'] == 1 && ($_POST['method'] == 'Trusted 3rd Parties' || $_POST['method'] == 'Trusted Third Parties')) {
-                       $query .= ",\n`method`='Trusted Third Parties'";
+                       $query .= ",\n`method`='TTP-Assisted'";
                }
                mysql_query($query);
                fix_assurer_flag($_SESSION['_config']['notarise']['id']);
-               
+
                if($_SESSION['profile']['points'] < 150)
                {
                        $addpoints = 0;
@@ -319,7 +327,7 @@ $iecho= "c";
 
                $my_translation = L10n::get_translation();
                L10n::set_translation($_SESSION['_config']['notarise']['language']);
-               
+
                $body  = sprintf(_("You are receiving this email because you have been assured by %s %s (%s)."), $_SESSION['profile']['fname'], $_SESSION['profile']['lname'], $_SESSION['profile']['email'])."\n\n";
                if($_POST['points'] != $newpoints)
                        $body .= sprintf(_("You were issued %s points however the system has rounded this down to %s and you now have %s points in total."), $_POST['points'], $newpoints, ($newpoints + $drow['total']))."\n\n";
@@ -448,10 +456,10 @@ $iecho= "c";
                        {
                                $my_translation = L10n::get_translation();
                                L10n::set_translation($user['language']);
-                               
+
                                $subject = "[CAcert.org] ".sprintf(_("Message from %s"),
                                                $_SESSION['profile']['fname']);
-                               
+
                                $body  = sprintf(_("Hi %s,"), $user['fname'])."\n\n";
                                $body .= sprintf(_("%s %s has sent you a message via the ".
                                                "contact an Assurer form on CAcert.org."),
@@ -467,16 +475,16 @@ $iecho= "c";
                                                "abused, please write to support@cacert.org")."\n\n";
                                $body .= _("Best regards")."\n";
                                $body .= _("Your CAcert Community");
-                               
+
                                sendmail($user['email'], $subject, $body,
                                                $_SESSION['profile']['email'], //from
                                                "", //replyto
                                                "", //toname
                                                $_SESSION['profile']['fname']." ".
                                                        $_SESSION['profile']['lname']); //fromname
-                               
+
                                L10n::set_translation($my_translation);
-                               
+
                                showheader(_("My CAcert.org Account!"));?>
                                <p>
                                        <? printf(_("Your email has been sent to %s."), $user['fname']); ?>
@@ -489,10 +497,10 @@ $iecho= "c";
                                show_page(0,"",_("Sorry, I was unable to locate that user."));
                                exit;
                        }
-               
+
                }
-       } 
-       if($oldid == 9) 
+       }
+       if($oldid == 9)
        {
                $oldid=0;
                $id = 9;