Browse Source

GDPR: draft submitted to counsel

biotorrents 4 years ago
parent
commit
b9eaa7696d

+ 39
- 29
classes/cookie.class.php View File

1
 <?php
1
 <?php
2
+declare(strict_types=1);
2
 
3
 
3
-/*************************************************************************|
4
-|--------------- Cookie class --------------------------------------------|
5
-|*************************************************************************|
4
+/**
5
+ * Cookie
6
+ *
7
+ * This class handles cookies.
8
+ * $Cookie->get() is user-provided and untrustworthy.
9
+ */
6
 
10
 
7
-This class handles cookies.
8
-
9
-$Cookie->get(); is user provided and untrustworthy
10
-
11
-|*************************************************************************/
12
-
13
-/*
14
-interface COOKIE_INTERFACE {
15
-  public function get($Key);
16
-  public function set($Key, $Value, $Seconds, $LimitAccess);
17
-  public function del($Key);
18
-
19
-  public function flush();
20
-}
21
-*/
22
-
23
-class COOKIE /*implements COOKIE_INTERFACE*/
11
+class COOKIE
24
 {
12
 {
25
-    const LIMIT_ACCESS = true; // If true, blocks JS cookie API access by default (can be overridden case by case)
26
-    const PREFIX = ''; // In some cases you may desire to prefix your cookies
13
+    # In some cases you may desire to prefix your cookies
14
+    const PREFIX = '';
27
 
15
 
28
     public function get($Key)
16
     public function get($Key)
29
     {
17
     {
30
-        if (!isset($_COOKIE[SELF::PREFIX.$Key])) {
31
-            return false;
32
-        }
33
-        return $_COOKIE[SELF::PREFIX.$Key];
18
+        return (!isset($_COOKIE[SELF::PREFIX.$Key]))
19
+            ? false
20
+            : $_COOKIE[SELF::PREFIX.$Key];
34
     }
21
     }
35
 
22
 
36
     // Pass the 4th optional param as false to allow JS access to the cookie
23
     // Pass the 4th optional param as false to allow JS access to the cookie
37
-    public function set($Key, $Value, $Seconds = 86400, $LimitAccess = SELF::LIMIT_ACCESS)
24
+    public function set($Key, $Value, $Seconds = 86400)
38
     {
25
     {
39
-        setcookie(SELF::PREFIX.$Key, $Value, time() + $Seconds, '/', SITE_DOMAIN, $_SERVER['SERVER_PORT'] === '443', $LimitAccess, false);
26
+        $ENV = ENV::go();
27
+
28
+        setcookie(
29
+            SELF::PREFIX.$Key,
30
+            $Value,
31
+            [
32
+                'expires' => time() + $Seconds,
33
+                'path' => '/',
34
+                'domain' => $ENV->SITE_DOMAIN,
35
+                'secure' => true,
36
+                'httponly' => true,
37
+                'samesite' => 'Strict',
38
+            ]
39
+        );
40
     }
40
     }
41
 
41
 
42
     public function del($Key)
42
     public function del($Key)
43
     {
43
     {
44
-        setcookie(SELF::PREFIX.$Key, '', time() - 24 * 3600); //3600 vs 1 second to account for potential clock desyncs
44
+        # 3600s vs. 1s for potential clock desyncs
45
+        setcookie(
46
+            SELF::PREFIX.$Key,
47
+            '',
48
+            [
49
+                'expires' => time() - 24 * 3600,
50
+                'secure' => true,
51
+                'httponly' => true,
52
+                'samesite' => 'Strict',
53
+            ]
54
+        );
45
     }
55
     }
46
 
56
 
47
     public function flush()
57
     public function flush()

+ 10
- 2
sections/donate/donate.php View File

50
     <ul>
50
     <ul>
51
       <li>
51
       <li>
52
         <strong>Server.</strong>
52
         <strong>Server.</strong>
53
-        We currently use one budget VPS at 2.50€ per month, and can add more as needed.
53
+        We use one budget VPS at 2.50€ per month and may add more as needed.
54
+        Please consider using our
55
+        <a href="https://hetzner.cloud/?ref=mzIDQWTHipNB" target="_blank">affiliate link</a>.
56
+        You'd receive 20€ credit, effectively paying your server for 8 months.
57
+        BioTorrents would receive 10€ credit after a year, paying our server for 4 months.
54
       </li>
58
       </li>
55
 
59
 
56
       <li>
60
       <li>
70
       <li>
74
       <li>
71
         <strong>Company.</strong>
75
         <strong>Company.</strong>
72
         Omics Tools LLC is <?= $ENV->SITE_NAME ?>'s parent company.
76
         Omics Tools LLC is <?= $ENV->SITE_NAME ?>'s parent company.
73
-        It's $50 per year in filing fees and $125 for resident agent services.
77
+        It's $50 per year for annual reports and $125 for resident agent services.
78
+        Also, DMCA agent registration is $6.
74
       </li>
79
       </li>
75
     </ul>
80
     </ul>
76
   </div>
81
   </div>
126
       including <strong>Bitcoin</strong> and other cryptocurrencies:
131
       including <strong>Bitcoin</strong> and other cryptocurrencies:
127
       Monero, Litecoin, and Curecoin.
132
       Monero, Litecoin, and Curecoin.
128
       <strong>PayPal</strong> and <strong>USPS money orders</strong> are also options.
133
       <strong>PayPal</strong> and <strong>USPS money orders</strong> are also options.
134
+    </p>
135
+
136
+    <p>
129
       Please use
137
       Please use
130
       <a href="https://pgp.mit.edu/pks/lookup?op=get&search=0x760EBED7CFE266D7" target="_blank">GPG 760EBED7CFE266D7</a>
138
       <a href="https://pgp.mit.edu/pks/lookup?op=get&search=0x760EBED7CFE266D7" target="_blank">GPG 760EBED7CFE266D7</a>
131
       if you wish.
139
       if you wish.

+ 4
- 3
sections/legal/dmca.php View File

8
 
8
 
9
 <section class="tldr">
9
 <section class="tldr">
10
   <p>
10
   <p>
11
-    <em>If</em> you're a copyright owner or agent thereof,
12
-    <em>and</em> you believe that user-generated content (UGC) on the domain https://biotorrents.de infringes your
13
-    copyrights:
11
+    <em>If</em> you're a copyright owner or agent of one,
12
+    <em>and</em> you believe that user-generated content (UGC) on the domain
13
+    https://biotorrents.de infringes your copyrights:
14
     <em>then</em> you may notify our Digital Millennium Copyright Act (DMCA) agent in writing.
14
     <em>then</em> you may notify our Digital Millennium Copyright Act (DMCA) agent in writing.
15
   </p>
15
   </p>
16
 
16
 
135
     <a href="https://www.law.cornell.edu/uscode/text/17/512">17 USC 512(f)</a>,
135
     <a href="https://www.law.cornell.edu/uscode/text/17/512">17 USC 512(f)</a>,
136
     anyone who knowingly materially misrepresents infringement may be subject to liability.
136
     anyone who knowingly materially misrepresents infringement may be subject to liability.
137
     Also see
137
     Also see
138
+    <a href="https://www.law.cornell.edu/uscode/text/17/107">17 USC 107</a> and
138
     <a href="https://www.law.cornell.edu/uscode/text/17/108">17 USC 108</a>.
139
     <a href="https://www.law.cornell.edu/uscode/text/17/108">17 USC 108</a>.
139
   </p>
140
   </p>
140
 
141
 

+ 191
- 66
sections/legal/privacy.php View File

1
 <?php
1
 <?php
2
 declare(strict_types=1);
2
 declare(strict_types=1);
3
 
3
 
4
-View::show_header('Privacy');
5
-?>
4
+View::show_header('Privacy'); ?>
6
 
5
 
7
 <h2>Privacy Policy</h2>
6
 <h2>Privacy Policy</h2>
8
 
7
 
9
 <section class="tldr">
8
 <section class="tldr">
10
-  <p>
11
-    At BioTorrents.de, accessible from https://biotorrents.de, one of our main priorities is the privacy of our
12
-    visitors.
13
-    This Privacy Policy document contains types of information that is collected and recorded by BioTorrents.de and how
14
-    we use it.
15
-  </p>
16
 
9
 
17
   <p>
10
   <p>
18
-    If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact
19
-    us.
11
+    This policy explains how Omics Tools LLC handles the personal data we collect from you when you use our website.
12
+    You grant consent on account registration by checking the box that reads,
13
+    "I consent to the privacy policy and may revoke my consent at any time."
20
   </p>
14
   </p>
21
 
15
 
22
 
16
 
23
-  <h3>General Data Protection Regulation (GDPR)</h3>
17
+  <h3>
18
+    Data collection: what and how
19
+  </h3>
20
+
21
+  <p>
22
+    We collect usernames, email addresses, GPG keys,
23
+    passphrases, API keys, site activity and preferences,
24
+    IP addresses, and server error logs.
25
+  </p>
24
 
26
 
25
   <p>
27
   <p>
26
-    We are a Data Controller of your information.
28
+    We don't collect access logs or compile personal data for any commercial reason.
29
+    Also, we explicitly deny all known browser features, including not limited:
30
+    camera, microphone, sensors, wake-lock, USB, encrypted media, autoplay, etc.
27
   </p>
31
   </p>
28
 
32
 
29
   <p>
33
   <p>
30
-    BioTorrents.de's legal basis for collecting and using the personal information described in this Privacy Policy
31
-    depends on the Personal Information we collect and the specific context in which we collect the information:
34
+    You directly provide us with most of the data we collect.
35
+    We collect and process your personal data when you
32
   </p>
36
   </p>
33
 
37
 
34
   <ul>
38
   <ul>
35
-    <li>BioTorrents.de needs to perform a contract with you</li>
36
-    <li>You have given BioTorrents.de permission to do so</li>
37
-    <li>Processing your personal information is in BioTorrents.de's legitimate interests</li>
38
-    <li>BioTorrents.de needs to comply with the law</li>
39
+    <li>
40
+      register online for our services,
41
+    </li>
42
+
43
+    <li>
44
+      query the tracker for BitTorrent peers,
45
+    </li>
46
+
47
+    <li>
48
+      participate in our forums and chat rooms, and
49
+    </li>
50
+
51
+    <li>
52
+      use our website with cookies or API keys.
53
+    </li>
39
   </ul>
54
   </ul>
55
+  <br />
56
+
57
+
58
+  <h3>
59
+    Data use and storage
60
+  </h3>
40
 
61
 
41
   <p>
62
   <p>
42
-    BioTorrents.de will retain your personal information only for as long as is necessary for the purposes set out in
43
-    this Privacy Policy.
44
-    We will retain and use your information to the extent necessary to comply with our legal obligations, resolve
45
-    disputes, and enforce our policies.
63
+    We only use your data to manage your account and administer the site.
64
+    We never sell or otherwise provide data to third parties, except under subpoena.
46
   </p>
65
   </p>
47
 
66
 
48
   <p>
67
   <p>
49
-    If you are a resident of the European Economic Area (EEA), you have certain data protection rights.
50
-    If you wish to be informed what Personal Information we hold about you and if you want it to be removed from our
51
-    systems, please contact us.
68
+    All data read, written, or deleted under this policy will only be managed by SQL queries,
69
+    and any data returned will only be provided as database dumps.
52
   </p>
70
   </p>
53
 
71
 
54
   <p>
72
   <p>
55
-    In certain circumstances, you have the following data protection rights:
73
+    We securely store your data in our hardened MariaDB instance.
74
+    Only Unix socket connections are allowed, and certain services like IRC are denied.
75
+    Database tools aren't accessible on the public internet.
56
   </p>
76
   </p>
57
 
77
 
58
-  <ul>
59
-    <li>The right to access, update or to delete the information we have on you</li>
60
-    <li>The right of rectification</li>
61
-    <li>The right to object</li>
62
-    <li>The right of restriction</li>
63
-    <li>The right to data portability</li>
64
-    <li>The right to withdraw consent</li>
65
-  </ul><br />
78
+  <p>
79
+    Email and IP addresses, and private messages between users,
80
+    are encrypted and then decrypted in memory.
81
+    Certain data is hashed before storage and therefore unrecoverable,
82
+    including passphrases and API keys.
83
+    Please don't request ciphertext.
84
+  </p>
85
+
86
+  <p>
87
+    We'll keep your data for your account's lifetime.
88
+    Once this period expires, we'll delete your data by written request.
89
+  </p>
90
+
91
+
92
+  <h3>
93
+    GDPR data protection rights
94
+  </h3>
66
 
95
 
96
+  <p>
97
+    We'd like to make sure you're fully aware of your data protection rights.
98
+    Every user is entitled to GDPR protections regardless of their jurisdiction:
99
+  </p>
67
 
100
 
68
-  <h3>Log Files</h3>
101
+  <ul class="p">
102
+    <li>
103
+      <strong>Access.</strong>
104
+      You have the right to request copies of your personal data.
105
+      We may charge a small fee for this service.
106
+    </li>
107
+
108
+    <li>
109
+      <strong>Rectification.</strong>
110
+      You have the right to request that we correct what you believe is inaccurate,
111
+      and to request that we complete what you believe is not.
112
+    </li>
113
+
114
+    <li>
115
+      <strong>Erasure.</strong>
116
+      You have the right to request that we erase your personal data, under certain conditions.
117
+    </li>
118
+
119
+    <li>
120
+      <strong>Restrict Processing.</strong>
121
+      You have the right to request that we restrict processing your personal data,
122
+      under certain conditions.
123
+    </li>
124
+
125
+    <li>
126
+      <strong>Object to Processing.</strong>
127
+      You have the right to object to our processing your personal data, under certain conditions.
128
+    </li>
129
+
130
+    <li>
131
+      <strong>Data Portability.</strong>
132
+      You have the right to request that we transfer data we've collected to you or others,
133
+      under certain conditions.
134
+    </li>
135
+  </ul>
69
 
136
 
70
   <p>
137
   <p>
71
-    BioTorrents.de only logs server errors.
72
-    The information collected by log files include internet protocol (IP) addresses, browser type, date and time stamp,
73
-    and referring/exit pages.
74
-    These are not linked to any information that is personally identifiable.
75
-    The purpose of the information is for administering the site.
138
+    If you make a request, we have one month to respond.
139
+    Please contact us if you'd like to exercise any of these rights.
76
   </p>
140
   </p>
77
 
141
 
78
 
142
 
79
-  <h3>Cookies and Web Beacons</h3>
143
+  <h3>
144
+    Cookies: what and how
145
+  </h3>
146
+
147
+  <p>
148
+    Cookies are text files placed on your computer to store functional information.
149
+    When you log into our website, we save cookies to your browser's local storage.
150
+  </p>
151
+
152
+  <p>
153
+    We strongly encourage you to use an updated browser with sandboxed tabs,
154
+    and to set your browser to deny disk permissions and to wipe transient data on shutdown.
155
+  </p>
80
 
156
 
81
   <p>
157
   <p>
82
-    Like any other website, BioTorrents.de uses "cookies."
83
-    These cookies are used to store information including visitors' preferences, and the pages on the website that the
84
-    visitor accessed or visited.
85
-    The information is used to optimize the users' experience by customizing our web page content based on visitors'
86
-    browser type and/or other information.
158
+    We use cookies to keep you signed in.
159
+    Our secure session cookie parameters include
87
   </p>
160
   </p>
88
 
161
 
162
+  <ul>
163
+    <li>
164
+      one-day expiry time,
165
+    </li>
166
+
167
+    <li>
168
+      scoped to https://biotorrents.de,
169
+    </li>
170
+
171
+    <li>
172
+      TLS 1.2+ transmission only,
173
+    </li>
89
 
174
 
90
-  <h3>Third Party Privacy Policies</h3>
175
+    <li>
176
+      unavailable to JavaScript APIs, and
177
+    </li>
178
+
179
+    <li>
180
+      strict same-origin policy.
181
+    </li>
182
+  </ul>
91
 
183
 
92
   <p>
184
   <p>
93
-    BioTorrents.de's Privacy Policy does not apply to other advertisers or websites.
94
-    Thus, we are advising you to consult the respective Privacy Policies of these third-party ad servers for more
95
-    detailed information.
96
-    It may include their practices and instructions about how to opt-out of certain options.
185
+    You can set your browser to deny cookies
186
+    but our website won't function as intended.
97
   </p>
187
   </p>
98
 
188
 
189
+
190
+  <h3>
191
+    Other websites' policies
192
+  </h3>
193
+
99
   <p>
194
   <p>
100
-    You can choose to disable cookies through your individual browser options.
101
-    To know more detailed information about cookie management with specific web browsers, it can be found at the
102
-    browsers' respective websites.
195
+    BioTorrents.de links to other websites.
196
+    Our privacy policy only applies to our website.
197
+    If you click an external link, please read their privacy policy.
103
   </p>
198
   </p>
104
 
199
 
105
 
200
 
106
-  <h3>Children's Information</h3>
201
+  <h3>
202
+    Changes to our policy
203
+  </h3>
107
 
204
 
108
   <p>
205
   <p>
109
-    Another part of our priority is adding protection for children while using the internet.
110
-    We encourage parents and guardians to observe, participate in, and/or monitor and guide their online activity.
206
+    We regularly review our policy and publish updates here.
207
+    Updates will usually describe new security developments.
208
+    We last updated this policy on 2021-02-11.
111
   </p>
209
   </p>
112
 
210
 
211
+
212
+  <h3>
213
+    How to contact us
214
+  </h3>
215
+
113
   <p>
216
   <p>
114
-    BioTorrents.de does not knowingly collect any Personal Identifiable Information from children under the age of 13.
115
-    If you think that your child provided this kind of information on our website, we strongly encourage you to contact
116
-    us immediately and we will do our best efforts to promptly remove such information from our records.
217
+    If you have any questions about our policy,
218
+    the data we hold on you,
219
+    or you'd like to exercise one of your data protection rights,
220
+    please don't hesitate to contact us.
117
   </p>
221
   </p>
118
 
222
 
223
+  <p>
224
+    <strong>
225
+      Address
226
+    </strong>
227
+    <br />
228
+
229
+    Data Protection Officer<br />
230
+    Omics Tools LLC<br />
231
+    30 N Gould St Ste 4000<br />
232
+    Sheridan, WY 82801
233
+  </p>
119
 
234
 
120
-  <h3>Online Privacy Policy Only</h3>
235
+  <p>
236
+    <strong>
237
+      Email
238
+    </strong>
239
+    <br />
240
+    gdpr at biotorrents dot de
241
+  </p>
121
 
242
 
122
   <p>
243
   <p>
123
-    Our Privacy Policy applies only to our online activities and is valid for visitors to our website with regards to
124
-    the information that they shared and/or collect in BioTorrents.de.
125
-    This policy is not applicable to any information collected offline or via channels other than this website.
244
+    Please use
245
+    <a href="https://pgp.mit.edu/pks/lookup?op=get&search=0x760EBED7CFE266D7" target="_blank">GPG 760EBED7CFE266D7</a>
246
+    if you wish.
126
   </p>
247
   </p>
127
 
248
 
128
 
249
 
129
-  <h3>Consent</h3>
250
+  <h3>
251
+    How to contact the appropriate authority
252
+  </h3>
130
 
253
 
131
   <p>
254
   <p>
132
-    By using our website, you hereby consent to our Privacy Policy and agree to its terms.
255
+    Should you wish to report a complaint,
256
+    or if you feel that we haven't satisfactorily addressed your concerns,
257
+    contact the Information Commissioner's Office.
133
   </p>
258
   </p>
134
 </section>
259
 </section>
135
 
260
 

+ 21
- 27
sections/register/index.php View File

7
 
7
 
8
 /*
8
 /*
9
 if (isset($LoggedUser)) {
9
 if (isset($LoggedUser)) {
10
-
11
-  // Silly user, what are you doing here!
12
-  header('Location: index.php');
13
-  error();
10
+    // Silly user, what are you doing here!
11
+    header('Location: index.php');
12
+    error();
14
 }
13
 }
15
 */
14
 */
16
 
15
 
35
         include('step2.php');
34
         include('step2.php');
36
     }
35
     }
