Merge branch 'bug-1459' into release (Emergency bugfix)
[cacert-devel.git] / scripts / send_policy_cca_20140916.php
1 #!/usr/bin/php -q
2 <?php
3 /*
4 LibreSSL - CAcert web application
5 Copyright (C) 2004-2009 CAcert Inc.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; version 2 of the License.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20 include_once("../includes/mysql.php");
21
22 // read texts
23
24 $lines_EN = <<<EOF
25
26 We want to inform you about some recent policy changes within CAcert.
27
28 On 2014-07-28, CAcert's policy group voted to accept a new version of the CAcert Community Agreement (short: CCA) into DRAFT status. This makes it a binding policy from that date.
29
30 The CCA is the core document that an user has to accept to become and to remain a member of the CAcert community. The previous CCA version has been in place for about five years, the policy group saw some need to update it and to improve and clarify some topics.
31
32 You can find the current version of the CCA at:
33 http://www.cacert.org/policy/CAcertCommunityAgreement.php
34
35 The changes are currently highlighted in blue. You can find a summary of the major changes, at the end of this mail.
36
37 Currently the changes are in DRAFT status, which makes them binding, but also gives some room to address them. We plan to change the status to POLICY on about 2014-10-15.
38
39 If you do not accept the CCA changes, please send an email to support@cacert.org no later than 2014-10-15 to request termination of your CAcert membership. Terminating your membership will cause the revocation of all your certificates, disabling your login to the CAcert web interface and the anonymisation of your personal data.
40
41 If you accept the CCA changes, no action is needed.
42
43 Moreover, we want to inform you about a software change that is planned to be installed, soon. When it is installed, the CAcert website will check, if the user has already accepted the CCA at each login. If this is not the case, the user will be presented with the option to either accept the CCA or to leave the page.
44
45 By doing this we will ensure that only users who have accepted the CCA, and by this may be called members of CAcert community will be able to login and issue new certificates. This change will only affect users who have neither issued a new certificate nor participated in assurances for some while.
46
47 The reason for this change is that every member who has agreed to the CCA, should be able to rely on the fact that all other users of CAcert have also agreed to it. For historic reasons this is not always the case, yet.
48
49 Last but not least, the following policies were set to POLICY status on 2014-08-14. They have all been in DRAFT status without any further changes for at least a year:
50
51 * Policy on Policy ("PoP" => COD1)
52 * Configuration-Control Specification ("CCS" => COD2)
53 * Certification Practice Statement ("CPS" => COD6)
54 * Dispute Resolution Policy ("DRP" => COD7)
55 * Security Policy ("SP" => COD8)
56 * Organisation Assurance Policy ("OAP" => COD11)
57 * Root Distribution License ("RDL" => COD14)
58 * Organisation Assurance Subsidary Policy - Germany (COD11.DE)
59 * Organisation Assurance Subsidary Policy - Europe (COD11.EU)
60 * Organisation Assurance Subsidary Policy - Australia (COD11.AU)
61 * TTP-Assisted Assurance Policy ("TTP-Assist" => COD13.2)
62
63 We are working hard to update all the documents so that they show their policy status. As the content has not been changed and will remain the same, we decided to inform you about this even though we have not finished, yet.
64
65 You can find the above polices at:
66 https://svn.cacert.org/CAcert/Policies/ControlledDocumentList.html
67
68 As most of those polices have not been reviewed for a while, you probably will see some more updates to CAcert policies coming soon. Those changes will be an important step to be able to pass an audit, which is one of our current goals.
69
70 Every CAcert member interested in participating in the design of our policies, is invited to join our policy group mailing list at:
71 https://lists.cacert.org/wws/info/cacert-policy
72
73 Major changes for the CCA:
74 * The CCA was changed to clearly be a general terms and conditions what makes it easier to join and exit as CAcert member. For CAcert it was obvious to do the change, because all CAcert members sign the same conditions without the possibility to strike or add personal clauses.
75 * More ways to accept the CCA were added.
76 * Termination of membership was clarified some more. Some other options beside the ruling of an Arbitrator were cautiously added.
77 * You have a new obligation to answer in arbitration cases. This seems to be obvious, but you never signed it before. In the past this was derived from some points within our Dispute Resolution Policy (DRP).
78 * Sharing of accounts and credentials was banned more clearly. Also the obligation to only use a certificate in the appropriate contexts was added. It was already part of the Certification Practice Statement (CPS).
79 * Some kinds of contributions as personal data are now excepted from the non-exclusive non-restrictive non-revocable transfer of licence to CAcert.
80 * Official communication with CAcert was simplified.
81 * Some deprecated references were removed.
82
83 A version with all changes can be found at:
84 https://svn.cacert.org/CAcert/Policies/CAcertCommunityAgreement_20140708.html
85
86 Sincerely,
87 Eva Stöwe
88 CAcert Policy Officer
89 EOF;
90
91 $lines_EN = wordwrap($lines_EN, 75, "\n");
92 $lines_EN = mb_convert_encoding($lines_EN, "HTML-ENTITIES", "UTF-8");
93
94
95 // read last used id
96 $lastid = 0;
97 if (file_exists("send_policy_cca20140915_lastid.txt"))
98 {
99 $fp = fopen("send_policy_cca20140915_lastid.txt", "r");
100 $lastid = trim(fgets($fp, 4096));
101 fclose($fp);
102 }
103
104 echo "ID now: $lastid\n";
105
106
107 $count = 0;
108
109 $query = "
110
111 SELECT `id`, `fname`, `lname`, `email`
112 FROM `users`
113 WHERE `deleted` = '0000-00-00 00:00:00'
114 AND `modified` != '0000-00-00 00:00:00'
115 AND `verified` = '1'
116 AND `id` >= '$lastid'
117 ORDER BY `id`";
118
119 $res = mysql_query($query);
120
121 while($row = mysql_fetch_assoc($res))
122 {
123 $mailtxt = "Dear ${row["fname"]} ${row["lname"]},\n".$lines_EN."\n\n";
124
125 sendmail($row['email'], "[CAcert.org] CAcert Community Agreement (CCA)", $mailtxt, "support@cacert.org", "", "", "CAcert", "returns@cacert.org", "");
126
127 $fp = fopen("send_policy_cca20140915_lastid.txt", "w");
128 fputs($fp, $row["id"]."\n");
129 fclose($fp);
130
131 $count++;
132 echo "Sent ${count}th mail. User ID: ${row["id"]}\n";
133
134 if(0 == $count % 5) {
135 sleep (1);
136 }
137 }