37
 } elseif ($ENV->OPEN_REGISTRATION || !empty($_REQUEST['invite'])) {
36
 } elseif ($ENV->OPEN_REGISTRATION || !empty($_REQUEST['invite'])) {
38
-    $Val->SetFields('username', true, 'regex', 'You did not enter a valid username.', array('regex' => USERNAME_REGEX));
39
-    $Val->SetFields('email', true, 'email', 'You did not enter a valid email address.');
40
-    $Val->SetFields('password', true, 'regex', 'Your password must be at least 6 characters long.', array('regex'=>'/(?=^.{6,}$).*$/'));
41
-    $Val->SetFields('confirm_password', true, 'compare', 'Your passwords do not match.', array('comparefield' => 'password'));
42
-    $Val->SetFields('readrules', true, 'checkbox', 'You did not select the box that says you will read the rules.');
43
-    $Val->SetFields('readwiki', true, 'checkbox', 'You did not select the box that says you will read the wiki.');
44
-    $Val->SetFields('agereq', true, 'checkbox', 'You did not select the box that says you are 18 years of age or older.');
45
-    //$Val->SetFields('captcha', true, 'string', 'You did not enter a captcha code.', array('minlength' => 6, 'maxlength' => 6));
37
+    $Val->SetFields('username', true, 'regex', "You didn't enter a valid username.", array('regex' => USERNAME_REGEX));
38
+    $Val->SetFields('email', true, 'email', "You didn't enter a valid email address.");
39
+    $Val->SetFields('password', true, 'regex', "Your password was too short.", array('regex'=>'/(?=^.{6,}$).*$/'));
40
+    $Val->SetFields('confirm_password', true, 'compare', "Your passwords don't match.", array('comparefield' => 'password'));
41
+    $Val->SetFields('readrules', true, 'checkbox', "You didn't agree to read the rules and wiki.");
42
+    $Val->SetFields('readwiki', true, 'checkbox', "You didn't provide consent to the privacy policy.");
43
+    $Val->SetFields('agereq', true, 'checkbox', "You didn't confirm that you're of legal age.");
46
 
44
 
47
     if (!apcu_exists('DBKEY')) {
45
     if (!apcu_exists('DBKEY')) {
48
         $Err = "Registration temporarily disabled due to degraded database access (security measure).";
46
         $Err = "Registration temporarily disabled due to degraded database access (security measure).";
51
     if (!empty($_POST['submit'])) {
49
     if (!empty($_POST['submit'])) {
52
         // User has submitted registration form
50
         // User has submitted registration form
53
         $Err = $Val->ValidateForm($_REQUEST);
51
         $Err = $Val->ValidateForm($_REQUEST);
54
-        /*
55
-        if (!$Err && strtolower($_SESSION['captcha']) !== strtolower($_REQUEST['captcha'])) {
56
-          $Err = 'You did not enter the correct captcha code.';
57
-        }
58
-        */
52
+
59
         if (!$Err) {
53
         if (!$Err) {
60
             // Don't allow a username of "0" or "1" due to PHP's type juggling
54
             // Don't allow a username of "0" or "1" due to PHP's type juggling
61
             if (trim($_POST['username']) === '0' || trim($_POST['username']) === '1') {
55
             if (trim($_POST['username']) === '0' || trim($_POST['username']) === '1') {
62
-                $Err = 'You cannot have a username of "0" or "1."';
56
+                $Err = "You can't have a username of 0 or 1.";
63
             }
57
             }
64
 
58
 
65
             $DB->query("
59
             $DB->query("
69
             list($UserCount) = $DB->next_record();
63
             list($UserCount) = $DB->next_record();
70
 
64
 
71
             if ($UserCount) {
65
             if ($UserCount) {
72
-                $Err = 'There is already someone registered with that username.';
66
+                $Err = "There's already someone registered with that username.";
73
                 $_REQUEST['username'] = '';
67
                 $_REQUEST['username'] = '';
74
             }
68
             }
75
 
69
 
79
           FROM invites
73
           FROM invites
80
           WHERE InviteKey = '".db_string($_REQUEST['invite'])."'");
74
           WHERE InviteKey = '".db_string($_REQUEST['invite'])."'");
81
                 if (!$DB->has_results()) {
75
                 if (!$DB->has_results()) {
82
-                    $Err = 'Invite does not exist.';
76
+                    $Err = "The invite code is invalid.";
83
                     $InviterID = 0;
77
                     $InviterID = 0;
84
                 } else {
78
                 } else {
85
                     list($InviterID, $InviteEmail, $InviteReason) = $DB->next_record(MYSQLI_NUM, false);
79
                     list($InviterID, $InviteEmail, $InviteReason) = $DB->next_record(MYSQLI_NUM, false);
137
         DELETE FROM invites
131
         DELETE FROM invites
138
         WHERE InviteKey = '".db_string($_REQUEST['invite'])."'");
132
         WHERE InviteKey = '".db_string($_REQUEST['invite'])."'");
139
 
133
 
140
-	    // Award invite badge to inviter if they don't have it
141
-	    /*
142
-            if (Badges::award_badge($InviterID, 136)) {
143
-                Misc::send_pm($InviterID, 0, 'You have received a badge!', "You have received a badge for inviting a user to the site.\n\nIt can be enabled from your user settings.");
144
-                $Cache->delete_value('user_badges_'.$InviterID);
145
-	    }
146
-	     */
134
+            // Award invite badge to inviter if they don't have it
135
+            /*
136
+                if (Badges::award_badge($InviterID, 136)) {
137
+                    Misc::send_pm($InviterID, 0, 'You have received a badge!', "You have received a badge for inviting a user to the site.\n\nIt can be enabled from your user settings.");
138
+                    $Cache->delete_value('user_badges_'.$InviterID);
139
+            }
140
+             */
147
 
141
 
148
             $DB->query("
142
             $DB->query("
149
         SELECT ID
143
         SELECT ID

+ 10
- 9
sections/register/step1.php View File

35
     <tr valign="top">
35
     <tr valign="top">
36
       <td align="left">
36
       <td align="left">
37
         <p>
37
         <p>
38
-          Use common sense when choosing your username.
39
-          <strong>Do not choose a username that can be associated with your real name.</strong>
40
-          If you do so, we will not be changing it for you.
38
+          Use common sense when picking your username.
39
+          <strong>Don't choose one associated with your real name.</strong>
40
+          If you do, we won't be changing it for you.
41
         </p>
41
         </p>
42
 
42
 
43
         <input type="text" name="username" id="username" class="inputtext" placeholder="Username"
43
         <input type="text" name="username" id="username" class="inputtext" placeholder="Username"
71
 
71
 
72
     <tr valign="top">
72
     <tr valign="top">
73
       <td align="left">
73
       <td align="left">
74
-        <input type="checkbox" name="readrules" id="readrules" value="1" <?php if (!empty($_REQUEST['readrules'])) { ?>
74
+        <input type="checkbox" name="agereq" id="agereq" value="1" <?php if (!empty($_REQUEST['agereq'])) { ?>
75
         checked="checked"<?php } ?> />
75
         checked="checked"<?php } ?> />
76
-        <label for="readrules">I will read the rules</label>
76
+        <label for="agereq">I'm 18 years or older</label>
77
       </td>
77
       </td>
78
     </tr>
78
     </tr>
79
 
79
 
80
     <tr valign="top">
80
     <tr valign="top">
81
       <td align="left">
81
       <td align="left">
82
-        <input type="checkbox" name="readwiki" id="readwiki" value="1" <?php if (!empty($_REQUEST['readwiki'])) { ?>
82
+        <input type="checkbox" name="readrules" id="readrules" value="1" <?php if (!empty($_REQUEST['readrules'])) { ?>
83
         checked="checked"<?php } ?> />
83
         checked="checked"<?php } ?> />
84
-        <label for="readwiki">I will read the wiki</label>
84
+        <label for="readrules">I'll read the site rules and wiki</label>
85
       </td>
85
       </td>
86
     </tr>
86
     </tr>
87
 
87
 
88
     <tr valign="top">
88
     <tr valign="top">
89
       <td align="left">
89
       <td align="left">
90
-        <input type="checkbox" name="agereq" id="agereq" value="1" <?php if (!empty($_REQUEST['agereq'])) { ?>
90
+        <input type="checkbox" name="readwiki" id="readwiki" value="1" <?php if (!empty($_REQUEST['readwiki'])) { ?>
91
         checked="checked"<?php } ?> />
91
         checked="checked"<?php } ?> />
92
-        <label for="agereq">I am 18 years of age or older</label>
92
+        <label for="readwiki">I consent to the privacy policy and may revoke my consent at any time</label>
93
         <br /><br />
93
         <br /><br />
94
+
94
       </td>
95
       </td>
95
     </tr>
96
     </tr>
96
 
97
 

Loading…
Cancel
Save