Passed
Push — master ( c527b0...2024c8 )
by
unknown
01:27 queued 16s
created
drupal/sites/default/boinc/modules/boincuser/boincuser.module 1 patch
Indentation   +840 added lines, -840 removed lines patch added patch discarded remove patch
@@ -27,44 +27,44 @@  discard block
 block discarded – undo
27 27
  * with defined URL paths
28 28
  */
29 29
 function boincuser_menu() {
30
-  $items['account/posts'] = array(
30
+    $items['account/posts'] = array(
31 31
     'title' => 'Recent posts',
32 32
     'description' => '',
33 33
     'page callback' => 'boincuser_goto_recent_posts',
34 34
     'access callback' => 'user_is_logged_in',
35 35
     'type' => MENU_CALLBACK,
36
-  );
37
-  $items['account/profile'] = array(
36
+    );
37
+    $items['account/profile'] = array(
38 38
     'title' => '',
39 39
     'description' => '',
40 40
     'page callback' => 'boincuser_view_profile',
41 41
     'access callback' => 'user_is_logged_in',
42 42
     'type' => MENU_NORMAL_ITEM
43
-  );
44
-  $items['account/profile/view'] = array(
43
+    );
44
+    $items['account/profile/view'] = array(
45 45
     'title' => 'View',
46 46
     'description' => 'Show a user profile',
47 47
     'page callback' => 'boincuser_view_profile',
48 48
     'access callback' => 'user_is_logged_in',
49 49
     'type' => MENU_DEFAULT_LOCAL_TASK,
50 50
     'weight' => 0
51
-  );
52
-  $items['account/profile/edit'] = array(
51
+    );
52
+    $items['account/profile/edit'] = array(
53 53
     'title' => 'Edit',
54 54
     'description' => 'Edit a user profile',
55 55
     'page callback' => 'boincuser_edit_profile',
56 56
     'access arguments' => array('edit own profile content'),
57 57
     'type' => MENU_LOCAL_TASK,
58 58
     'weight' => 5
59
-  );
60
-  $items['account/team'] = array(
59
+    );
60
+    $items['account/team'] = array(
61 61
     'title' => 'User team',
62 62
     'description' => '',
63 63
     'page callback' => 'boincuser_goto_team',
64 64
     'access callback' => 'user_is_logged_in',
65 65
     'type' => MENU_CALLBACK,
66
-  );
67
-  $items['moderate/profile/%user/approve'] = array(
66
+    );
67
+    $items['moderate/profile/%user/approve'] = array(
68 68
     'title' => 'Profile approval',
69 69
     'description' => 'Approve profile content',
70 70
     'page callback' => 'boincuser_moderate_profile_approve',
@@ -72,8 +72,8 @@  discard block
 block discarded – undo
72 72
     'access arguments' => array('edit any profile content'),
73 73
     'type' => MENU_CALLBACK,
74 74
     'weight' => 5
75
-  );
76
-  $items['moderate/profile/%user/edit'] = array(
75
+    );
76
+    $items['moderate/profile/%user/edit'] = array(
77 77
     'title' => 'Profile editor',
78 78
     'description' => 'Edit a user profile',
79 79
     'page callback' => 'boincuser_edit_profile',
@@ -81,8 +81,8 @@  discard block
 block discarded – undo
81 81
     'access arguments' => array('edit any profile content'),
82 82
     'type' => MENU_CALLBACK,
83 83
     'weight' => 5
84
-  );
85
-  $items['moderate/profile/%/reject'] = array(
84
+    );
85
+    $items['moderate/profile/%/reject'] = array(
86 86
     'title' => bts('Reject profile', array(), NULL, 'boinc:moderate-user'),
87 87
     'description' => 'Reject profile content',
88 88
     'page callback' => 'drupal_get_form',
@@ -90,60 +90,60 @@  discard block
 block discarded – undo
90 90
     'access arguments' => array('edit any profile content'),
91 91
     'type' => MENU_CALLBACK,
92 92
     'weight' => 5
93
-  );
94
-  $items['moderate/user/%/ban'] = array(
93
+    );
94
+    $items['moderate/user/%/ban'] = array(
95 95
     'title' => bts('Ban user', array(), NULL, 'boinc:moderate-ban-user'),
96 96
     'description' => 'Ban a user from using community features',
97 97
     'page callback' => 'drupal_get_form',
98 98
     'page arguments' => array('boincuser_moderate_user_ban_form', 2),
99 99
     'access callback' => 'boincuser_moderate_community_access',
100 100
     'type' => MENU_CALLBACK,
101
-  );
102
-  $items['join'] = array(
101
+    );
102
+    $items['join'] = array(
103 103
     'title' => '',
104 104
     'description' => '',
105 105
     'page callback' => 'join_page',
106 106
     'access arguments' => array('access content'),
107 107
     'type' => MENU_NORMAL_ITEM
108
-  );
109
-  $items['join/new'] = array(
108
+    );
109
+    $items['join/new'] = array(
110 110
     'title' => bts("I'm new"),
111 111
     'page callback' => 'join_page',
112 112
     'page arguments' => array(1),
113 113
     'access arguments' => array('access content'),
114 114
     'type' => MENU_DEFAULT_LOCAL_TASK,
115 115
     'weight' => 0
116
-  );
117
-  $items['join/boinc'] = array(
116
+    );
117
+    $items['join/boinc'] = array(
118 118
     'title' => bts("I'm a BOINC user"),
119 119
     'page callback' => 'join_page',
120 120
     'page arguments' => array(1),
121 121
     'access arguments' => array('access content'),
122 122
     'type' => MENU_LOCAL_TASK,
123 123
     'weight' => 5
124
-  );
125
-  $items['user/login/auth'] = array(
124
+    );
125
+    $items['user/login/auth'] = array(
126 126
     'title' => bts('Authenticator login', array(), NULL, 'boinc:authenticator-login-page'),
127 127
     'description' => 'Log in using a user authenticator',
128 128
     'page callback' => 'drupal_get_form',
129 129
     'page arguments' => array('boincuser_authloginform'),
130 130
     'access arguments' => array('access content'),
131 131
     'type' => MENU_CALLBACK,
132
-  );
133
-  $items['user/termsofuse'] = array(
132
+    );
133
+    $items['user/termsofuse'] = array(
134 134
     'title' => bts('Terms of Use', array(), NULL, 'boinc:termsofuse-form'),
135 135
     'description' => 'A site\'s term of use.',
136 136
     'page callback' => 'drupal_get_form',
137 137
     'page arguments' => array('boincuser_termsofuse_form'),
138 138
     'access callback' => 'user_is_logged_in',
139 139
     'type' => MENU_CALLBACK,
140
-  );
141
-  $items['user_control'] = array(
140
+    );
141
+    $items['user_control'] = array(
142 142
     'page callback' => 'boincuser_control',
143 143
     'access arguments' => array('access user profiles'),
144 144
     'type' => MENU_CALLBACK
145
-  );
146
-  $items['admin/boinc'] = array(
145
+    );
146
+    $items['admin/boinc'] = array(
147 147
     'title' => 'BOINC configuration',
148 148
     'position' => 'right',
149 149
     'weight' => -8,
@@ -151,8 +151,8 @@  discard block
 block discarded – undo
151 151
     'access arguments' => array('administer site configuration'),
152 152
     'file' => 'system.admin.inc',
153 153
     'file path' => drupal_get_path('module', 'system'),
154
-  );
155
-  $items['admin/boinc/environment'] = array(
154
+    );
155
+    $items['admin/boinc/environment'] = array(
156 156
     'title' => 'Environment: General',
157 157
     'description' => 'Set paths to BOINC functions and any other necessary
158 158
       variables that establish a BOINC environment.',
@@ -161,8 +161,8 @@  discard block
 block discarded – undo
161 161
     'access arguments' => array('administer site configuration'),
162 162
     'type' => MENU_NORMAL_ITEM,
163 163
     'file' => 'boincuser.admin.inc'
164
-  );
165
-  $items['admin/boinc/scheduler'] = array(
164
+    );
165
+    $items['admin/boinc/scheduler'] = array(
166 166
     'title' => 'Environment: Scheduling server URLs',
167 167
     'description' => 'Set BOINC scheduler options.',
168 168
     'page callback' => 'drupal_get_form',
@@ -170,8 +170,8 @@  discard block
 block discarded – undo
170 170
     'access arguments' => array('administer site configuration'),
171 171
     'type' => MENU_NORMAL_ITEM,
172 172
     'file' => 'boincuser.admin.inc'
173
-  );
174
-  $items['admin/boinc/weboptions'] = array(
173
+    );
174
+    $items['admin/boinc/weboptions'] = array(
175 175
     'title' => 'Environment: Website Options',
176 176
     'description' => 'Set options configuring this Drupal-BOINC Web site.',
177 177
     'page callback' => 'drupal_get_form',
@@ -179,117 +179,117 @@  discard block
 block discarded – undo
179 179
     'access arguments' => array('administer site configuration'),
180 180
     'type' => MENU_NORMAL_ITEM,
181 181
     'file' => 'boincuser.admin.inc'
182
-  );
182
+    );
183 183
   
184
-  $items['create_account.php'] = array(
184
+    $items['create_account.php'] = array(
185 185
     'title' => 'Create Account RPC',
186 186
     'description' => 'RPC for creating user accounts.',
187 187
     'page callback' => 'boincuser_create_account',
188 188
     'access callback' => TRUE,
189 189
     'type' => MENU_CALLBACK
190
-  );
191
-  $items['account_finish.php'] = array(
190
+    );
191
+    $items['account_finish.php'] = array(
192 192
     'title' => 'Welcome to ' . variable_get('site_name', 'Drupal-BOINC'),
193 193
     'description' => 'RPC for after a user has created an account.',
194 194
     'page callback' => 'boincuser_account_finish',
195 195
     'access callback' => TRUE,
196 196
     'type' => MENU_CALLBACK,
197
-  );
198
-  $items['boincuser/autocomplete'] = array(
197
+    );
198
+    $items['boincuser/autocomplete'] = array(
199 199
     'page callback' => '_boincuser_user_name_autocomplete',
200 200
     'access callback' => TRUE,
201 201
     'type' => MENU_CALLBACK,
202
-  );
203
-  $items['user/%user/recoveremail/%'] = array(
202
+    );
203
+    $items['user/%user/recoveremail/%'] = array(
204 204
     'title' => t('Recover previous email'),
205 205
     'description' => t('Form to revert email to previous address.'),
206 206
     'page callback' => 'drupal_get_form',
207 207
     'page arguments' => array('boincuser_revertemail', 3),
208 208
     'access callback' => 'user_is_logged_in',
209 209
     'type' => MENU_CALLBACK,
210
-  );
211
-  $items['recover_email.php'] = array(
210
+    );
211
+    $items['recover_email.php'] = array(
212 212
     'title' => t('Recover previous email'),
213 213
     'description' => t('redirect'),
214 214
     'page callback' => '_boincuser_redirect_recover_email',
215 215
     'access callback' => TRUE,
216 216
     'type' => MENU_CALLBACK,
217
-  );
218
-  return $items;
217
+    );
218
+    return $items;
219 219
 }
220 220
 
221 221
 /**
222 222
  * Implementation of hook_init()
223 223
  */
224 224
 function boincuser_init() {
225
-  global $user;
226
-  // Skip this check for charts, which are loaded separately
227
-  // (may get duplicate or unexpected messages otherwise)
228
-  if (substr($_GET['q'], 0, 7) == 'charts/') {
225
+    global $user;
226
+    // Skip this check for charts, which are loaded separately
227
+    // (may get duplicate or unexpected messages otherwise)
228
+    if (substr($_GET['q'], 0, 7) == 'charts/') {
229 229
     return;
230
-  }
230
+    }
231 231
 
232
-  // If admin user, do some basic site functionality checks
233
-  if (user_access('administer site configuration')) {
232
+    // If admin user, do some basic site functionality checks
233
+    if (user_access('administer site configuration')) {
234 234
     // Ensure we have a configured BOINC environment
235 235
     boinc_get_path();
236 236
     boinc_get_scheduler_tags();
237
-  }
237
+    }
238 238
   
239
-  // Check credits for the verified contributor role
240
-  boincuser_check_credit_requirements();
239
+    // Check credits for the verified contributor role
240
+    boincuser_check_credit_requirements();
241 241
   
242
-  if (module_exists('boincteam')) {
242
+    if (module_exists('boincteam')) {
243 243
     // Display any persistent team messages
244 244
     boincteam_show_messages();
245
-  }
245
+    }
246 246
 
247
-  // Check if user has agreed to the terms of use. If not, send the
248
-  // user to the terms-of-use form. This is only makes sense if the
249
-  // termsofuse is enabled, by having text in the termsofuse variable.
250
-  $existinguser_tou = variable_get('boinc_weboptions_existinguser_tou', FALSE);
251
-  $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
252
-  if ( (!empty($termsofuse)) and ($user->uid) ) {
247
+    // Check if user has agreed to the terms of use. If not, send the
248
+    // user to the terms-of-use form. This is only makes sense if the
249
+    // termsofuse is enabled, by having text in the termsofuse variable.
250
+    $existinguser_tou = variable_get('boinc_weboptions_existinguser_tou', FALSE);
251
+    $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
252
+    if ( (!empty($termsofuse)) and ($user->uid) ) {
253 253
     if ( !boincuser_check_termsofuse($user) and ($existinguser_tou) ) {
254 254
 
255
-      // Admins are exempt, otherwise the admin may not be able to
256
-      // access the site!
257
-      $administrator_role = array_search('administrator', user_roles(true));
258
-      if (!isset($user->roles[$administrator_role])) {
255
+        // Admins are exempt, otherwise the admin may not be able to
256
+        // access the site!
257
+        $administrator_role = array_search('administrator', user_roles(true));
258
+        if (!isset($user->roles[$administrator_role])) {
259 259
         $path = drupal_get_path_alias($_GET['q']);
260 260
 
261 261
         // Any paths that should NOT be redirected go here.
262 262
         // The site will not function correctly if these are not exempt!
263 263
         $paths0 = array(
264
-          'user/termsofuse',
265
-          'logout',
266
-          'account/info/edit',
267
-          'user/' . $user->uid . '/edit',
268
-          'user/' . $user->uid . '/recoveremail/*',
269
-          'recover_email.php',
264
+            'user/termsofuse',
265
+            'logout',
266
+            'account/info/edit',
267
+            'user/' . $user->uid . '/edit',
268
+            'user/' . $user->uid . '/recoveremail/*',
269
+            'recover_email.php',
270 270
         );
271 271
         if (module_exists('boincuser_delete')) {
272
-          $paths0[] = 'user/' . $user->uid . '/delete';
273
-          $paths0[] = 'user/' . $user->uid . '/deleteconfirm/*';
274
-          $paths0[] = 'user/' . $user->uid . '/odeleteconfirm/*';
272
+            $paths0[] = 'user/' . $user->uid . '/delete';
273
+            $paths0[] = 'user/' . $user->uid . '/deleteconfirm/*';
274
+            $paths0[] = 'user/' . $user->uid . '/odeleteconfirm/*';
275 275
         }
276 276
 
277 277
         // Paths added by the admin
278 278
         $paths1 = preg_split('/\r\n|\r|\n/', variable_get('boinc_weboptions_pathstoignore', "moderation\ncontent/moderation\nprivacy"));
279 279
         $paths2 = array();
280 280
         if (is_array($paths1)) {
281
-          $paths2 = array_map('strtolower', $paths1);
281
+            $paths2 = array_map('strtolower', $paths1);
282 282
         }
283 283
 
284 284
         // paths to ignore
285 285
         $paths_to_ignore = array_unique( array_merge($paths0, $paths2) );
286 286
 
287 287
         if (!_boincuser_ignore_paths($path, $paths_to_ignore)) {
288
-          drupal_goto('user/termsofuse');
288
+            drupal_goto('user/termsofuse');
289
+        }
289 290
         }
290
-      }
291 291
     }
292
-  }
292
+    }
293 293
 }
294 294
 
295 295
 /**
@@ -297,13 +297,13 @@  discard block
 block discarded – undo
297 297
  * Drupal user operations
298 298
  */
299 299
 function boincuser_user($op, &$edit, &$account, $category = NULL) {
300
-  require_boinc('boinc_db');
301
-  require_boinc('user');
302
-  require_boinc('xml');
300
+    require_boinc('boinc_db');
301
+    require_boinc('user');
302
+    require_boinc('xml');
303 303
 
304
-  require_boinc('password_compat/password');
305
-  // Handle BOINC integration for users with UID > 1 (skip anonymous and admin)
306
-  if (isset($account->uid) && ($account->uid > 1)) {
304
+    require_boinc('password_compat/password');
305
+    // Handle BOINC integration for users with UID > 1 (skip anonymous and admin)
306
+    if (isset($account->uid) && ($account->uid > 1)) {
307 307
     switch($op) {
308 308
     case 'load':
309 309
       // User loading; insert BOINC data into the user object
@@ -311,11 +311,11 @@  discard block
 block discarded – undo
311 311
         SELECT boinc_id, penalty_expiration
312 312
         FROM {boincuser} WHERE uid = %d",
313 313
         $account->uid
314
-      ));
315
-      $account->boincuser_id = $drupal_user->boinc_id;
316
-      $account->boincuser_penalty_expiration = $drupal_user->penalty_expiration;
317
-      db_set_active('boinc_rw');
318
-      $boinc_user = db_fetch_object(db_query("
314
+        ));
315
+        $account->boincuser_id = $drupal_user->boinc_id;
316
+        $account->boincuser_penalty_expiration = $drupal_user->penalty_expiration;
317
+        db_set_active('boinc_rw');
318
+        $boinc_user = db_fetch_object(db_query("
319 319
         SELECT
320 320
           name,
321 321
           authenticator,
@@ -331,29 +331,29 @@  discard block
 block discarded – undo
331 331
         FROM {user}
332 332
         WHERE id = %d",
333 333
         $account->boincuser_id
334
-      ));
335
-      $account->boincuser_name = $boinc_user->name;
336
-      $account->boincuser_account_key = $boinc_user->authenticator;
337
-      $account->boincuser_weak_auth = md5($boinc_user->authenticator . $boinc_user->passwd_hash);
338
-      $account->boincuser_total_credit = round($boinc_user->total_credit);
339
-      $account->boincuser_expavg_credit = round($boinc_user->expavg_credit);
340
-      $account->boincuser_expavg_time = round($boinc_user->expavg_time);
341
-      $account->boincuser_cpid = md5($boinc_user->cross_project_id . $account->mail);
342
-      $account->boincuser_default_pref_set = $boinc_user->venue;
343
-      $account->boincteam_id = $boinc_user->teamid;
344
-      $account->boincuser_previous_email_addr = $boinc_user->previous_email_addr;
345
-      $account->boincuser_email_addr_change_time = $boinc_user->email_addr_change_time;
346
-      db_set_active('default');
347
-      // Set Drupal team ID
348
-      $account->team = NULL;
349
-      if ($account->boincteam_id) {
334
+        ));
335
+        $account->boincuser_name = $boinc_user->name;
336
+        $account->boincuser_account_key = $boinc_user->authenticator;
337
+        $account->boincuser_weak_auth = md5($boinc_user->authenticator . $boinc_user->passwd_hash);
338
+        $account->boincuser_total_credit = round($boinc_user->total_credit);
339
+        $account->boincuser_expavg_credit = round($boinc_user->expavg_credit);
340
+        $account->boincuser_expavg_time = round($boinc_user->expavg_time);
341
+        $account->boincuser_cpid = md5($boinc_user->cross_project_id . $account->mail);
342
+        $account->boincuser_default_pref_set = $boinc_user->venue;
343
+        $account->boincteam_id = $boinc_user->teamid;
344
+        $account->boincuser_previous_email_addr = $boinc_user->previous_email_addr;
345
+        $account->boincuser_email_addr_change_time = $boinc_user->email_addr_change_time;
346
+        db_set_active('default');
347
+        // Set Drupal team ID
348
+        $account->team = NULL;
349
+        if ($account->boincteam_id) {
350 350
         $account->team = db_result(db_query("
351 351
           SELECT nid FROM {boincteam} WHERE team_id = %d",
352
-          $account->boincteam_id
352
+            $account->boincteam_id
353 353
         ));
354
-      }
355
-      // Set post count
356
-      $account->post_count = db_result(db_query("
354
+        }
355
+        // Set post count
356
+        $account->post_count = db_result(db_query("
357 357
         SELECT COUNT(*) +
358 358
         (
359 359
           SELECT COUNT(*) FROM {node}
@@ -366,8 +366,8 @@  discard block
 block discarded – undo
366 366
         WHERE comments.uid = '%d'
367 367
         AND node.status = 1",
368 368
         $account->uid, $account->uid
369
-      ));
370
-      break;
369
+        ));
370
+        break;
371 371
       
372 372
     case 'view':
373 373
       // SAMPLE: Add BOINC data to the user profile
@@ -393,74 +393,74 @@  discard block
 block discarded – undo
393 393
         case 'user_account':
394 394
           // Validate data before updating user account info
395 395
           boincuser_account_validate($edit, $account);
396
-          break;
396
+            break;
397 397
         
398 398
         default:
399 399
           
400 400
         }
401 401
         // We don't want to save validation source, so remove it
402 402
         $edit['validation_source'] = null;
403
-      }
404
-      break;
403
+        }
404
+        break;
405 405
       
406 406
     case 'insert':
407 407
       // New user being added to the system
408 408
       $imported = $_SESSION['importedUser'];
409
-      unset($_SESSION['importedUser']);
409
+        unset($_SESSION['importedUser']);
410 410
       
411
-      watchdog(
411
+        watchdog(
412 412
         'boincuser',
413 413
         'Creating user account for %email_addr',
414 414
         array('%email_addr' => $edit['mail']),
415 415
         WATCHDOG_NOTICE
416
-      );
416
+        );
417 417
       
418
-      // The create_acount RPC will call this block of code when
419
-      // user_save() is used. If user is registering using the Web
420
-      // registration form, create a BOINC user and relationships.
421
-      // Create a BOINC account unless importing from BOINC.
422
-      if (!$imported) {
418
+        // The create_acount RPC will call this block of code when
419
+        // user_save() is used. If user is registering using the Web
420
+        // registration form, create a BOINC user and relationships.
421
+        // Create a BOINC account unless importing from BOINC.
422
+        if (!$imported) {
423 423
 
424 424
         // set email address lower-case
425 425
         $lower_email_addr = strtolower($edit['mail']);
426 426
 
427 427
         if ($edit['boincuser_name']) {
428
-          $myname = $edit['boincuser_name'];
428
+            $myname = $edit['boincuser_name'];
429 429
         }
430 430
         else if ($edit['name']) {
431
-          $myname = $edit['name'];
431
+            $myname = $edit['name'];
432 432
         }
433 433
         else {
434
-          $myname = 'noname';
434
+            $myname = 'noname';
435 435
         }
436 436
 
437 437
         $user_params = array(
438
-          'email_addr' => $lower_email_addr,
439
-          'name' => $myname,
438
+            'email_addr' => $lower_email_addr,
439
+            'name' => $myname,
440 440
         );
441 441
 
442 442
         // If the 'pass' variable is already a hash, then don't hash it again.
443 443
         if ($edit['boinchash_flag']) {
444
-          $user_params['passwd_hash'] = $edit['pass'];
444
+            $user_params['passwd_hash'] = $edit['pass'];
445 445
         }
446 446
         else {
447
-          // The passwd_hash here is only the md5() hash. This is
448
-          // because BOINC make_user(), called later, will run
449
-          // password_hash() on this md5 hash.
450
-          $user_params['passwd_hash'] = md5($edit['pass'].$lower_email_addr);
447
+            // The passwd_hash here is only the md5() hash. This is
448
+            // because BOINC make_user(), called later, will run
449
+            // password_hash() on this md5 hash.
450
+            $user_params['passwd_hash'] = md5($edit['pass'].$lower_email_addr);
451 451
         }
452 452
 
453 453
         $boinc_user = boincuser_register_make_user($user_params);
454 454
         if (!$boinc_user) {
455
-          // Account exists with this email addr
456
-          form_set_error('email', bts('Error creating BOINC account.', array(), NULL, 'boinc:add-new-user'));
457
-          return;
455
+            // Account exists with this email addr
456
+            form_set_error('email', bts('Error creating BOINC account.', array(), NULL, 'boinc:add-new-user'));
457
+            return;
458 458
         }
459 459
 
460 460
         // Add user to community role by default (not banned)
461 461
         $unrestricted_role = array_search('community member', user_roles(true)); 
462 462
         $edit['roles'] = array(
463
-          $unrestricted_role => ''
463
+            $unrestricted_role => ''
464 464
         );
465 465
 
466 466
         // Disable show_hosts flag, set to TRUE by default
@@ -471,14 +471,14 @@  discard block
 block discarded – undo
471 471
         // Cross reference Drupal account with BOINC
472 472
         $reference = db_query("INSERT INTO {boincuser} SET uid='%d', boinc_id='%d'", $account->uid, $boinc_user->id);
473 473
         if (!$reference) {
474
-          drupal_set_message(t('Error connecting BOINC account.'), 'error');
475
-          return;
474
+            drupal_set_message(t('Error connecting BOINC account.'), 'error');
475
+            return;
476 476
         }
477 477
 
478 478
         // if terms of use exist, the user must agree.
479 479
         $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
480 480
         if (!empty($termsofuse)) {
481
-          $reference2 = boincuser_consentto_termsofuse($account);
481
+            $reference2 = boincuser_consentto_termsofuse($account);
482 482
         }
483 483
 
484 484
         // Don't save custom fields to the Drupal user object
@@ -486,10 +486,10 @@  discard block
 block discarded – undo
486 486
         $edit['boinchash_flag'] = null;
487 487
         // Set email address to lower case in Drupal users table
488 488
         if ($account) {
489
-          user_save($account, array('mail' => $lower_email_addr));
489
+            user_save($account, array('mail' => $lower_email_addr));
490 490
         }
491
-      }
492
-      break;
491
+        }
492
+        break;
493 493
       
494 494
     case 'update':
495 495
       if (isset($edit['update_source'])) {
@@ -500,8 +500,8 @@  discard block
 block discarded – undo
500 500
           // Ensure that BOINC data is altered
501 501
 
502 502
           $changing_email = ($edit['mail'] AND $edit['mail'] != $boinc_user->email_addr) ? true : false;
503
-          $changing_pass = ($edit['pass']) ? true : false;
504
-          if ($changing_email OR $changing_pass) {
503
+            $changing_pass = ($edit['pass']) ? true : false;
504
+            if ($changing_email OR $changing_pass) {
505 505
             // set email address to lower-case
506 506
             $lower_email_addr = strtolower($edit['mail']);
507 507
 
@@ -510,70 +510,70 @@  discard block
 block discarded – undo
510 510
             $passwd_hash = password_hash( md5($passwd.$lower_email_addr), PASSWORD_DEFAULT );
511 511
             // Algorithm for changing email and/or password
512 512
             if ($changing_email) {
513
-              // locally store current email to set as previous email
514
-              $prev_email = $account->mail;
515
-              $mytime = (user_access('administer users')) ? $boinc_user->email_addr_change_time : time();
516
-              $querypart = "email_addr='{$lower_email_addr}', passwd_hash='{$passwd_hash}', previous_email_addr = '{$prev_email}', email_addr_change_time = $mytime";
513
+                // locally store current email to set as previous email
514
+                $prev_email = $account->mail;
515
+                $mytime = (user_access('administer users')) ? $boinc_user->email_addr_change_time : time();
516
+                $querypart = "email_addr='{$lower_email_addr}', passwd_hash='{$passwd_hash}', previous_email_addr = '{$prev_email}', email_addr_change_time = $mytime";
517 517
             }
518 518
             else {
519
-              $querypart = "email_addr='{$lower_email_addr}', passwd_hash='{$passwd_hash}'";
519
+                $querypart = "email_addr='{$lower_email_addr}', passwd_hash='{$passwd_hash}'";
520 520
             }
521 521
 
522 522
             // Update user account information
523 523
             $result = $boinc_user->update($querypart);
524 524
 
525 525
             if ($changing_email) {
526
-              // reload account
527
-              $account = user_load($account->uid);
528
-              _boincuser_send_emailchange($account, $lower_email_addr, $prev_email, user_access('administer users'));
526
+                // reload account
527
+                $account = user_load($account->uid);
528
+                _boincuser_send_emailchange($account, $lower_email_addr, $prev_email, user_access('administer users'));
529 529
             }
530 530
 
531 531
             // Change email to edit to lower-case version, this sets
532 532
             // email in Drupal database to the lower-case email
533 533
             // address.
534 534
             $edit['mail'] = strtolower($lower_email_addr);
535
-          }
535
+            }
536 536
 
537
-          // Change boinc username
538
-          if ($edit['boincuser_name'] and ($edit['boincuser_name'] != $boinc_user->name)) {
537
+            // Change boinc username
538
+            if ($edit['boincuser_name'] and ($edit['boincuser_name'] != $boinc_user->name)) {
539 539
             $boincuser_name = $edit['boincuser_name'];
540 540
             $result = $boinc_user->update(
541 541
                 "name='{$boincuser_name}'"
542 542
             );
543
-          }
543
+            }
544 544
 
545
-          break;
545
+            break;
546 546
         case 'user_profile':
547 547
           if ($edit['boincuser_name'] != $boinc_user->name) {
548 548
             $boincuser_name = $edit['boincuser_name'];
549 549
             $result = $boinc_user->update(
550 550
                 "name='{$boincuser_name}'"
551 551
             );
552
-          }
553
-          break;
552
+            }
553
+            break;
554 554
         default:
555 555
         }
556 556
         // We don't want to save update source or duplicate custom fields, so
557 557
         // remove them before continuing to core Drupal routines
558 558
         $edit['update_source'] = null;
559 559
         $edit['boincuser_name'] = null;
560
-      }
561
-      break;
560
+        }
561
+        break;
562 562
 
563 563
     case 'login':
564 564
       // Function is forward compatible to Drupal 7
565 565
       boincuser_user_login($edit, $account);
566
-      break;
566
+        break;
567 567
 
568 568
     case 'delete':
569 569
       // Function is forward compatible to Drupal 7
570 570
       boincuser_user_delete($account);
571
-      break;
571
+        break;
572 572
 
573 573
     default:
574 574
       
575 575
     }
576
-  }
576
+    }
577 577
 }
578 578
 
579 579
 /**
@@ -582,39 +582,39 @@  discard block
 block discarded – undo
582 582
  *(forward compatible to Drupal 7).
583 583
  */
584 584
 function boincuser_user_login(&$edit, $account) {
585
-  $existinguser_tou = variable_get('boinc_weboptions_existinguser_tou', FALSE);
586
-  $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
587
-
588
-  // Use the same code as boincuser_form_alter(), for case
589
-  // 'user_profile_form', if the refering page is the user password
590
-  // reset form, then do not check for terms of use.
591
-  $reset_pass = (strpos($_SERVER['HTTP_REFERER'], "/user/reset/$account->uid") === FALSE) ? 0 : 1;
592
-  if ($reset_pass) {
585
+    $existinguser_tou = variable_get('boinc_weboptions_existinguser_tou', FALSE);
586
+    $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
587
+
588
+    // Use the same code as boincuser_form_alter(), for case
589
+    // 'user_profile_form', if the refering page is the user password
590
+    // reset form, then do not check for terms of use.
591
+    $reset_pass = (strpos($_SERVER['HTTP_REFERER'], "/user/reset/$account->uid") === FALSE) ? 0 : 1;
592
+    if ($reset_pass) {
593 593
     return;
594
-  }
594
+    }
595 595
 
596
-  // Check if user has agreed to terms of use.
597
-  if ( (!empty($termsofuse)) and ($account->uid) and 
596
+    // Check if user has agreed to terms of use.
597
+    if ( (!empty($termsofuse)) and ($account->uid) and 
598 598
        (!boincuser_check_termsofuse($account)) and ($existinguser_tou) ) {
599 599
 
600 600
     // Admins are exempted.
601 601
     $administrator_role = array_search('administrator', user_roles(true));
602 602
     if (!isset($account->roles[$administrator_role])) {
603 603
 
604
-      // Find and save the current destination and use as an parameter
605
-      // to send the user back to here he/she came from.
606
-      $np = ltrim('user/termsofuse', '/');
607
-      $path_for_destination = rawurlencode($np);
604
+        // Find and save the current destination and use as an parameter
605
+        // to send the user back to here he/she came from.
606
+        $np = ltrim('user/termsofuse', '/');
607
+        $path_for_destination = rawurlencode($np);
608 608
 
609
-      $query_for_destination = '';
610
-      $prevdest = $_REQUEST['destination'];
611
-      if ($prevdest) {
609
+        $query_for_destination = '';
610
+        $prevdest = $_REQUEST['destination'];
611
+        if ($prevdest) {
612 612
         $query_for_destination = '?destination=' . $prevdest;
613
-      }
614
-      $_REQUEST['destination'] = $path_for_destination . $query_for_destination;
613
+        }
614
+        $_REQUEST['destination'] = $path_for_destination . $query_for_destination;
615 615
 
616 616
     }
617
-  }
617
+    }
618 618
 }
619 619
 
620 620
 /**
@@ -623,16 +623,16 @@  discard block
 block discarded – undo
623 623
  */
624 624
 function boincuser_user_delete($account) {
625 625
 
626
-  $boincid = $account->boincuser_id;
627
-  // bug in comment module, remove user name from comments. Find all
628
-  // comments with uid=0 and clear the field 'name'.
629
-  $qrc1 = db_query("UPDATE {comments} SET comments.name='' WHERE comments.uid=0");
626
+    $boincid = $account->boincuser_id;
627
+    // bug in comment module, remove user name from comments. Find all
628
+    // comments with uid=0 and clear the field 'name'.
629
+    $qrc1 = db_query("UPDATE {comments} SET comments.name='' WHERE comments.uid=0");
630 630
 
631
-  // Delete entry in drupal boincuser table.
632
-  $qrc2 = db_query("DELETE FROM {boincuser} WHERE uid=%d", $account->uid);
633
-  if (!$qrc2) {
631
+    // Delete entry in drupal boincuser table.
632
+    $qrc2 = db_query("DELETE FROM {boincuser} WHERE uid=%d", $account->uid);
633
+    if (!$qrc2) {
634 634
     watchdog('user', 'Error deleting user account, boincuser table UID: %uid.', array('%uid' => $account->uid), WATCHDOG_ERROR);
635
-  }
635
+    }
636 636
 }
637 637
 
638 638
 
@@ -641,13 +641,13 @@  discard block
 block discarded – undo
641 641
  * Obsolete in Drupal 7...
642 642
  */
643 643
 function boincuser_nodeapi(&$node, $op, $a3 = null, $a4 = null) {
644
-  // In Drupal 7, these operation cases will all exist as their own hooks,
645
-  // so let's approximate that here so that this function can simply be removed
646
-  // upon migration to 7
647
-  switch($op) {
648
-  case 'update':
644
+    // In Drupal 7, these operation cases will all exist as their own hooks,
645
+    // so let's approximate that here so that this function can simply be removed
646
+    // upon migration to 7
647
+    switch($op) {
648
+    case 'update':
649 649
     boincuser_node_update($node);
650
-  }
650
+    }
651 651
 }
652 652
 
653 653
 /**
@@ -655,8 +655,8 @@  discard block
 block discarded – undo
655 655
  * is updated (forward compatible to Drupal 7)
656 656
  */
657 657
 function boincuser_node_update($node) {
658
-  switch($node->type) {
659
-  case 'profile':
658
+    switch($node->type) {
659
+    case 'profile':
660 660
     // Update the BOINC database directly
661 661
     $account = user_load($node->uid);
662 662
     // Save user account data
@@ -668,11 +668,11 @@  discard block
 block discarded – undo
668 668
       UPDATE user
669 669
       SET country = '%s', postal_code = '%s', url = '%s', has_profile = 1
670 670
       WHERE id = %d",
671
-      $country, $postal_code, $url, $account->boincuser_id
671
+        $country, $postal_code, $url, $account->boincuser_id
672 672
     );
673 673
     db_set_active('default');
674 674
     if (!$account_updated) {
675
-      drupal_set_message(t('Error saving BOINC account info.'), 'error');
675
+        drupal_set_message(t('Error saving BOINC account info.'), 'error');
676 676
     }
677 677
     // Save profile data
678 678
     $response1 = $node->field_background[0]['value'];
@@ -683,16 +683,16 @@  discard block
 block discarded – undo
683 683
       SET userid = %d, response1 = '%s', response2 = '%s'
684 684
       ON DUPLICATE KEY UPDATE
685 685
         response1 = '%s', response2 = '%s'",
686
-      $account->boincuser_id, $response1, $response2,
687
-      $response1, $response2
686
+        $account->boincuser_id, $response1, $response2,
687
+        $response1, $response2
688 688
     );
689 689
     db_set_active('default');
690 690
     if (!$profile_updated) {
691
-      drupal_set_message(t('Error saving BOINC profile.'), 'error');
691
+        drupal_set_message(t('Error saving BOINC profile.'), 'error');
692 692
     }
693 693
     break;
694 694
     
695
-  default:
695
+    default:
696 696
     
697 697
   }
698 698
 }
@@ -701,21 +701,21 @@  discard block
 block discarded – undo
701 701
 * Implementation of hook_views_api()
702 702
 */
703 703
 function boincuser_views_api() {
704
-  return array(
704
+    return array(
705 705
     'api' => 2.0,
706 706
     'path' => drupal_get_path('module', 'boincuser')
707
-  );
707
+    );
708 708
 }
709 709
 
710 710
 /**
711 711
 * Implementation of hook_form_alter()
712 712
 */
713 713
 function boincuser_form_alter(&$form, $form_state, $form_id) {
714
-  require_boinc('token');
714
+    require_boinc('token');
715 715
 
716
-  global $user;
717
-  switch ($form_id) {
718
-  case 'flag_confirm':
716
+    global $user;
717
+    switch ($form_id) {
718
+    case 'flag_confirm':
719 719
     // The URL seems to be the only way to put any kind of context to this
720 720
     // request!
721 721
     $action = arg(2);
@@ -724,25 +724,25 @@  discard block
 block discarded – undo
724 724
     
725 725
     // Wrap action buttons for styling consistency
726 726
     $form['form control tabs prefix'] = array(
727
-      '#value' => '<ul class="form-control tab-list">',
728
-      '#weight' => 1001,
727
+        '#value' => '<ul class="form-control tab-list">',
728
+        '#weight' => 1001,
729 729
     );
730 730
     
731 731
     switch ($flag_type) {
732 732
     case 'friend':
733 733
       $friend_id = $form['content_id']['#value'];
734
-      $flag = flag_get_flag('friend');
735
-      $friend_status = flag_friend_determine_friend_status($flag, $friend_id, $user->uid);
734
+        $flag = flag_get_flag('friend');
735
+        $friend_status = flag_friend_determine_friend_status($flag, $friend_id, $user->uid);
736 736
       
737
-      // General friend form overrides
738
-      $form['flag_friend_submit']['#prefix'] = '<li class="first tab">';
739
-      $form['flag_friend_submit']['#value'] = bts('Send request', array(), NULL, 'boinc:friends-page');
740
-      $form['flag_friend_submit']['#type'] = 'submit';
741
-      $form['flag_friend_submit']['#suffix'] = '</li>';
742
-      $form['flag_friend_submit']['#weight'] = 1002;
737
+        // General friend form overrides
738
+        $form['flag_friend_submit']['#prefix'] = '<li class="first tab">';
739
+        $form['flag_friend_submit']['#value'] = bts('Send request', array(), NULL, 'boinc:friends-page');
740
+        $form['flag_friend_submit']['#type'] = 'submit';
741
+        $form['flag_friend_submit']['#suffix'] = '</li>';
742
+        $form['flag_friend_submit']['#weight'] = 1002;
743 743
       
744
-      switch ($friend_status) {
745
-      case FLAG_FRIEND_BOTH:
744
+        switch ($friend_status) {
745
+        case FLAG_FRIEND_BOTH:
746 746
       case FLAG_FRIEND_FLAGGED:
747 747
         unset($form['actions']);
748 748
         $form['flag_friend_submit']['#value'] = bts('Remove friend', array(), NULL, 'boinc:friends-remove');
@@ -751,53 +751,53 @@  discard block
 block discarded – undo
751 751
         $form['#submit'][] = 'boincuser_fix_unfriend_form_submit';
752 752
         $form['#submit'][] = $final_handler;
753 753
         break;
754
-      case FLAG_FRIEND_PENDING:
754
+        case FLAG_FRIEND_PENDING:
755 755
         unset($form['actions']);
756 756
         $form['flag_friend_submit']['#value'] = bts('Remove request', array(), NULL, 'boinc:friends-page');
757 757
         break;
758
-      case FLAG_FRIEND_APPROVAL:
758
+        case FLAG_FRIEND_APPROVAL:
759 759
         if ($action == 'flag') {
760
-          $form['flag_friend_submit']['#value'] = bts('Approve request', array(), NULL, 'boinc:friends-page');
760
+            $form['flag_friend_submit']['#value'] = bts('Approve request', array(), NULL, 'boinc:friends-page');
761 761
         }
762 762
         elseif ($action == 'unflag') {
763
-          unset($form['actions']);
764
-          $form['flag_friend_submit']['#value'] = bts('Deny request', array(), NULL, 'boinc:friends-page');
763
+            unset($form['actions']);
764
+            $form['flag_friend_submit']['#value'] = bts('Deny request', array(), NULL, 'boinc:friends-page');
765 765
         }
766 766
         break;
767
-      case FLAG_FRIEND_UNFLAGGED:
767
+        case FLAG_FRIEND_UNFLAGGED:
768 768
       default:
769 769
         $user_links[] = array(
770
-          'title' => bts('Add as friend', array(), NULL, 'boinc:friends-add'),
771
-          'href' => "flag/confirm/flag/friend/{$account->uid}"
770
+            'title' => bts('Add as friend', array(), NULL, 'boinc:friends-add'),
771
+            'href' => "flag/confirm/flag/friend/{$account->uid}"
772 772
         );
773
-      }
774
-      break;
773
+        }
774
+        break;
775 775
       
776 776
     default:
777 777
     }
778 778
     
779 779
     $form['cancel'] = array(
780
-      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $cancel_dest) . '</li>',
781
-      '#weight' => 1004,
780
+        '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $cancel_dest) . '</li>',
781
+        '#weight' => 1004,
782 782
     );
783 783
     $form['form control tabs suffix'] = array(
784
-      '#value' => '</ul>',
785
-      '#weight' => 1010,
784
+        '#value' => '</ul>',
785
+        '#weight' => 1010,
786 786
     );
787 787
     
788 788
     break;
789 789
     
790
-  // General node edit form
791
-  case 'news_node_form':
790
+    // General node edit form
791
+    case 'news_node_form':
792 792
     $form['separator_bottom'] = array(
793
-      '#value' => '<div class="separator buttons"></div>',
794
-      '#weight' => 999,
793
+        '#value' => '<div class="separator buttons"></div>',
794
+        '#weight' => 999,
795 795
     );
796 796
     
797 797
     // Wrap action buttons for styling consistency
798 798
     $form['buttons']['form control tabs prefix'] = array(
799
-      '#value' => '<ul class="form-control tab-list">',
800
-      '#weight' => 1001,
799
+        '#value' => '<ul class="form-control tab-list">',
800
+        '#weight' => 1001,
801 801
     );
802 802
     $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
803 803
     $form['buttons']['submit']['#value'] = bts('Save changes', array(), NULL, 'boinc:form-save');
@@ -810,15 +810,15 @@  discard block
 block discarded – undo
810 810
     $form['buttons']['preview_changes']['#suffix'] = '</li>';
811 811
     $form['buttons']['preview_changes']['#weight'] = 1004;
812 812
     $form['buttons']['cancel'] = array(
813
-      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "node/{$form['nid']['#value']}") . '</li>',
814
-      '#weight' => 1005,
813
+        '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "node/{$form['nid']['#value']}") . '</li>',
814
+        '#weight' => 1005,
815 815
     );
816 816
     $form['buttons']['delete']['#prefix'] = '<li class="tab">';
817 817
     $form['buttons']['delete']['#suffix'] = '</li>';
818 818
     $form['buttons']['delete']['#weight'] = 1006;
819 819
     $form['buttons']['form control tabs suffix'] = array(
820
-      '#value' => '</ul>',
821
-      '#weight' => 1010,
820
+        '#value' => '</ul>',
821
+        '#weight' => 1010,
822 822
     );
823 823
     
824 824
     // Preview is ugly, unset until it works
@@ -826,16 +826,16 @@  discard block
 block discarded – undo
826 826
 
827 827
     break;
828 828
   
829
-  case 'node_delete_confirm':
829
+    case 'node_delete_confirm':
830 830
     $form['separator_bottom'] = array(
831
-      '#value' => '<div class="separator buttons"></div>',
832
-      '#weight' => 999,
831
+        '#value' => '<div class="separator buttons"></div>',
832
+        '#weight' => 999,
833 833
     );
834 834
     
835 835
     // Wrap action buttons for styling consistency
836 836
     $form['actions']['form control tabs prefix'] = array(
837
-      '#value' => '<ul class="form-control tab-list">',
838
-      '#weight' => 1001,
837
+        '#value' => '<ul class="form-control tab-list">',
838
+        '#weight' => 1001,
839 839
     );
840 840
     $form['actions']['submit']['#prefix'] = '<li class="first tab">';
841 841
     $form['actions']['submit']['#value'] = bts('Delete', array(), NULL, 'boinc:form-delete');
@@ -843,23 +843,23 @@  discard block
 block discarded – undo
843 843
     $form['actions']['submit']['#weight'] = 1002;
844 844
     $form['actions']['cancel'] = array(
845 845
         '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "node/{$form['nid']['#value']}") . '</li>',
846
-      '#weight' => 1005,
846
+        '#weight' => 1005,
847 847
     );
848 848
     $form['actions']['form control tabs suffix'] = array(
849
-      '#value' => '</ul>',
850
-      '#weight' => 1010,
849
+        '#value' => '</ul>',
850
+        '#weight' => 1010,
851 851
     );
852 852
     $form['#redirect'] = 'account/profile';
853 853
     break;
854 854
     
855
-  case 'privatemsg_new':
855
+    case 'privatemsg_new':
856 856
     
857 857
     $form['privatemsg']['body']['#title'] = '';
858 858
     
859 859
     // Wrap action buttons for styling consistency
860 860
     $form['privatemsg']['form control tabs prefix'] = array(
861
-      '#value' => '<ul class="form-control tab-list">',
862
-      '#weight' => 1001,
861
+        '#value' => '<ul class="form-control tab-list">',
862
+        '#weight' => 1001,
863 863
     );
864 864
     $form['privatemsg']['submit']['#prefix'] = '<li class="first tab">';
865 865
     $form['privatemsg']['submit']['#value'] = bts('Send message', array(), NULL, 'boinc:private-message');
@@ -869,26 +869,26 @@  discard block
 block discarded – undo
869 869
     $form['privatemsg']['preview']['#suffix'] = '</li>';
870 870
     $form['privatemsg']['preview']['#weight'] = 1003;
871 871
     $form['privatemsg']['cancel'] = array(
872
-      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
873
-      '#weight' => 1004,
872
+        '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
873
+        '#weight' => 1004,
874 874
     );
875 875
     $form['privatemsg']['form control tabs suffix'] = array(
876
-      '#value' => '</ul>',
877
-      '#weight' => 1010,
876
+        '#value' => '</ul>',
877
+        '#weight' => 1010,
878 878
     );
879 879
     
880 880
     unset($form['privatemsg']['recipient_display']);
881 881
     
882 882
     break;
883 883
     
884
-  // Login form
885
-  case 'user_login':
884
+    // Login form
885
+    case 'user_login':
886 886
   case 'user_login_block':
887 887
       drupal_set_title(bts('Login', array(), NULL, 'boinc:menu-link'));
888 888
     // Replace name with email in login form
889 889
     unset($form['name']);
890 890
     array_unshift($form, array(
891
-      'email' => array(
891
+        'email' => array(
892 892
         '#type' => 'textfield',
893 893
         '#title' => bts('Email address', array(), NULL, 'boinc:email-address-to-login'),
894 894
         '#size' => ($form_id == 'user_login_block') ? 15 : 60,
@@ -896,18 +896,18 @@  discard block
 block discarded – undo
896 896
         '#required' => TRUE,
897 897
         '#attributes' => array('tabindex' => '1'),
898 898
         '#description' => bts('Enter your @s email address.', array('@s' => variable_get('site_name', 'Drupal-BOINC')), NULL, 'boinc:standard-login-page')
899
-      ),
900
-      'validation_source' => array(
899
+        ),
900
+        'validation_source' => array(
901 901
         '#type' => 'hidden',
902 902
         '#value' => 'user_login'
903
-      )
903
+        )
904 904
     ));
905 905
     $form['#redirect'] = 'home';
906 906
     
907 907
     // Wrap action buttons for styling consistency
908 908
     $form['buttons']['form control tabs prefix'] = array(
909
-      '#value' => '<ul class="form-control tab-list">',
910
-      '#weight' => 1001,
909
+        '#value' => '<ul class="form-control tab-list">',
910
+        '#weight' => 1001,
911 911
     );
912 912
     $form['buttons']['submit'] = $form['submit'];
913 913
     $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
@@ -915,8 +915,8 @@  discard block
 block discarded – undo
915 915
     $form['buttons']['submit']['#suffix'] = '</li>';
916 916
     $form['buttons']['submit']['#weight'] = 1002;
917 917
     $form['buttons']['form control tabs suffix'] = array(
918
-      '#value' => '</ul>',
919
-      '#weight' => 1010,
918
+        '#value' => '</ul>',
919
+        '#weight' => 1010,
920 920
     );
921 921
     unset($form['submit']);
922 922
     
@@ -925,23 +925,23 @@  discard block
 block discarded – undo
925 925
     isset($form['buttons']['submit']['#attributes']) ? array_push($form['buttons']['submit']['#attributes'], array('tabindex' => '3')) : $form['buttons']['submit']['#attributes'] = array('tabindex' => '3');
926 926
     // If the user login form is being submitted, use BOINC validation handler.
927 927
     if (isset($form_state['post']['email']) and isset($form_state['post']['pass'])) {
928
-      // Find the local validation function's entry so we can replace it.
929
-      $array_key = array_search('user_login_authenticate_validate', $form['#validate']);
930
-      if ($array_key === FALSE) {
928
+        // Find the local validation function's entry so we can replace it.
929
+        $array_key = array_search('user_login_authenticate_validate', $form['#validate']);
930
+        if ($array_key === FALSE) {
931 931
         // Could not find it. Some other module must have run form_alter().
932 932
         // We will simply add our validation just before the final validator.
933 933
         $final_validator = array_pop($form['#validate']);
934 934
         $form['#validate'][] = 'boincuser_login_validate';
935 935
         $form['#validate'][] = $final_validator;
936
-      } else {
936
+        } else {
937 937
         // Replace the local validation function with BOINC validation
938 938
         $form['#validate'][$array_key] = 'boincuser_login_validate';
939
-      }
939
+        }
940 940
     }
941 941
     break;
942 942
     
943
-  // User credentials form
944
-  case 'user_profile_form':
943
+    // User credentials form
944
+    case 'user_profile_form':
945 945
 
946 946
     // Use the displaly name as the title, not the username
947 947
     $account = user_load($form['#uid']);
@@ -949,28 +949,28 @@  discard block
 block discarded – undo
949 949
     
950 950
     // Message for admins
951 951
     if (user_access('administer users')) {
952
-      drupal_set_message(
952
+        drupal_set_message(
953 953
         bts('WARNING: You are editing the information for user. Please note: you may change a user\'s password by itself. But to change the user\'s email address you must change both the email address and the password simultaneously.')
954
-      , 'warning');
954
+        , 'warning');
955 955
     }
956 956
 
957 957
     // Set special message if user has not agreed to TOU
958 958
     $existinguser_tou = variable_get('boinc_weboptions_existinguser_tou', FALSE);
959 959
     $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
960 960
     if ( (!boincuser_check_termsofuse($account)) and ($existinguser_tou) and (!empty($termsofuse)) and (!user_access('administer users')) ) {
961
-      drupal_set_message(
961
+        drupal_set_message(
962 962
         bts('INFO: You have not agreed to the terms of use for @project. You may use this form to change your email address and/or password. Please note: you may not delete your account within seven (7) days of changing your email address.',
963 963
         array(
964
-          '@project' => variable_get('site_name','Drupal-BOINC'),
964
+            '@project' => variable_get('site_name','Drupal-BOINC'),
965 965
         ), NULL, 'boinc:account-credentials-change')
966
-      , 'info');
966
+        , 'info');
967 967
     }
968 968
 
969 969
     // A bit hackish... but don't require the user to enter his password if
970 970
     // coming from the password reset function
971 971
     $reset_pass = (strpos($_SERVER['HTTP_REFERER'], "/user/reset/{$form['#uid']}") === FALSE) ? 0 : 1;
972 972
     if ($reset_pass) {
973
-      $_SESSION['reset_pass'] = 1;
973
+        $_SESSION['reset_pass'] = 1;
974 974
     }
975 975
 
976 976
     // Adjust form elements already present
@@ -982,8 +982,8 @@  discard block
 block discarded – undo
982 982
     $form['account']['pass']['#size'] = 17;
983 983
 
984 984
     if (user_access('administer users')) {
985
-      // Add BOINC username (aka displayname)
986
-      $form['account']['boincuser_name'] = array(
985
+        // Add BOINC username (aka displayname)
986
+        $form['account']['boincuser_name'] = array(
987 987
         '#type' => 'textfield',
988 988
         '#title' => bts('BOINC Username', array(), NULL, 'boinc:user-or-team-name'),
989 989
         '#default_value' => $account->boincuser_name,
@@ -991,68 +991,68 @@  discard block
 block discarded – undo
991 991
         '#required' => TRUE,
992 992
         '#description' => bts('This is the BOINC (external) username. This is the same setting as found in Account -> Preferences -> Community.', array(), NULL, 'boinc:username-change'),
993 993
         '#size' => 40,
994
-      );
994
+        );
995 995
     }
996 996
 
997 997
     // If email address was changed less than 7 days (7 * 86400 s)
998 998
     // ago, it cannot be changed again.
999 999
     $duration = TOKEN_DURATION_ONE_WEEK;
1000 1000
     if (($account->boincuser_email_addr_change_time + $duration) > time() and (!user_access('administer users'))) {
1001
-      $form['account']['mail']['#required'] = FALSE;
1002
-      $form['account']['mailhelp'] = array(
1001
+        $form['account']['mail']['#required'] = FALSE;
1002
+        $form['account']['mailhelp'] = array(
1003 1003
         '#value' => bts("You email address was changed within the past seven (7) days. Please look for an email to !prev_email if you need to revert this change. You may change your email address on !time.",
1004
-          array(
1004
+            array(
1005 1005
             '!prev_email' => $account->boincuser_previous_email_addr,
1006 1006
             '!time' => date('F j, Y \a\t G:i T', $account->boincuser_email_addr_change_time + $duration),
1007
-          ), NULL, 'boinc:account-credentials-change'),
1008
-      );
1007
+            ), NULL, 'boinc:account-credentials-change'),
1008
+        );
1009 1009
     }
1010 1010
 
1011 1011
     if (!$reset_pass AND ($user->uid == $account->uid OR !user_access('administer users'))) {
1012
-      // Add a password authenticator, required to change email or pw
1013
-      $form['account']['current_pass'] = array(
1012
+        // Add a password authenticator, required to change email or pw
1013
+        $form['account']['current_pass'] = array(
1014 1014
         '#type' => 'password',
1015 1015
         '#title' => bts('Enter your password to save changes', array(), NULL, 'boinc:account-credentials-change'),
1016 1016
         '#description' => bts('Enter your current password if changing your email
1017 1017
           address or password.', array(), NULL, 'boinc:account-credentials-change'),
1018 1018
         '#size' => 17,
1019 1019
         '#attributes' => array(
1020
-          'autocomplete' => 'off',
1020
+            'autocomplete' => 'off',
1021 1021
         ),
1022
-      );
1022
+        );
1023 1023
     }
1024 1024
     
1025 1025
     // Add account keys, CPID, etc
1026 1026
     $form['account']['boincuser_id'] = array(
1027
-      '#value' => '
1027
+        '#value' => '
1028 1028
         <div class="form-item">
1029 1029
           <label>' . bts('BOINC user ID', array(), NULL, 'boinc:account-credentials-change') . '</label>
1030 1030
           <span>' . $account->boincuser_id . '</span>
1031 1031
         </div>',
1032 1032
     );
1033 1033
     $form['account']['user_id'] = array(
1034
-      '#value' => '
1034
+        '#value' => '
1035 1035
         <div class="form-item">
1036 1036
           <label>' . bts('Drupal user ID', array(), NULL, 'boinc:account-credentials-change') . '</label>
1037 1037
           <span>' . $account->uid . '</span>
1038 1038
         </div>',
1039 1039
     );
1040 1040
     $form['account']['account_key'] = array(
1041
-      '#value' => '
1041
+        '#value' => '
1042 1042
         <div class="form-item">
1043 1043
           <label>' . bts('Account key', array(), NULL, 'boinc:account-credentials-change') . '</label>
1044 1044
           <span>' . $account->boincuser_account_key . '</span>
1045 1045
         </div>',
1046 1046
     );
1047 1047
     $form['account']['weak_account_key'] = array(
1048
-      '#value' => '
1048
+        '#value' => '
1049 1049
         <div class="form-item">
1050 1050
           <label>' . bts('Weak account key', array(), NULL, 'boinc:account-credentials-change') . '</label>
1051 1051
           <span>' . "{$account->boincuser_id}_{$account->boincuser_weak_auth}" . '</span>
1052 1052
         </div>',
1053 1053
     );
1054 1054
     $form['account']['cpid'] = array(
1055
-      '#value' => '
1055
+        '#value' => '
1056 1056
         <div class="form-item">
1057 1057
           <label>' . bts('Cross-project ID', array(), NULL, 'boinc:account-credentials-change') . '</label>
1058 1058
           <span>' . $account->boincuser_cpid . '</span>
@@ -1060,30 +1060,30 @@  discard block
 block discarded – undo
1060 1060
     );
1061 1061
     
1062 1062
     $form['account']['separator_bottom'] = array(
1063
-      '#value' => '<div class="separator buttons"></div>'
1063
+        '#value' => '<div class="separator buttons"></div>'
1064 1064
     );
1065 1065
     
1066 1066
     // Wrap action buttons for styling consistency
1067 1067
     $form['form control tabs prefix'] = array(
1068
-      '#value' => '<ul class="form-control tab-list">',
1069
-      '#weight' => 1001,
1068
+        '#value' => '<ul class="form-control tab-list">',
1069
+        '#weight' => 1001,
1070 1070
     );
1071 1071
     $form['submit']['#prefix'] = '<li class="first tab">';
1072 1072
     $form['submit']['#value'] = bts('Save changes', array(), NULL, 'boinc:form-save');
1073 1073
     $form['submit']['#suffix'] = '</li>';
1074 1074
     $form['submit']['#weight'] = 1002;
1075 1075
     $form['cancel'] = array(
1076
-      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
1077
-      '#weight' => 1003,
1076
+        '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
1077
+        '#weight' => 1003,
1078 1078
     );
1079 1079
     if (isset($form['delete']) AND is_array($form['delete'])) {
1080
-      $form['delete']['#prefix'] = '<li class="first alt tab">';
1081
-      $form['delete']['#suffix'] = '</li>';
1082
-      $form['delete']['#weight'] = 1004;
1080
+        $form['delete']['#prefix'] = '<li class="first alt tab">';
1081
+        $form['delete']['#suffix'] = '</li>';
1082
+        $form['delete']['#weight'] = 1004;
1083 1083
     }
1084 1084
     $form['form control tabs suffix'] = array(
1085
-      '#value' => '</ul>',
1086
-      '#weight' => 1010,
1085
+        '#value' => '</ul>',
1086
+        '#weight' => 1010,
1087 1087
     );
1088 1088
     
1089 1089
     // Rearrange form elements
@@ -1103,7 +1103,7 @@  discard block
 block discarded – undo
1103 1103
     // Remove redundant / unnecessary form elements
1104 1104
     unset($form['theme_select']);
1105 1105
     if (!module_exists('boincuser_delete')) {
1106
-      unset($form['delete']);
1106
+        unset($form['delete']);
1107 1107
     }
1108 1108
     
1109 1109
     // These are on the Community preferences form (boincwork module)
@@ -1119,18 +1119,18 @@  discard block
 block discarded – undo
1119 1119
     
1120 1120
     // Internal fields to indicate where these user changes are taking place
1121 1121
     array_unshift($form, array(
1122
-      'validation_source' => array(
1122
+        'validation_source' => array(
1123 1123
         '#type' => 'hidden',
1124 1124
         '#value' => 'user_account'
1125
-      ),
1126
-      'update_source' => array(
1125
+        ),
1126
+        'update_source' => array(
1127 1127
         '#type' => 'hidden',
1128 1128
         '#value' => 'user_account'
1129
-      )
1129
+        )
1130 1130
     ));
1131 1131
     break;
1132 1132
     
1133
-  case 'profile_node_form':
1133
+    case 'profile_node_form':
1134 1134
     
1135 1135
     // Use the display name as the title, not the username
1136 1136
     $account = user_load($form['uid']['#value']);
@@ -1141,22 +1141,22 @@  discard block
 block discarded – undo
1141 1141
     $form['title']['#access'] = FALSE;
1142 1142
 
1143 1143
     $form['separator_bottom'] = array(
1144
-      '#value' => '<div class="separator buttons"></div>',
1145
-      '#weight' => 999,
1144
+        '#value' => '<div class="separator buttons"></div>',
1145
+        '#weight' => 999,
1146 1146
     );
1147 1147
     
1148 1148
     if (module_exists('captcha')) {
1149
-      // Add an optional captcha
1150
-      $form['profile_captcha'] = array(
1149
+        // Add an optional captcha
1150
+        $form['profile_captcha'] = array(
1151 1151
         '#type' => 'captcha',
1152 1152
         '#weight' => 1000,
1153
-      );
1153
+        );
1154 1154
     }
1155 1155
     
1156 1156
     // Wrap action buttons for styling consistency
1157 1157
     $form['buttons']['form control tabs prefix'] = array(
1158
-      '#value' => '<ul class="form-control tab-list">',
1159
-      '#weight' => 1001,
1158
+        '#value' => '<ul class="form-control tab-list">',
1159
+        '#weight' => 1001,
1160 1160
     );
1161 1161
     $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
1162 1162
     $form['buttons']['submit']['#value'] = bts('Save changes', array(), NULL, 'boinc:form-save');
@@ -1169,8 +1169,8 @@  discard block
 block discarded – undo
1169 1169
     $form['buttons']['preview_changes']['#suffix'] = '</li>';
1170 1170
     $form['buttons']['preview_changes']['#weight'] = 1004;
1171 1171
     $form['buttons']['cancel'] = array(
1172
-      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
1173
-      '#weight' => 1005,
1172
+        '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
1173
+        '#weight' => 1005,
1174 1174
     );
1175 1175
     $form['buttons']['delete']['#prefix'] = '<li class="tab">';
1176 1176
     $form['buttons']['delete']['#suffix'] = '</li>';
@@ -1178,8 +1178,8 @@  discard block
 block discarded – undo
1178 1178
     $form['buttons']['delete']['#weight'] = 1006;
1179 1179
     $form['buttons']['delete']['#submit'] = array('_boincuser_node_profile_delete_submit');
1180 1180
     $form['buttons']['form control tabs suffix'] = array(
1181
-      '#value' => '</ul>',
1182
-      '#weight' => 1010,
1181
+        '#value' => '</ul>',
1182
+        '#weight' => 1010,
1183 1183
     );
1184 1184
     
1185 1185
     $form['#after_build'][] = 'boincuser_profile_node_form_after_build';
@@ -1192,33 +1192,33 @@  discard block
 block discarded – undo
1192 1192
     
1193 1193
     // Internal fields to indicate where these user changes are taking place
1194 1194
     array_unshift($form, array(
1195
-      'validation_source' => array(
1195
+        'validation_source' => array(
1196 1196
         '#type' => 'hidden',
1197 1197
         '#value' => 'user_profile'
1198
-      ),
1199
-      'update_source' => array(
1198
+        ),
1199
+        'update_source' => array(
1200 1200
         '#type' => 'hidden',
1201 1201
         '#value' => 'user_profile'
1202
-      )
1202
+        )
1203 1203
     ));
1204 1204
     break;
1205 1205
   
1206
-  // Registration form
1207
-  case 'user_register':
1206
+    // Registration form
1207
+    case 'user_register':
1208 1208
     array_unshift($form, array(
1209
-      'boincuser_name' => array(
1209
+        'boincuser_name' => array(
1210 1210
         '#type' => 'textfield', 
1211 1211
         '#title' => bts('Name', array(), NULL, 'boinc:user-or-team-name'), 
1212 1212
         '#default_value' => $edit['boincuser_name'], 
1213 1213
         '#maxlength' => USERNAME_MAX_LENGTH, 
1214 1214
         '#description' => bts('Spaces are allowed; punctuation is not allowed except for periods, hyphens, and underscores.', array(), NULL, 'boinc:user-register'), 
1215 1215
         '#required' => TRUE
1216
-      ),
1216
+        ),
1217 1217
     ));
1218 1218
     // Set name temporarily to dummy value to beat validation
1219 1219
     $form['name'] = array(
1220
-      '#type' => 'hidden',
1221
-      '#value' => rand() . '.' . time()
1220
+        '#type' => 'hidden',
1221
+        '#value' => rand() . '.' . time()
1222 1222
     );
1223 1223
 
1224 1224
     // Add JS for submit button disabling
@@ -1228,50 +1228,50 @@  discard block
 block discarded – undo
1228 1228
     $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
1229 1229
     if (!empty($termsofuse)) {
1230 1230
 
1231
-      $form['termsofuse'] = array(
1231
+        $form['termsofuse'] = array(
1232 1232
         '#type'   => 'fieldset',
1233 1233
         '#prefix' => '<div id="termsofuse-wrapper">', // This is our wrapper div.
1234 1234
         '#suffix' => '</div>',
1235 1235
         '#tree'   => TRUE,
1236 1236
         '#weight' => -15,
1237
-      );
1237
+        );
1238 1238
 
1239
-      $form['termsofuse']['title1'] = array(
1239
+        $form['termsofuse']['title1'] = array(
1240 1240
         '#weight' => -12,
1241 1241
         '#value' => '<h2>' . bts(variable_get('boinc_weboptions_registrationtitle', 'Please read and acknowledge our terms of use'), array(), NULL, 'project:user-register' ) . '</h2>',
1242 1242
         '#prefix' => '<div id="register-title1">',
1243 1243
         '#suffix' => '</div>',
1244
-      );
1244
+        );
1245 1245
 
1246
-      $form['termsofuse']['body'] = array(
1246
+        $form['termsofuse']['body'] = array(
1247 1247
         '#weight' => -10,
1248 1248
         '#value' => bts($termsofuse, array(), NULL, 'project:user-register'),
1249 1249
         '#prefix' => '<div id="register-termsofuse">',
1250 1250
         '#suffix' => '</div>',
1251
-      );
1251
+        );
1252 1252
 
1253
-      $form['termsofuse']['agreeTOU'] = array(
1253
+        $form['termsofuse']['agreeTOU'] = array(
1254 1254
         '#type' => 'checkbox',
1255 1255
         '#title' => bts(variable_get('boinc_weboptions_agreequestion', 'Do you agree with the above terms of use?'), array(), NULL, 'project:user-register'),
1256 1256
         '#weight' => -8,
1257 1257
         '#prefix' => '<div id="register-checkbox">',
1258 1258
         '#suffix' => '</div>',
1259
-      );
1259
+        );
1260 1260
     }
1261 1261
 
1262 1262
     $form['title2'] = array(
1263
-      '#weight' => -6,
1264
-      '#value' => '<h2>' . bts(variable_get('boinc_weboptions_registrationtitle2', 'Fill in your name, email, and choose a secure passphrase.'), array(), NULL, 'project:user-register') . '</h2>',
1265
-      '#prefix' => '<div id="register-title2">',
1266
-      '#suffix' => '</div>',
1263
+        '#weight' => -6,
1264
+        '#value' => '<h2>' . bts(variable_get('boinc_weboptions_registrationtitle2', 'Fill in your name, email, and choose a secure passphrase.'), array(), NULL, 'project:user-register') . '</h2>',
1265
+        '#prefix' => '<div id="register-title2">',
1266
+        '#suffix' => '</div>',
1267 1267
     );
1268 1268
 
1269 1269
     if (module_exists('captcha')) {
1270
-      // Add an optional captcha
1271
-      $form['register_captcha'] = array(
1270
+        // Add an optional captcha
1271
+        $form['register_captcha'] = array(
1272 1272
         '#type' => 'captcha',
1273 1273
         '#weight' => 1000,
1274
-      );
1274
+        );
1275 1275
     }
1276 1276
     
1277 1277
     $form['#validate'][] = 'boincuser_register_validate';
@@ -1279,43 +1279,43 @@  discard block
 block discarded – undo
1279 1279
     $form['submit']['#weight'] = 1001;
1280 1280
     break;
1281 1281
     
1282
-  // Request new password form
1283
-  case 'user_pass':
1282
+    // Request new password form
1283
+    case 'user_pass':
1284 1284
     drupal_set_title(bts('Forgot password', array(), NULL, 'boinc:forgot-password'));
1285 1285
     // Replace name/email text box with email only; retain "name" label
1286 1286
     // for compatibility with standard Drupal submit function
1287 1287
     unset($form['name']);
1288 1288
     array_unshift($form, array(
1289
-      'name' => array(
1289
+        'name' => array(
1290 1290
         '#type' => 'textfield',
1291 1291
         '#title' => bts('Email address', array(), NULL, 'boinc:email-address-to-login'),
1292 1292
         '#size' => 60,
1293 1293
         '#maxlength' => EMAIL_MAX_LENGTH,
1294 1294
         '#required' => TRUE,
1295 1295
         '#description' => bts(
1296
-          'Enter your email address to receive instructions for resetting your password (or use the !authenticator_login).',
1297
-          array(
1296
+            'Enter your email address to receive instructions for resetting your password (or use the !authenticator_login).',
1297
+            array(
1298 1298
             '!authenticator_login' => l(
1299
-              bts('authenticator-based login', array(), NULL, 'boinc:forgot-password'),
1300
-              'user/login/auth'
1299
+                bts('authenticator-based login', array(), NULL, 'boinc:forgot-password'),
1300
+                'user/login/auth'
1301
+            )
1301 1302
             )
1302
-          )
1303 1303
         , NULL, 'boinc:forgot-password'),
1304
-      ),
1304
+        ),
1305 1305
     ));
1306 1306
     
1307 1307
     if (module_exists('captcha')) {
1308
-      // Add an optional captcha
1309
-      $form['register_captcha'] = array(
1308
+        // Add an optional captcha
1309
+        $form['register_captcha'] = array(
1310 1310
         '#type' => 'captcha',
1311 1311
         '#weight' => 1000,
1312
-      );
1312
+        );
1313 1313
     }
1314 1314
 
1315 1315
     // Wrap action buttons for styling consistency
1316 1316
     $form['buttons']['form control tabs prefix'] = array(
1317
-      '#value' => '<ul class="form-control tab-list">',
1318
-      '#weight' => 1001,
1317
+        '#value' => '<ul class="form-control tab-list">',
1318
+        '#weight' => 1001,
1319 1319
     );
1320 1320
     $form['buttons']['submit'] = $form['submit'];
1321 1321
     $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
@@ -1323,26 +1323,26 @@  discard block
 block discarded – undo
1323 1323
     $form['buttons']['submit']['#suffix'] = '</li>';
1324 1324
     $form['buttons']['submit']['#weight'] = 1002;
1325 1325
     $form['buttons']['cancel'] = array(
1326
-      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/login') . '</li>',
1327
-      '#weight' => 1005,
1326
+        '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/login') . '</li>',
1327
+        '#weight' => 1005,
1328 1328
     );
1329 1329
     $form['buttons']['form control tabs suffix'] = array(
1330
-      '#value' => '</ul>',
1331
-      '#weight' => 1010,
1330
+        '#value' => '</ul>',
1331
+        '#weight' => 1010,
1332 1332
     );
1333 1333
     unset($form['submit']);
1334 1334
     
1335 1335
     // If the form is being submitted, use BOINC validation handler.
1336 1336
     if (isset($form_state['post']['name'])) {
1337
-      // Prepend the BOINC validation function to local validation
1338
-      array_unshift($form['#validate'], 'boincuser_request_pass_validate');
1337
+        // Prepend the BOINC validation function to local validation
1338
+        array_unshift($form['#validate'], 'boincuser_request_pass_validate');
1339 1339
     }
1340 1340
     break;
1341 1341
     
1342
-  case 'views_exposed_form':
1342
+    case 'views_exposed_form':
1343 1343
       $form['submit']['#value'] = bts('Search', array(), NULL, 'boinc:search-user');
1344 1344
     break;
1345
-  }
1345
+    }
1346 1346
 }
1347 1347
 
1348 1348
 /**
@@ -1350,10 +1350,10 @@  discard block
 block discarded – undo
1350 1350
  * built; this is called from boincuser_form_alter()
1351 1351
  */
1352 1352
 function boincuser_profile_node_form_after_build($form, &$form_state) {
1353
-  // Move to community prefs form
1354
-  $form_state['storage']['avatar'] = $form['field_image'];
1355
-  unset($form['field_image']);
1356
-  return $form;
1353
+    // Move to community prefs form
1354
+    $form_state['storage']['avatar'] = $form['field_image'];
1355
+    unset($form['field_image']);
1356
+    return $form;
1357 1357
 }
1358 1358
 
1359 1359
 /**
@@ -1361,8 +1361,8 @@  discard block
 block discarded – undo
1361 1361
  * @see http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_elements/6
1362 1362
  */
1363 1363
 function boincuser_elements() {
1364
-  $type['password_confirm']['#process'][] = 'boincuser_process_password_confirm';
1365
-  return $type;
1364
+    $type['password_confirm']['#process'][] = 'boincuser_process_password_confirm';
1365
+    return $type;
1366 1366
 }
1367 1367
 
1368 1368
 /**
@@ -1370,11 +1370,11 @@  discard block
 block discarded – undo
1370 1370
  * profile form
1371 1371
  */
1372 1372
 function boincuser_process_password_confirm($element) {
1373
-  // Check if parent element is "account".
1374
-  if ($element['#array_parents'][0] == 'account') {
1373
+    // Check if parent element is "account".
1374
+    if ($element['#array_parents'][0] == 'account') {
1375 1375
     $element['pass1']['#title'] = bts('Change password', array(), NULL, 'boinc:forgot-password');
1376
-  }
1377
-  return $element;
1376
+    }
1377
+    return $element;
1378 1378
 }
1379 1379
 
1380 1380
 /**
@@ -1382,42 +1382,42 @@  discard block
 block discarded – undo
1382 1382
  * Register theme functions for use in this module.
1383 1383
  */
1384 1384
 function boincuser_theme($existing, $type, $theme, $path) {
1385
-  return array(
1385
+    return array(
1386 1386
     'boincuser_user_pass' => array(
1387
-      'arguments' => array()
1387
+        'arguments' => array()
1388 1388
     )
1389
-  );
1389
+    );
1390 1390
 }
1391 1391
 
1392 1392
 /**
1393 1393
  * Implementation of hook_token_values
1394 1394
  */
1395 1395
 function boincuser_token_values($type, $object = NULL, $options = array()) {
1396
-  if ($type == 'user') {
1396
+    if ($type == 'user') {
1397 1397
     $account = user_load($object->uid);
1398 1398
     $tokens['display-name'] = $account->boincuser_name;
1399 1399
     return $tokens;
1400
-  }
1400
+    }
1401 1401
 }
1402 1402
 
1403 1403
 /**
1404 1404
  * Implementation of hook_token_list
1405 1405
  */
1406 1406
 function boincuser_token_list($type = 'all') {
1407
-  if ($type == 'user' || $type == 'all') {
1407
+    if ($type == 'user' || $type == 'all') {
1408 1408
     $tokens['user']['display-name']      = t("The user's name that should be displayed");
1409 1409
     return $tokens;
1410
-  }
1410
+    }
1411 1411
 }
1412 1412
 
1413 1413
 /**
1414 1414
  * Implementation of hook_views_pre_execute()
1415 1415
  */
1416 1416
 function boincuser_views_pre_execute(&$view) {
1417
-  if ($view->args) {
1417
+    if ($view->args) {
1418 1418
     $account_id = $view->args[0];
1419
-  }
1420
-  if ($view->name=="user_activity") {
1419
+    }
1420
+    if ($view->name=="user_activity") {
1421 1421
     // Run the following custom query for the user_activity view
1422 1422
     $view->build_info['query']= "
1423 1423
       SELECT node_revisions.vid AS vid,
@@ -1449,25 +1449,25 @@  discard block
 block discarded – undo
1449 1449
     
1450 1450
     // count_query determines the pager.  Do this so the right item count is returned.
1451 1451
     $view->build_info['count_query'] = $view->build_info['query'];
1452
-  }
1452
+    }
1453 1453
 }
1454 1454
 
1455 1455
 /**
1456 1456
  * Implementation of hook_cron()
1457 1457
  */
1458 1458
 function boincuser_cron() {
1459
-  // Delete expired users in the BOINC database, user_delete table.
1460
-  require_boinc('boinc_db');
1461
-  $num_deleted = BoincUserDeleted::delete_expired();
1462
-  if ($num_deleted>0) {
1459
+    // Delete expired users in the BOINC database, user_delete table.
1460
+    require_boinc('boinc_db');
1461
+    $num_deleted = BoincUserDeleted::delete_expired();
1462
+    if ($num_deleted>0) {
1463 1463
     watchdog('boincuser', "Deleted ${num_deleted} users from user_deleted table", WATCHDOG_NOTICE);
1464
-  }
1464
+    }
1465 1465
 
1466
-  // Delete expired tokens from token table
1467
-  $tokens_deleted = BoincToken::delete_expired();
1468
-  if ($tokens_deleted>0) {
1466
+    // Delete expired tokens from token table
1467
+    $tokens_deleted = BoincToken::delete_expired();
1468
+    if ($tokens_deleted>0) {
1469 1469
     watchdog('boincuser', "Deleted ${tokens_deleted} tokens from token table", WATCHDOG_NOTICE);
1470
-  }
1470
+    }
1471 1471
 }
1472 1472
 
1473 1473
 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
@@ -1478,17 +1478,17 @@  discard block
 block discarded – undo
1478 1478
  * Page callback shortcut to recent posts for the logged in user
1479 1479
  */
1480 1480
 function boincuser_goto_recent_posts() {
1481
-  global $user;
1482
-  drupal_goto("account/{$user->uid}/posts");
1481
+    global $user;
1482
+    drupal_goto("account/{$user->uid}/posts");
1483 1483
 }
1484 1484
 
1485 1485
 /**
1486 1486
  * Page callback shortcut to the team of the logged in user
1487 1487
  */
1488 1488
 function boincuser_goto_team() {
1489
-  global $user;
1490
-  $account = user_load($user->uid);
1491
-  drupal_goto("community/teams/{$account->team}");
1489
+    global $user;
1490
+    $account = user_load($user->uid);
1491
+    drupal_goto("community/teams/{$account->team}");
1492 1492
 }
1493 1493
 
1494 1494
 /**
@@ -1497,93 +1497,93 @@  discard block
 block discarded – undo
1497 1497
  * user profile pages, so use a wrapper for display
1498 1498
  */
1499 1499
 function boincuser_view_profile($account = null) {
1500
-  // Create the user profile page
1501
-  if (!$account) {
1500
+    // Create the user profile page
1501
+    if (!$account) {
1502 1502
     global $user;
1503 1503
     $account = $user;
1504
-  }
1504
+    }
1505 1505
 
1506
-  $min_credit_to_post = variable_get('boinc_comment_min_credit', 0);
1507
-  $verified_contributor = array_search('verified contributor', user_roles(true));
1508
-  if (!isset($account->roles[$verified_contributor])) {
1506
+    $min_credit_to_post = variable_get('boinc_comment_min_credit', 0);
1507
+    $verified_contributor = array_search('verified contributor', user_roles(true));
1508
+    if (!isset($account->roles[$verified_contributor])) {
1509 1509
     drupal_set_message(bts(
1510 1510
         'You may only create or modify your user profile after earning @count credits.',
1511 1511
         array('@count' => $min_credit_to_post), NULL, 'boinc:view-profile'
1512 1512
     ), 'warning', FALSE);
1513
-  }
1513
+    }
1514 1514
 
1515
-  // For now, just call the user module profile view function
1516
-  user_build_content($account);
1517
-  return theme('user_profile', $account);
1515
+    // For now, just call the user module profile view function
1516
+    user_build_content($account);
1517
+    return theme('user_profile', $account);
1518 1518
 }
1519 1519
 
1520 1520
 /**
1521 1521
  * Page callback for editing a user profile
1522 1522
  */
1523 1523
 function boincuser_edit_profile($account = null) {
1524
-  // Create the user profile form
1525
-  if (!$account) {
1524
+    // Create the user profile form
1525
+    if (!$account) {
1526 1526
     global $user;
1527 1527
     $account = $user;
1528
-  }
1529
-  // Render the form
1530
-  module_load_include('pages.inc', 'node', 'node');
1531
-  return content_profile_page_edit('profile', $account);
1528
+    }
1529
+    // Render the form
1530
+    module_load_include('pages.inc', 'node', 'node');
1531
+    return content_profile_page_edit('profile', $account);
1532 1532
 }
1533 1533
 
1534 1534
 /**
1535
-  * Join page menu callback.
1536
-  * Display instructions on joining for new or existing BOINC users
1537
-  */
1535
+ * Join page menu callback.
1536
+ * Display instructions on joining for new or existing BOINC users
1537
+ */
1538 1538
 function join_page($type = null) {
1539
-  global $base_url;
1540
-  /* The paths/links to the rules-and-policies page is hardcoded
1539
+    global $base_url;
1540
+    /* The paths/links to the rules-and-policies page is hardcoded
1541 1541
    * here. An improvement would be admin settings for the Join Page
1542 1542
    * where this path could be set.
1543 1543
    */
1544
-  $ruleslinkA = 'rules-and-policies';
1545
-  $ruleslinkB = 'content/rules-and-policies';
1546
-  $site_name = variable_get('site_name', 'Drupal-BOINC');
1547
-  $registration_enabled = variable_get('user_register', 0);
1548
-  $output = '<div class="join">';
1549
-  switch ($type) {
1550
-  case 'boinc':
1544
+    $ruleslinkA = 'rules-and-policies';
1545
+    $ruleslinkB = 'content/rules-and-policies';
1546
+    $site_name = variable_get('site_name', 'Drupal-BOINC');
1547
+    $registration_enabled = variable_get('user_register', 0);
1548
+    $output = '<div class="join">';
1549
+    switch ($type) {
1550
+    case 'boinc':
1551 1551
     $output .= '<ol>';
1552 1552
     if ($registration_enabled) {
1553
-      $output .= '<li>' . bts('First !create_an_account here at @sitename.',
1554
-      array(
1553
+        $output .= '<li>' . bts('First !create_an_account here at @sitename.',
1554
+        array(
1555 1555
         '!create_an_account' => l(bts('create an account', array(), NULL, 'boinc:join-page'), 'user/registration'),
1556 1556
         '@sitename' => $site_name,
1557
-      ), NULL, 'boinc:join-page') . '</li>';
1557
+        ), NULL, 'boinc:join-page') . '</li>';
1558 1558
     }
1559 1559
     $output .= '  <li>' . bts("Install BOINC on this device if not already present.", array(), NULL, 'boinc:join-page') . '</li>';
1560 1560
     $output .= '  <li>' . bts("Select <i>Tools / Add Project</i>. Choose @sitename from the list, or enter @siteurl.",
1561 1561
     array(
1562
-      '@sitename' => $site_name,
1563
-      '@siteurl' => $base_url,
1562
+        '@sitename' => $site_name,
1563
+        '@siteurl' => $base_url,
1564 1564
     ), NULL, 'boinc:join-page') . '</li>';
1565 1565
     if ($registration_enabled) {
1566
-      $output .= '<li>' . bts("If you're running a command-line or pre-5.0 version of BOINC, use <b>!boinccmd</b> to add the project.",
1566
+        $output .= '<li>' . bts("If you're running a command-line or pre-5.0 version of BOINC, use <b>!boinccmd</b> to add the project.",
1567 1567
         array(
1568
-          '!boinccmd' => l('boinccmd --project_attach', 'http://boinc.berkeley.edu/wiki/Boinccmd_tool'),
1568
+            '!boinccmd' => l('boinccmd --project_attach', 'http://boinc.berkeley.edu/wiki/Boinccmd_tool'),
1569 1569
         ), NULL, 'boinc:join-page') . '</li>';
1570 1570
     }
1571 1571
     else {
1572
-      $output .= '<li>' . bts("If you're running a command-line version of BOINC,
1572
+        $output .= '<li>' . bts("If you're running a command-line version of BOINC,
1573 1573
         please follow the <b>!instructionslink</b> to first <i>create an account</i>, and then <i>attach</i> to this project. Use the same project URL as above.",
1574 1574
         array(
1575
-          '!instructionslink' => l('instructions', 'http://boinc.berkeley.edu/wiki/Boinccmd_tool'),
1575
+            '!instructionslink' => l('instructions', 'http://boinc.berkeley.edu/wiki/Boinccmd_tool'),
1576 1576
         ), NULL, 'boinc:join-page') . '</li>';
1577 1577
     }
1578 1578
     $output .= '<li>' . bts("If you're running a pre-5.0 version of BOINC, please
1579 1579
       upgrade to a more recent version of BOINC to create an account
1580 1580
       at @this_project.",
1581
-      array(
1581
+        array(
1582 1582
         '@this_project' => $site_name,
1583
-      ), NULL, 'boinc:join-page') . '</li>';
1583
+        ), NULL, 'boinc:join-page') . '</li>';
1584 1584
     $output .=  '</ol>';
1585 1585
     break;
1586
-  case 'new':
1586
+    case 'new':
1587 1587
   default:
1588 1588
     // Determine if there is a link to rules-and-policies
1589 1589
     //$ruleslink='';
@@ -1598,16 +1598,16 @@  discard block
 block discarded – undo
1598 1598
     // Join page output
1599 1599
     $output .= '<ol>';
1600 1600
     if ($registration_enabled) {
1601
-      $output .= '<li>' . bts('First !create_an_account here at @sitename.',
1602
-      array(
1601
+        $output .= '<li>' . bts('First !create_an_account here at @sitename.',
1602
+        array(
1603 1603
         '!create_an_account' => l(bts('create an account', array(), NULL, 'boinc:join-page'), 'user/registration'),
1604 1604
         '@sitename' => $site_name,
1605
-      ), NULL, 'boinc:join-page') . '</li>';
1605
+        ), NULL, 'boinc:join-page') . '</li>';
1606 1606
     }
1607 1607
     else if ( menu_valid_path(array('link_path' => $ruleslink)) ) {
1608
-      $output .= '  <li>' . bts("Read our !rules_and_policies.", array(
1608
+        $output .= '  <li>' . bts("Read our !rules_and_policies.", array(
1609 1609
         '!rules_and_policies' => l(bts('Rules and Policies', array(), NULL, 'boinc:join-page'), $ruleslink),
1610
-      ), NULL, 'boinc:join-page') . '</li>';
1610
+        ), NULL, 'boinc:join-page') . '</li>';
1611 1611
     }
1612 1612
     $output .= '  <li>' . bts('Download the BOINC desktop software.', array(), NULL, 'boinc:join-page');
1613 1613
     $output .= '    <p>';
@@ -1617,73 +1617,73 @@  discard block
 block discarded – undo
1617 1617
     $output .= '  </li>';
1618 1618
     $output .= '  <li>' . bts('Run the installer.', array(), NULL, 'boinc:join-page') . '</li>';
1619 1619
     $output .= '  <li>' . bts('Choose @sitename from the list, or enter @siteurl.', array(
1620
-      '@sitename' => $site_name,
1621
-      '@siteurl' => $base_url,
1620
+        '@sitename' => $site_name,
1621
+        '@siteurl' => $base_url,
1622 1622
     ), NULL, 'boinc:join-page') . '</li>';
1623 1623
     $output .=  '</ol>';
1624
-  }
1625
-  $output .= '</div>';
1626
-  return $output;
1624
+    }
1625
+    $output .= '</div>';
1626
+    return $output;
1627 1627
 }
1628 1628
 
1629 1629
 /**
1630
-  * Home page content for embedding in Panels page
1631
-  */
1630
+ * Home page content for embedding in Panels page
1631
+ */
1632 1632
 function boincuser_home_page() {
1633
-  global $user;
1634
-  $site_name = variable_get('site_name', 'Drupal-BOINC');
1635
-  // get the front page message from database; this is set in the admin interface under BOINC Other
1636
-  $site_message = variable_get('boinc_other_frontpage','');
1633
+    global $user;
1634
+    $site_name = variable_get('site_name', 'Drupal-BOINC');
1635
+    // get the front page message from database; this is set in the admin interface under BOINC Other
1636
+    $site_message = variable_get('boinc_other_frontpage','');
1637 1637
 
1638
-  // Determine the user of the day
1639
-  $current_uotd = db_fetch_object(db_query("
1638
+    // Determine the user of the day
1639
+    $current_uotd = db_fetch_object(db_query("
1640 1640
     SELECT
1641 1641
       uid,
1642 1642
       uotd_time
1643 1643
     FROM {boincuser}
1644 1644
     ORDER BY uotd_time DESC
1645 1645
     LIMIT 1"
1646
-  ));
1647
-  if ($current_uotd->uotd_time < strtotime('today midnight')) {
1646
+    ));
1647
+    if ($current_uotd->uotd_time < strtotime('today midnight')) {
1648 1648
     $uotd = boincuser_select_user_of_the_day();
1649
-  }
1650
-  else {
1649
+    }
1650
+    else {
1651 1651
     $uotd = user_load($current_uotd->uid);
1652
-  }
1653
-  $uotd_image = boincuser_get_user_profile_image($uotd->uid, FALSE);
1654
-  $output = '<h2 class="pane-title">';
1655
-  $output .= ($user->uid) ? bts('Welcome back!', array(), NULL, 'boinc:front-page') : ($site_name ? bts('What is @this_project?', array('@this_project' => $site_name)) : bts('Welcome!', array(), NULL, 'boinc:front-page'));
1656
-  $output .= '</h2>';
1657
-  $output .= '<div class="boinc-overview balance-height-front">';
1658
-  $output .= '  <div>' . bts($site_message, array(), NULL, "project:front page") . ' ' . l(bts('Learn more', array(), NULL, 'boinc:front-page'), 'about') . '</div>';
1659
-  if ($user->uid) {
1652
+    }
1653
+    $uotd_image = boincuser_get_user_profile_image($uotd->uid, FALSE);
1654
+    $output = '<h2 class="pane-title">';
1655
+    $output .= ($user->uid) ? bts('Welcome back!', array(), NULL, 'boinc:front-page') : ($site_name ? bts('What is @this_project?', array('@this_project' => $site_name)) : bts('Welcome!', array(), NULL, 'boinc:front-page'));
1656
+    $output .= '</h2>';
1657
+    $output .= '<div class="boinc-overview balance-height-front">';
1658
+    $output .= '  <div>' . bts($site_message, array(), NULL, "project:front page") . ' ' . l(bts('Learn more', array(), NULL, 'boinc:front-page'), 'about') . '</div>';
1659
+    if ($user->uid) {
1660 1660
     $output .= '  <div>' . l(bts('View account', array(), NULL, 'boinc:front-page'), 'dashboard', array('attributes' => array('class' => 'join button'))) . '</div>';
1661
-  }
1662
-  else {
1661
+    }
1662
+    else {
1663 1663
     $output .= '  <div>' . l(bts('Join now', array(), NULL, 'boinc:front-page'), 'join', array('attributes' => array('class' => 'join button'))) . '</div>';
1664
-  }
1665
-  $output .= '</div>';
1666
-  $output .= '<div class="boinc-overview-details">';
1667
-  $output .= '  <div class="detail-container">';
1668
-  $output .= '    <a class="user-of-the-day" href="account/' . $uotd->uid . '">';
1669
-  $output .= '      <div class="picture">';
1670
-  $output .= theme('imagefield_image', $uotd_image['image'], $uotd_image['alt'],
1664
+    }
1665
+    $output .= '</div>';
1666
+    $output .= '<div class="boinc-overview-details">';
1667
+    $output .= '  <div class="detail-container">';
1668
+    $output .= '    <a class="user-of-the-day" href="account/' . $uotd->uid . '">';
1669
+    $output .= '      <div class="picture">';
1670
+    $output .= theme('imagefield_image', $uotd_image['image'], $uotd_image['alt'],
1671 1671
     $uotd_image['alt'], array(), FALSE);
1672
-  $output .= '      </div>';
1673
-  $output .= '      <div class="text">' . bts('User of the day', array(), NULL, 'boinc:front-page') . '</div>';
1674
-  $output .= '      <div class="detail">' . $uotd->boincuser_name . '</div>';
1675
-  $output .= '    </a>';
1676
-  $output .= '    <div class="volunteers">';
1677
-  $output .= '      <div class="text">' . bts('Over 500,000 volunteers and counting.', array(), NULL, 'boinc:front-page') . '</div>';
1678
-  $output .= '      <div class="platforms">';
1679
-  $output .= '        <div class="detail platform windows">' . bts('Windows', array(), NULL, 'boinc:front-page') . '</div>';
1680
-  $output .= '        <div class="detail platform mac">' .  bts('Mac', array(), NULL, 'boinc:front-page') . '</div>';
1681
-  $output .= '        <div class="detail platform linux">' . bts('Linux', array(), NULL, 'boinc:front-page') . '</div>';
1682
-  $output .= '      </div>';
1683
-  $output .= '    </div>';
1684
-  $output .= '  </div>';
1685
-  $output .= '</div>';
1686
-  return $output;
1672
+    $output .= '      </div>';
1673
+    $output .= '      <div class="text">' . bts('User of the day', array(), NULL, 'boinc:front-page') . '</div>';
1674
+    $output .= '      <div class="detail">' . $uotd->boincuser_name . '</div>';
1675
+    $output .= '    </a>';
1676
+    $output .= '    <div class="volunteers">';
1677
+    $output .= '      <div class="text">' . bts('Over 500,000 volunteers and counting.', array(), NULL, 'boinc:front-page') . '</div>';
1678
+    $output .= '      <div class="platforms">';
1679
+    $output .= '        <div class="detail platform windows">' . bts('Windows', array(), NULL, 'boinc:front-page') . '</div>';
1680
+    $output .= '        <div class="detail platform mac">' .  bts('Mac', array(), NULL, 'boinc:front-page') . '</div>';
1681
+    $output .= '        <div class="detail platform linux">' . bts('Linux', array(), NULL, 'boinc:front-page') . '</div>';
1682
+    $output .= '      </div>';
1683
+    $output .= '    </div>';
1684
+    $output .= '  </div>';
1685
+    $output .= '</div>';
1686
+    return $output;
1687 1687
 }
1688 1688
 
1689 1689
 /**
@@ -1691,81 +1691,81 @@  discard block
 block discarded – undo
1691 1691
  * Create a new user account based on supplied parameters.
1692 1692
  */
1693 1693
 function boincuser_create_account() {
1694
-  global $base_url;
1694
+    global $base_url;
1695 1695
 
1696
-  require_boinc('boinc_db');
1697
-  require_boinc('user_util');
1698
-  require_boinc('xml');
1699
-  $params = array(
1696
+    require_boinc('boinc_db');
1697
+    require_boinc('user_util');
1698
+    require_boinc('xml');
1699
+    $params = array(
1700 1700
     'email_addr' => isset($_GET['email_addr']) ? $_GET['email_addr'] : '',
1701 1701
     'user_name' => isset($_GET['user_name']) ? $_GET['user_name'] : '',
1702 1702
     'passwd_hash' => isset($_GET['passwd_hash']) ? $_GET['passwd_hash'] : ''
1703
-  );
1703
+    );
1704 1704
   
1705
-  // Begin output
1706
-  xml_header();
1705
+    // Begin output
1706
+    xml_header();
1707 1707
   
1708
-  // Account creation disabled
1709
-  $enablethisRPC = variable_get('boinc_weboptions_enableaccountcreateRPC', TRUE);
1710
-  if (!$enablethisRPC) {
1708
+    // Account creation disabled
1709
+    $enablethisRPC = variable_get('boinc_weboptions_enableaccountcreateRPC', TRUE);
1710
+    if (!$enablethisRPC) {
1711 1711
     $mess = bts('Account creation is done through our Web site. Please register at @url', array(
1712
-      '@url' => $base_url . '/user/registration',
1712
+        '@url' => $base_url . '/user/registration',
1713 1713
     ),
1714 1714
     NULL, 'boinc:create_account');
1715 1715
     xml_error(-208, $mess);
1716
-  }
1717
-  // Invalid invite code
1716
+    }
1717
+    // Invalid invite code
1718 1718
   
1719
-  // Validate input
1720
-  if (user_validate_mail($params['email_addr']) or !is_valid_email_addr($params['email_addr'])) {
1719
+    // Validate input
1720
+    if (user_validate_mail($params['email_addr']) or !is_valid_email_addr($params['email_addr'])) {
1721 1721
     xml_error(-205);
1722
-  }
1722
+    }
1723 1723
 
1724
-  // Make sure user_name is unique and cleaned
1725
-  $unique_name = create_proper_drupalname($params['user_name']);
1726
-  if ($error = user_validate_name($unique_name)) {
1724
+    // Make sure user_name is unique and cleaned
1725
+    $unique_name = create_proper_drupalname($params['user_name']);
1726
+    if ($error = user_validate_name($unique_name)) {
1727 1727
     xml_error(-188, $error);
1728
-  }
1729
-  if (strlen($params['passwd_hash']) != 32) {
1728
+    }
1729
+    if (strlen($params['passwd_hash']) != 32) {
1730 1730
     xml_error(-1, 'password hash length not 32');
1731
-  }
1731
+    }
1732 1732
   
1733
-  // Process input
1734
-  // Check this email against previous email addresses.
1735
-  $tmpuser = BoincUser::lookup_prev_email_addr($params['email_addr']);
1736
-  if ($tmpuser) {
1733
+    // Process input
1734
+    // Check this email against previous email addresses.
1735
+    $tmpuser = BoincUser::lookup_prev_email_addr($params['email_addr']);
1736
+    if ($tmpuser) {
1737 1737
     xml_error(-137);
1738
-  }
1738
+    }
1739 1739
 
1740
-  // Check this email on current email addresses.
1741
-  $boinc_user = BoincUser::lookup_email_addr($params['email_addr']);
1742
-  if ($boinc_user) {
1740
+    // Check this email on current email addresses.
1741
+    $boinc_user = BoincUser::lookup_email_addr($params['email_addr']);
1742
+    if ($boinc_user) {
1743 1743
     // Return authenticator for existing users
1744 1744
     if ( ($params['passwd_hash'] == $boinc_user->passwd_hash) or
1745 1745
     password_verify($params['passwd_hash'], $boinc_user->passwd_hash) ) {
1746
-      $output = array('authenticator' => $boinc_user->authenticator);
1746
+        $output = array('authenticator' => $boinc_user->authenticator);
1747 1747
     }
1748 1748
     else {
1749
-      xml_error(-137);
1749
+        xml_error(-137);
1750 1750
     }
1751
-  }
1752
-  else {
1751
+    }
1752
+    else {
1753 1753
     // Verify that there isn't somehow a Drupal user already (not possible with proper function)
1754 1754
     if ($existing_user = user_load(array('mail' => $params['email_addr']))) {
1755
-      xml_error(-137, 'account error');
1755
+        xml_error(-137, 'account error');
1756 1756
     }
1757 1757
     // Create new account
1758 1758
     $unrestricted_role = array_search('community member', user_roles(true));
1759 1759
 
1760 1760
     $newUser = array(
1761
-      'name' => $unique_name,
1762
-      'pass' => $params['passwd_hash'], // note: passing a hash here requires ALL passwords to be hashed via hook prior to interacting with the hash stored in the db
1763
-      'mail' => $params['email_addr'],
1764
-      'status' => 1,
1765
-      'init' => $params['email_addr'],
1766
-      'roles' => array($unrestricted_role => ''),
1767
-      'boincuser_name' => $params['user_name'],
1768
-      'boinchash_flag' => TRUE,
1761
+        'name' => $unique_name,
1762
+        'pass' => $params['passwd_hash'], // note: passing a hash here requires ALL passwords to be hashed via hook prior to interacting with the hash stored in the db
1763
+        'mail' => $params['email_addr'],
1764
+        'status' => 1,
1765
+        'init' => $params['email_addr'],
1766
+        'roles' => array($unrestricted_role => ''),
1767
+        'boincuser_name' => $params['user_name'],
1768
+        'boinchash_flag' => TRUE,
1769 1769
     );
1770 1770
 
1771 1771
     // Create the drupal user. If the drupal user cannot be created,
@@ -1773,17 +1773,17 @@  discard block
 block discarded – undo
1773 1773
     // The user is created in the 'insert' op in hook_user.
1774 1774
     $user = user_save(null, $newUser);
1775 1775
     if (!$user) {
1776
-      watchdog('boincuser', 'create_account: Failed to create Drupal user account for @email', array('@email' => $params['email_addr']), WATCHDOG_WARNING);
1777
-      xml_error(-137, 'error creating BOINC account');
1776
+        watchdog('boincuser', 'create_account: Failed to create Drupal user account for @email', array('@email' => $params['email_addr']), WATCHDOG_WARNING);
1777
+        xml_error(-137, 'error creating BOINC account');
1778 1778
     }// if drupal user created.
1779 1779
 
1780 1780
     $output = array('authenticator' => $user->boincuser_account_key);
1781
-  }// if existing user found.
1781
+    }// if existing user found.
1782 1782
 
1783
-  // Output authenticator
1784
-  echo " <account_out>\n";
1785
-  echo "   <authenticator>{$output['authenticator']}</authenticator>\n";
1786
-  echo "</account_out>\n";
1783
+    // Output authenticator
1784
+    echo " <account_out>\n";
1785
+    echo "   <authenticator>{$output['authenticator']}</authenticator>\n";
1786
+    echo "</account_out>\n";
1787 1787
 }
1788 1788
 
1789 1789
 /**
@@ -1791,166 +1791,166 @@  discard block
 block discarded – undo
1791 1791
  * account is created using the BOINC clinet.
1792 1792
  */
1793 1793
 function boincuser_account_finish() {
1794
-  global $user;
1794
+    global $user;
1795 1795
 
1796
-  $authtoken = isset($_GET['auth']) ? $_GET['auth'] : '';
1796
+    $authtoken = isset($_GET['auth']) ? $_GET['auth'] : '';
1797 1797
 
1798
-  // Ensure there is a authentication token before continuing
1799
-  if (empty($authtoken)) {
1798
+    // Ensure there is a authentication token before continuing
1799
+    if (empty($authtoken)) {
1800 1800
     drupal_not_found();
1801 1801
     return ;
1802
-  }
1802
+    }
1803 1803
 
1804
-  if (strlen($authtoken) != 32) {
1804
+    if (strlen($authtoken) != 32) {
1805 1805
     drupal_set_message(bts('ERROR: There is no account with that authenticator.', array(), NULL, 'boinc:account-finish'), 'error');
1806 1806
     drupal_goto();
1807
-  }
1807
+    }
1808 1808
 
1809
-  require_boinc('boinc_db');
1810
-  $boinc_user = BoincUser::lookup("authenticator='".addslashes($authtoken)."'");
1811
-  if (!$boinc_user) {
1809
+    require_boinc('boinc_db');
1810
+    $boinc_user = BoincUser::lookup("authenticator='".addslashes($authtoken)."'");
1811
+    if (!$boinc_user) {
1812 1812
     drupal_set_message(bts('ERROR: There is no account with that authenticator.', array(), NULL, 'boinc:account-finish'), 'error');
1813 1813
     drupal_goto();
1814
-  }
1815
-  $user = user_load(get_drupal_id($boinc_user->id));
1814
+    }
1815
+    $user = user_load(get_drupal_id($boinc_user->id));
1816 1816
 
1817
-  if (!$user) {
1817
+    if (!$user) {
1818 1818
     drupal_set_message(bts('ERROR: There was a problem loading your account. Try logging in with your user name and password.', array(), NULL, 'boinc:account-finish'), 'error');
1819 1819
     drupal_goto();
1820
-  }
1820
+    }
1821 1821
 
1822
-  // Lookup path to custom account finish page
1823
-  $customaccountfinishpath = drupal_lookup_path('source', variable_get('boinc_weboptions_accountfinish', '') );
1824
-  if ( menu_valid_path(array('link_path' => $customaccountfinishpath)) ) {
1822
+    // Lookup path to custom account finish page
1823
+    $customaccountfinishpath = drupal_lookup_path('source', variable_get('boinc_weboptions_accountfinish', '') );
1824
+    if ( menu_valid_path(array('link_path' => $customaccountfinishpath)) ) {
1825 1825
     $node = menu_get_object('node', 1, $customaccountfinishpath);
1826 1826
     if ($node) {
1827
-      return node_page_view($node);
1827
+        return node_page_view($node);
1828
+    }
1828 1829
     }
1829
-  }
1830 1830
 
1831
-  // open links in new window
1832
-  $options = array(
1831
+    // open links in new window
1832
+    $options = array(
1833 1833
     'attributes' => array( 'target' => '_blank' ),
1834
-  );
1834
+    );
1835 1835
 
1836
-  // Check moderation page exists
1837
-  $moderationpath = drupal_lookup_path('source', variable_get('boinc_weboptions_moderationpage', '') );
1838
-  if ( menu_valid_path(array('link_path' => $moderationpath)) ) {
1836
+    // Check moderation page exists
1837
+    $moderationpath = drupal_lookup_path('source', variable_get('boinc_weboptions_moderationpage', '') );
1838
+    if ( menu_valid_path(array('link_path' => $moderationpath)) ) {
1839 1839
     $modsentence = bts('Please note: user profiles are subject to !moderation.', array('!moderation' => l(bts('moderation', array(), NULL, 'boinc:account-finish'), $moderationpath, $options)), NULL, 'boinc:account-finish');
1840
-  } else {
1840
+    } else {
1841 1841
     $modsentence = bts('Please note: user profiles are subject to moderation.', array(), NULL, 'boinc:account-finish');
1842
-  }
1842
+    }
1843 1843
 
1844
-  $username = $user->boincuser_name;
1845
-  $site_name = variable_get('site_name', 'Drupal-BOINC');
1846
-  $output = "<p>" . bts('Thank you @user_name for joining @site_name. Your account has been created. Your BOINC client should start working on assigned tasks soon, without any additional action or configuration. Please visit the links below for more information and additional options. (Links will open in a new window.)',
1847
-  array(
1844
+    $username = $user->boincuser_name;
1845
+    $site_name = variable_get('site_name', 'Drupal-BOINC');
1846
+    $output = "<p>" . bts('Thank you @user_name for joining @site_name. Your account has been created. Your BOINC client should start working on assigned tasks soon, without any additional action or configuration. Please visit the links below for more information and additional options. (Links will open in a new window.)',
1847
+    array(
1848 1848
     '@user_name' => $username,
1849 1849
     '@site_name' => $site_name,
1850
-  ), NULL, 'boinc:account-finish') . "</p>";
1850
+    ), NULL, 'boinc:account-finish') . "</p>";
1851 1851
 
1852
-  $links = array(
1852
+    $links = array(
1853 1853
     array(
1854
-      'data' => bts('Change your username at !community_preferences.', array(
1854
+        'data' => bts('Change your username at !community_preferences.', array(
1855 1855
         '!community_preferences' => l(bts('Community Preferences', array(), NULL, 'boinc:account-fininsh'), 'account/prefs/community', $options),
1856
-      ), NULL, 'boinc:account-finish'),
1857
-      'children' => array(
1856
+        ), NULL, 'boinc:account-finish'),
1857
+        'children' => array(
1858 1858
         bts('Your username is used to identify yourself to other volunteers on this Web site.', array(), NULL, 'boinc:account-finish'),
1859 1859
         bts('In addition, you may set your account\'s default language and adjust notification settings.', array(), NULL, 'boinc:account-finish'),
1860
-      ),
1860
+        ),
1861 1861
     ),
1862 1862
     array(
1863
-      'data' => bts('Change your !computing_preferences.', array(
1863
+        'data' => bts('Change your !computing_preferences.', array(
1864 1864
         '!computing_preferences' => l(bts('Computing Preferences', array(), NULL, 'boinc:account-finish'), 'account/prefs', $options),
1865
-      ), NULL, 'boinc:account-finish'),
1866
-      'children' => array(
1865
+        ), NULL, 'boinc:account-finish'),
1866
+        'children' => array(
1867 1867
         bts('You may adjust how much CPU, RAM, and Disk space the BOINC client is allowed to use for tasks on your computer.', array(), NULL, 'boinc:account-finish'),
1868 1868
         bts('By default, you will run @site_name tasks without any additional configuration.', array(
1869
-          '@site_name' => $site_name,
1869
+            '@site_name' => $site_name,
1870 1870
         ), NULL, 'boinc:account-finish'),
1871 1871
         bts('It is recommended new volunteers leave the default settings until they gain experience running some tasks. Ask questions in the !forums to get advice before making changes to a setting you don\'t understand.', array(
1872
-          '!forums' => l(bts('forums', array(), NULL, 'boinc:account-finish'), 'community/forum', $options),
1872
+            '!forums' => l(bts('forums', array(), NULL, 'boinc:account-finish'), 'community/forum', $options),
1873 1873
         ), NULL, 'boinc:account-finish'),
1874
-      ),
1874
+        ),
1875 1875
     ),
1876 1876
     array(
1877 1877
         'data' => bts('Create a !user_profile.', array(
1878
-          '!user_profile' => l(bts('User Profile', array(), NULL, 'boinc:account-finish'), '/account/profile/edit', $options),
1878
+            '!user_profile' => l(bts('User Profile', array(), NULL, 'boinc:account-finish'), '/account/profile/edit', $options),
1879 1879
         ), NULL, 'boinc:account-finish'),
1880
-      'children' => array(
1880
+        'children' => array(
1881 1881
         bts('A user profile will inform other volunteers who you are and why you joined @site_name.', array(
1882
-          '@site_name' => $site_name,
1882
+            '@site_name' => $site_name,
1883 1883
         ), NULL, 'boinc:account-finish'),
1884 1884
         $modsentence,
1885
-      ),
1885
+        ),
1886 1886
     ),
1887 1887
     array(
1888
-      'data' => bts('Join a !team.', array(
1888
+        'data' => bts('Join a !team.', array(
1889 1889
         '!team' => l(bts('Team', array(), NULL, 'boinc:account-finish'), '/community/teams', $options),
1890
-      ), NULL, 'boinc:account-finish'),
1891
-      'children' => array(
1890
+        ), NULL, 'boinc:account-finish'),
1891
+        'children' => array(
1892 1892
         bts('You may join a team, made up of other volunteers.', array(), NULL, 'boinc:account-finish'),
1893
-      ),
1893
+        ),
1894 1894
     ),
1895 1895
     array(
1896
-      'data' => bts('Go to your !account_dashboard.', array(
1896
+        'data' => bts('Go to your !account_dashboard.', array(
1897 1897
         '!account_dashboard'=> l(bts('Account Dashboard', array(), NULL, 'boinc:account-finish'), 'account/dashboard', $options),
1898
-      ), NULL, 'boinc:account-finish'),
1899
-      'children' => array(
1898
+        ), NULL, 'boinc:account-finish'),
1899
+        'children' => array(
1900 1900
         bts('Your account dashboard has information and links about your computer(s) and task(s) assigned.', array(), NULL, 'boinc:account-finish'),
1901
-      ),
1901
+        ),
1902 1902
     ),
1903 1903
     array(
1904
-      'data' => bts('Visit our !help pages.', array(
1904
+        'data' => bts('Visit our !help pages.', array(
1905 1905
         '!help' => l(bts('Help', array(), NULL, 'boinc:account-finish'), '/help', $options)
1906
-      ), NULL, 'boinc:account-finish'),
1907
-      'children' => array(
1906
+        ), NULL, 'boinc:account-finish'),
1907
+        'children' => array(
1908 1908
         bts('Ask for help in our community\'s !forums.', array(
1909
-          '!forums' => l(bts('forums', array(), NULL, 'boinc:account-finish'), 'community/forum', $options)
1909
+            '!forums' => l(bts('forums', array(), NULL, 'boinc:account-finish'), 'community/forum', $options)
1910 1910
         ), NULL, 'boinc:account-finish'),
1911
-      ),
1911
+        ),
1912 1912
     ),
1913
-  );
1913
+    );
1914 1914
 
1915
-  //List of links
1916
-  $output .= theme_item_list($links, $title = NULL, $type='ul');
1915
+    //List of links
1916
+    $output .= theme_item_list($links, $title = NULL, $type='ul');
1917 1917
 
1918
-  return $output;
1918
+    return $output;
1919 1919
 }
1920 1920
 
1921 1921
 /**
1922 1922
  * Determine if the user has permission to control community access
1923 1923
  */
1924 1924
 function boincuser_moderate_community_access() {
1925
-  if (user_access('assign community member role')
1925
+    if (user_access('assign community member role')
1926 1926
   OR user_access('assign all roles')) {
1927 1927
     return TRUE;
1928
-  }
1929
-  return FALSE;
1928
+    }
1929
+    return FALSE;
1930 1930
 }
1931 1931
 
1932 1932
 /**
1933 1933
  * Get the count of items in the moderation queue
1934 1934
  */
1935 1935
 function boincuser_moderation_queue_count($caller = 'user') {
1936
-  $allowed = FALSE;
1937
-  switch ($caller) {
1938
-  case 'cron':
1936
+    $allowed = FALSE;
1937
+    switch ($caller) {
1938
+    case 'cron':
1939 1939
     $allowed = TRUE;
1940 1940
     break;
1941
-  case 'user':
1941
+    case 'user':
1942 1942
   default:
1943 1943
     $allowed = user_access('edit any profile content');
1944
-  }
1945
-  if ($allowed) {
1944
+    }
1945
+    if ($allowed) {
1946 1946
     return db_result(db_query("
1947 1947
       SELECT COUNT(*)
1948 1948
       FROM {node}
1949 1949
       WHERE type = 'profile'
1950 1950
       AND moderate = 1"
1951 1951
     ));
1952
-  }
1953
-  return NULL;
1952
+    }
1953
+    return NULL;
1954 1954
 }
1955 1955
 
1956 1956
 /**
@@ -1959,43 +1959,43 @@  discard block
 block discarded – undo
1959 1959
  * than through the user account info form.
1960 1960
  */
1961 1961
 function boincuser_control($uid = NULL, $action = NULL) {
1962
-  if (!$uid OR !$account = user_load($uid)) {
1962
+    if (!$uid OR !$account = user_load($uid)) {
1963 1963
     // What are you even doing here...
1964 1964
     return FALSE;
1965
-  }
1966
-  switch ($action) {
1967
-  case 'ban':
1965
+    }
1966
+    switch ($action) {
1967
+    case 'ban':
1968 1968
     if (boincuser_moderate_community_access()) {
1969
-      $penalty_period = variable_get('boinc_penalty_period', 7*24*60*60);
1970
-      $boincuser_record = array(
1969
+        $penalty_period = variable_get('boinc_penalty_period', 7*24*60*60);
1970
+        $boincuser_record = array(
1971 1971
         'uid' => $uid,
1972 1972
         'penalty_expiration' => time() + $penalty_period,
1973
-      );
1974
-      drupal_write_record('boincuser', $boincuser_record, 'uid');
1975
-      $community_role = array_search('community member', user_roles(true));
1976
-      if (isset($account->roles[$community_role])) {
1973
+        );
1974
+        drupal_write_record('boincuser', $boincuser_record, 'uid');
1975
+        $community_role = array_search('community member', user_roles(true));
1976
+        if (isset($account->roles[$community_role])) {
1977 1977
         unset($account->roles[$community_role]);
1978 1978
         user_save($account, array('roles' => $account->roles));
1979
-      }
1979
+        }
1980 1980
     }
1981 1981
     break;
1982
-  case 'lift-ban':
1982
+    case 'lift-ban':
1983 1983
     if (boincuser_moderate_community_access()) {
1984
-      $boincuser_record = array(
1984
+        $boincuser_record = array(
1985 1985
         'uid' => $uid,
1986 1986
         'penalty_expiration' => 0,
1987
-      );
1988
-      drupal_write_record('boincuser', $boincuser_record, 'uid');
1989
-      $community_role = array_search('community member', user_roles(true));
1990
-      if (!isset($account->roles[$community_role])) {
1987
+        );
1988
+        drupal_write_record('boincuser', $boincuser_record, 'uid');
1989
+        $community_role = array_search('community member', user_roles(true));
1990
+        if (!isset($account->roles[$community_role])) {
1991 1991
         $account->roles[$community_role] = 'community member';
1992 1992
         user_save($account, array('roles' => $account->roles));
1993
-      }
1993
+        }
1994 1994
     }
1995 1995
     break;
1996
-  default:
1996
+    default:
1997 1997
   }
1998
-  drupal_goto("account/{$account->uid}");
1998
+    drupal_goto("account/{$account->uid}");
1999 1999
 }
2000 2000
 
2001 2001
 /**
@@ -2003,29 +2003,29 @@  discard block
 block discarded – undo
2003 2003
  * moderation flag.
2004 2004
  */
2005 2005
 function boincuser_moderate_profile_approve($account) {
2006
-  $node = new stdClass;
2007
-  $node->type = 'profile';
2008
-  $node->language = '';
2009
-  $nid = content_profile_profile_exists($node, $account->uid);
2010
-  $profile = node_load($nid);
2011
-  $profile->moderate = 0;
2012
-  $profile->status = 1;
2013
-  node_save($profile);
2014
-  drupal_set_message('This profile has been marked as approved.');
2015
-  drupal_goto();
2006
+    $node = new stdClass;
2007
+    $node->type = 'profile';
2008
+    $node->language = '';
2009
+    $nid = content_profile_profile_exists($node, $account->uid);
2010
+    $profile = node_load($nid);
2011
+    $profile->moderate = 0;
2012
+    $profile->status = 1;
2013
+    node_save($profile);
2014
+    drupal_set_message('This profile has been marked as approved.');
2015
+    drupal_goto();
2016 2016
 }
2017 2017
 
2018 2018
 /**
2019 2019
  * Mark a user profile as rejected and notify the user of the reason.
2020 2020
  */
2021 2021
 function boincuser_moderate_profile_reject($uid, $reason = '') {
2022
-  $account = user_load($uid);
2023
-  $node = new stdClass;
2024
-  $node->type = 'profile';
2025
-  $node->language = '';
2026
-  $nid = content_profile_profile_exists($node, $uid);
2027
-  $profile = node_load($nid);
2028
-  if ($profile->nid) {
2022
+    $account = user_load($uid);
2023
+    $node = new stdClass;
2024
+    $node->type = 'profile';
2025
+    $node->language = '';
2026
+    $nid = content_profile_profile_exists($node, $uid);
2027
+    $profile = node_load($nid);
2028
+    if ($profile->nid) {
2029 2029
     global $user;
2030 2030
     global $base_url;
2031 2031
     global $base_path;
@@ -2036,64 +2036,64 @@  discard block
 block discarded – undo
2036 2036
     $profile->status = 0;
2037 2037
     node_save($profile);
2038 2038
     $settings = array(
2039
-      'from' => '',
2040
-      'subject' => "Profile moderation at {$site_name}",
2041
-      'message' => ''
2042
-      . "{$account->boincuser_name},\n"
2043
-      . "\n"
2044
-      . "{$moderator->boincuser_name} has rejected your profile at"
2045
-      . " {$site_name} for the following reason: \n"
2046
-      . "\n"
2047
-      . "{$reason}\n"
2048
-      . "\n"
2049
-      . "\n"
2050
-      . "Since it has not been approved, your profile is not visible to other"
2051
-      . " {$site_name} users. Please make the needed changes here:\n"
2052
-      . "\n"
2053
-      . "{$site_url}account/profile \n"
2054
-      . "\n"
2055
-      . "Thanks, \n"
2056
-      . "\n"
2057
-      . "{$site_name} support team",
2039
+        'from' => '',
2040
+        'subject' => "Profile moderation at {$site_name}",
2041
+        'message' => ''
2042
+        . "{$account->boincuser_name},\n"
2043
+        . "\n"
2044
+        . "{$moderator->boincuser_name} has rejected your profile at"
2045
+        . " {$site_name} for the following reason: \n"
2046
+        . "\n"
2047
+        . "{$reason}\n"
2048
+        . "\n"
2049
+        . "\n"
2050
+        . "Since it has not been approved, your profile is not visible to other"
2051
+        . " {$site_name} users. Please make the needed changes here:\n"
2052
+        . "\n"
2053
+        . "{$site_url}account/profile \n"
2054
+        . "\n"
2055
+        . "Thanks, \n"
2056
+        . "\n"
2057
+        . "{$site_name} support team",
2058 2058
     );
2059 2059
     rules_action_mail_to_user($account, $settings);
2060 2060
     drupal_set_message('This profile has been marked as rejected.');
2061
-  }
2062
-  drupal_goto();
2061
+    }
2062
+    drupal_goto();
2063 2063
 }
2064 2064
 
2065 2065
 /**
2066 2066
  * Ban a user and send a notification of the reason.
2067 2067
  */
2068 2068
 function boincuser_moderate_user_ban($uid, $reason = '', $duration = '') {
2069
-  if (user_access('assign community member role')
2069
+    if (user_access('assign community member role')
2070 2070
   OR user_access('assign all roles')) {
2071 2071
     $account = user_load($uid);
2072 2072
     if ($account->uid) {
2073
-      module_load_include('inc', 'rules', 'modules/system.rules');
2074
-      if ($duration === '') {
2073
+        module_load_include('inc', 'rules', 'modules/system.rules');
2074
+        if ($duration === '') {
2075 2075
         $duration = variable_get('boinc_penalty_period', 7*24*60*60);
2076
-      }
2077
-      $penalty_expiration = ($duration > 0) ? time() + $duration : 4294967295;
2078
-      $boincuser_record = array(
2076
+        }
2077
+        $penalty_expiration = ($duration > 0) ? time() + $duration : 4294967295;
2078
+        $boincuser_record = array(
2079 2079
         'uid' => $uid,
2080 2080
         'penalty_expiration' => $penalty_expiration,
2081
-      );
2082
-      drupal_write_record('boincuser', $boincuser_record, 'uid');
2081
+        );
2082
+        drupal_write_record('boincuser', $boincuser_record, 'uid');
2083 2083
       
2084
-      $community_role = array_search('community member', user_roles(true));
2085
-      if (isset($account->roles[$community_role])) {
2084
+        $community_role = array_search('community member', user_roles(true));
2085
+        if (isset($account->roles[$community_role])) {
2086 2086
         unset($account->roles[$community_role]);
2087 2087
         user_save($account, array('roles' => $account->roles));
2088
-      }
2088
+        }
2089 2089
       
2090
-      global $user;
2091
-      global $base_url;
2092
-      global $base_path;
2093
-      $site_name = variable_get('site_name', 'Drupal-BOINC');
2094
-      $site_url = $base_url . $base_path;
2095
-      $moderator = user_load($user->uid);
2096
-      $settings = array(
2090
+        global $user;
2091
+        global $base_url;
2092
+        global $base_path;
2093
+        $site_name = variable_get('site_name', 'Drupal-BOINC');
2094
+        $site_url = $base_url . $base_path;
2095
+        $moderator = user_load($user->uid);
2096
+        $settings = array(
2097 2097
         'from' => '',
2098 2098
         'subject' => "User moderation at {$site_name}",
2099 2099
         'message' => ''
@@ -2114,12 +2114,12 @@  discard block
 block discarded – undo
2114 2114
         . "Thanks, \n"
2115 2115
         . "\n"
2116 2116
         . "{$site_name} support team",
2117
-      );
2118
-      rules_action_mail_to_user($account, $settings);
2119
-      drupal_set_message('This user has been banned.');
2117
+        );
2118
+        rules_action_mail_to_user($account, $settings);
2119
+        drupal_set_message('This user has been banned.');
2120 2120
     }
2121
-  }
2122
-  drupal_goto();
2121
+    }
2122
+    drupal_goto();
2123 2123
 }
2124 2124
 
2125 2125
 
@@ -2131,15 +2131,15 @@  discard block
 block discarded – undo
2131 2131
  *
2132 2132
  */
2133 2133
 function boincuser_get_weak_auth($boinc_id = null) {
2134
-  if (!$boinc_id) {
2134
+    if (!$boinc_id) {
2135 2135
     global $user;
2136 2136
     $account = user_load($user->uid);
2137 2137
     $boinc_id = $account->boincuser_id;
2138
-  }
2138
+    }
2139 2139
   
2140
-  $boinc_user = boincuser_load($account->boincuser_id);
2140
+    $boinc_user = boincuser_load($account->boincuser_id);
2141 2141
   
2142
-  return weak_auth($boinc_user);
2142
+    return weak_auth($boinc_user);
2143 2143
 }
2144 2144
 
2145 2145
 /**
@@ -2148,75 +2148,75 @@  discard block
 block discarded – undo
2148 2148
  * Drupal User so must be inserted into comments, etc. (not so by default)
2149 2149
  */
2150 2150
 function boincuser_get_user_profile_image($uid, $avatar = TRUE) {
2151
-  // Though the function name implies otherwise, get the avatar by default
2152
-  $image_field = ($avatar) ? 'field_image_fid' : 'field_profile_image_fid';
2153
-  $image_fid = db_result(db_query("
2151
+    // Though the function name implies otherwise, get the avatar by default
2152
+    $image_field = ($avatar) ? 'field_image_fid' : 'field_profile_image_fid';
2153
+    $image_fid = db_result(db_query("
2154 2154
     SELECT ctp.%s
2155 2155
     FROM {content_type_profile} ctp
2156 2156
     INNER JOIN {node} n ON ctp.nid = n.nid
2157 2157
     WHERE n.uid = %d AND n.type = '%s'",
2158 2158
     $image_field, $uid, 'profile'));
2159
-  $user_image['image'] = field_file_load($image_fid);
2160
-  if (!$user_image['image']['filepath']) {
2159
+    $user_image['image'] = field_file_load($image_fid);
2160
+    if (!$user_image['image']['filepath']) {
2161 2161
     // Load the default image if one does not exist
2162 2162
     $account = user_load($uid);
2163 2163
     if ($avatar AND module_exists('gravatar') AND user_access('use gravatar', $account) AND $account->gravatar) {
2164
-      // Use a Gravatar rather than the system default image
2165
-      $options = array(
2164
+        // Use a Gravatar rather than the system default image
2165
+        $options = array(
2166 2166
         'size' => 100,
2167 2167
         'rating' => 'G',
2168
-      );
2169
-      // Get the Gravatar URL and see if the image exists
2170
-      $url = gravatar_get_gravatar($account->mail, $options);
2171
-      $headers = @get_headers($url);
2172
-      if (preg_match("|200|", $headers[0])) {
2168
+        );
2169
+        // Get the Gravatar URL and see if the image exists
2170
+        $url = gravatar_get_gravatar($account->mail, $options);
2171
+        $headers = @get_headers($url);
2172
+        if (preg_match("|200|", $headers[0])) {
2173 2173
         return $url;
2174
-      }
2174
+        }
2175 2175
     }
2176 2176
     // Get default image if nothing else works
2177 2177
     $content_node_widget_settings = db_result(db_query("SELECT widget_settings FROM {content_node_field_instance} WHERE field_name = '%s'", ($avatar ? 'field_image' : 'field_profile_image')));
2178 2178
     $content_node_widget_settings = unserialize($content_node_widget_settings);
2179 2179
     $user_image['image'] = $content_node_widget_settings['default_image'];
2180
-  }
2181
-  $user = user_load($uid);
2182
-  // Use boinc username for image alt/title attributes
2183
-  $user_image['alt'] = $user->boincuser_name;
2184
-  return $user_image;
2180
+    }
2181
+    $user = user_load($uid);
2182
+    // Use boinc username for image alt/title attributes
2183
+    $user_image['alt'] = $user->boincuser_name;
2184
+    return $user_image;
2185 2185
 }
2186 2186
 
2187 2187
 /**
2188 2188
  * Generate a table of a user's projects
2189 2189
  */
2190 2190
 function boincuser_get_projects_table($account = null) {
2191
-  if ($account AND is_numeric($account)) {
2191
+    if ($account AND is_numeric($account)) {
2192 2192
     $account = user_load($account);
2193
-  }
2194
-  $projects = boincuser_get_projects($account);
2195
-  if (!$projects) return bts('no projects...', array(), NULL, 'boinc:account-dashboard');
2193
+    }
2194
+    $projects = boincuser_get_projects($account);
2195
+    if (!$projects) return bts('no projects...', array(), NULL, 'boinc:account-dashboard');
2196 2196
   
2197
-  $output = '';
2198
-  $output .= '<table class="user-projects">' . "\n";
2199
-  $output .= '<thead>' . "\n";
2200
-  $output .= '  <tr>' . "\n";
2201
-  $output .= '    <th>' . bts('Name', array(), NULL, 'boinc:project-name:-1:ignoreoverwrite') . '</th>' . "\n";
2202
-  $output .= '    <th class="numeric">' . bts('Avg credit', array(), NULL, 'boinc:account-dashboard') . '</th>' . "\n";
2203
-  $output .= '    <th class="numeric">' . bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits') . '</th>' . "\n";
2204
-  $output .= '  </tr>' . "\n";
2205
-  $output .= '</thead>' . "\n";
2206
-  $output .= '<tbody>' . "\n";
2207
-  foreach ($projects AS $project) {
2197
+    $output = '';
2198
+    $output .= '<table class="user-projects">' . "\n";
2199
+    $output .= '<thead>' . "\n";
2200
+    $output .= '  <tr>' . "\n";
2201
+    $output .= '    <th>' . bts('Name', array(), NULL, 'boinc:project-name:-1:ignoreoverwrite') . '</th>' . "\n";
2202
+    $output .= '    <th class="numeric">' . bts('Avg credit', array(), NULL, 'boinc:account-dashboard') . '</th>' . "\n";
2203
+    $output .= '    <th class="numeric">' . bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits') . '</th>' . "\n";
2204
+    $output .= '  </tr>' . "\n";
2205
+    $output .= '</thead>' . "\n";
2206
+    $output .= '<tbody>' . "\n";
2207
+    foreach ($projects AS $project) {
2208 2208
     $url = rtrim($project->url, '/') . '/show_user.php?userid=' . $project->id;
2209 2209
     $output .= '  <tr>' . "\n";
2210 2210
     $output .= '    <td>' . l($project->name, $url) . '</td>' . "\n";
2211 2211
     $output .= '    <td class="numeric">' . boincwork_format_stats((float) $project->expavg_credit) . '</td>' . "\n"; 
2212 2212
     $output .= '    <td class="numeric">' . boincwork_format_stats((float) $project->total_credit) . '</td>' . "\n";
2213 2213
     $output .= '  </tr>' . "\n";
2214
-  }
2215
-  $output .= '</tbody>' . "\n";
2216
-  $output .= '</table>' . "\n";
2217
-  $more_link = ($account) ? "user/{$account->uid}/stats" : 'account/stats';
2218
-  //$output .= "<div class=\"more-link\"><a href=\"{$more_link}\">More stats</a></div>" . "\n";
2219
-  return $output;
2214
+    }
2215
+    $output .= '</tbody>' . "\n";
2216
+    $output .= '</table>' . "\n";
2217
+    $more_link = ($account) ? "user/{$account->uid}/stats" : 'account/stats';
2218
+    //$output .= "<div class=\"more-link\"><a href=\"{$more_link}\">More stats</a></div>" . "\n";
2219
+    return $output;
2220 2220
 }
2221 2221
 
2222 2222
 /**
@@ -2224,25 +2224,25 @@  discard block
 block discarded – undo
2224 2224
  */
2225 2225
 function boincuser_get_stats_user_data($cpid = null) {
2226 2226
   
2227
-  // [TODO] Set this stuff in site config!
2228
-  $stats_server = 'stats.gridrepublic.org';
2229
-  $stats_rpc = 'rpc/get_user.php';
2227
+    // [TODO] Set this stuff in site config!
2228
+    $stats_server = 'stats.gridrepublic.org';
2229
+    $stats_rpc = 'rpc/get_user.php';
2230 2230
   
2231
-  // Construct query string
2232
-  $get = array(
2231
+    // Construct query string
2232
+    $get = array(
2233 2233
     'cpid' => $cpid
2234
-  );
2235
-  $args = array();
2236
-  foreach ($get as $arg => $value) $args[] = "{$arg}=" . rawurlencode($value);
2237
-  $query = '?' . implode('&', $args);
2234
+    );
2235
+    $args = array();
2236
+    foreach ($get as $arg => $value) $args[] = "{$arg}=" . rawurlencode($value);
2237
+    $query = '?' . implode('&', $args);
2238 2238
   
2239
-  // Load XML from RPC
2240
-  $target_url = "http://{$stats_server}/{$stats_rpc}{$query}";
2241
-  $result = drupal_http_request($target_url);
2242
-  if (in_array($result->code, array(200, 304))) {
2239
+    // Load XML from RPC
2240
+    $target_url = "http://{$stats_server}/{$stats_rpc}{$query}";
2241
+    $result = drupal_http_request($target_url);
2242
+    if (in_array($result->code, array(200, 304))) {
2243 2243
     return simplexml_load_string($result->data);
2244
-  }
2245
-  return NULL;
2244
+    }
2245
+    return NULL;
2246 2246
 }
2247 2247
 
2248 2248
 /**
@@ -2250,15 +2250,15 @@  discard block
 block discarded – undo
2250 2250
  */
2251 2251
 function boincuser_get_projects($account = null) {
2252 2252
   
2253
-  // Use the current user by default
2254
-  if (!$account) {
2253
+    // Use the current user by default
2254
+    if (!$account) {
2255 2255
     global $user;
2256 2256
     $account = user_load($user->uid);
2257
-  }
2257
+    }
2258 2258
   
2259
-  $account_stats = boincuser_get_stats_user_data($account->boincuser_cpid);
2259
+    $account_stats = boincuser_get_stats_user_data($account->boincuser_cpid);
2260 2260
   
2261
-  return ($account_stats AND isset($account_stats->project)) ? $account_stats->project : null;
2261
+    return ($account_stats AND isset($account_stats->project)) ? $account_stats->project : null;
2262 2262
 }
2263 2263
 
2264 2264
 
@@ -2266,11 +2266,11 @@  discard block
 block discarded – undo
2266 2266
  * Get the links to display under the user profile
2267 2267
  */
2268 2268
 function boincuser_get_profile_links($uid) {
2269
-  global $user;
2270
-  $account = user_load($uid);
2271
-  $profile = content_profile_load('profile', $account->uid);
2272
-  $output = '';
2273
-  if ($profile) {
2269
+    global $user;
2270
+    $account = user_load($uid);
2271
+    $profile = content_profile_load('profile', $account->uid);
2272
+    $output = '';
2273
+    if ($profile) {
2274 2274
     $profile_is_approved = ($profile->status AND !$profile->moderate);
2275 2275
     $user_is_moderator = user_access('edit any profile content');
2276 2276
     $is_own_profile = ($user->uid == $account->uid);
@@ -2278,15 +2278,15 @@  discard block
 block discarded – undo
2278 2278
     $links = array();
2279 2279
     
2280 2280
     if ($profile->moderate AND $user_is_moderator) {
2281
-      $links['approve_profile'] = array(
2281
+        $links['approve_profile'] = array(
2282 2282
         'title' => bts('Approve profile', array(), NULL, 'boinc:moderate-user'),
2283 2283
         'href' => "{$profile_moderation_path}/approve",
2284 2284
         'attributes' => array(
2285
-          'title' => bts('Approve this profile content', array(), NULL, 'boinc:moderate-user'),
2286
-          'class' => 'first primary tab',
2285
+            'title' => bts('Approve this profile content', array(), NULL, 'boinc:moderate-user'),
2286
+            'class' => 'first primary tab',
2287 2287
         )
2288
-      );
2289
-      /*$links['edit_profile'] = array(
2288
+        );
2289
+        /*$links['edit_profile'] = array(
2290 2290
         'title' => bts('Edit profile', array(), NULL, 'boinc:moderate-user'),
2291 2291
         'href' => "{$profile_moderation_path}/edit",
2292 2292
         'attributes' => array(
@@ -2294,27 +2294,27 @@  discard block
 block discarded – undo
2294 2294
           'class' => 'tab',
2295 2295
         )
2296 2296
       );*/
2297
-      $links['reject_profile'] = array(
2297
+        $links['reject_profile'] = array(
2298 2298
         'title' => bts('Reject profile', array(), NULL, 'boinc:moderate-user'),
2299 2299
         'href' => "{$profile_moderation_path}/reject",
2300 2300
         'attributes' => array(
2301
-          'title' => bts('Reject this profile content', array(), NULL, 'boinc:moderate-user'),
2302
-          'class' => 'tab',
2301
+            'title' => bts('Reject this profile content', array(), NULL, 'boinc:moderate-user'),
2302
+            'class' => 'tab',
2303 2303
         )
2304
-      );
2304
+        );
2305 2305
     }
2306 2306
     $output .= '<ul class="tab-list">';
2307 2307
     $count = 0;
2308 2308
     foreach ($links as $key => $link) {
2309
-      $output .= '<li class="' . (($count == 0) ? 'first primary ' : '') . 'tab">';
2310
-      $output .= l($link['title'], $link['href'], array('query' => drupal_get_destination()));
2311
-      $output .= '</li>';
2312
-      $count++;
2309
+        $output .= '<li class="' . (($count == 0) ? 'first primary ' : '') . 'tab">';
2310
+        $output .= l($link['title'], $link['href'], array('query' => drupal_get_destination()));
2311
+        $output .= '</li>';
2312
+        $count++;
2313 2313
     }
2314 2314
     $output .= '<li class="' . (($count) ? '' : 'first ') . 'last tab">' . flag_create_link('abuse_user', $account->uid) . '</li>';
2315 2315
     $output .= '</ul>';
2316
-  }
2317
-  return $output;
2316
+    }
2317
+    return $output;
2318 2318
 /*
2319 2319
 <ul class="tab-list">
2320 2320
   <li class="primary first tab">
@@ -2351,36 +2351,36 @@  discard block
 block discarded – undo
2351 2351
  */
2352 2352
 function boincuser_apachesolr_index_documents_alter(array &$documents, $entity, $entity_type, $env_id) {
2353 2353
 
2354
-  foreach ($documents as $document) {
2354
+    foreach ($documents as $document) {
2355 2355
     if ( $document->entity_type=='node' AND $document->bundle=='profile' ) {
2356
-      // Node information.
2357
-      $nid = $document->entity_id;
2358
-      $node = node_load($nid);
2359
-      $account = user_load($node->uid);
2360
-
2361
-      // Use boincuser name and not drupal user name
2362
-      $document->label = apachesolr_clean_text($account->boincuser_name);
2363
-      // Author information
2364
-      if ($node->uid == 0 || strlen($node->name) == 0) {
2356
+        // Node information.
2357
+        $nid = $document->entity_id;
2358
+        $node = node_load($nid);
2359
+        $account = user_load($node->uid);
2360
+
2361
+        // Use boincuser name and not drupal user name
2362
+        $document->label = apachesolr_clean_text($account->boincuser_name);
2363
+        // Author information
2364
+        if ($node->uid == 0 || strlen($node->name) == 0) {
2365 2365
         // @see user_validate_name(). !'0' === TRUE.
2366 2366
         $document->ss_name = '0';
2367
-      }
2368
-      else {
2367
+        }
2368
+        else {
2369 2369
         $document->ss_name = $account->boincuser_name;
2370 2370
         // We want the name to be searchable for keywords.
2371 2371
         $document->tos_name = $account->boincuser_name;
2372
-      }
2372
+        }
2373 2373
 
2374
-      // Rename "Profle" to "User"
2375
-      $document->bundle = "User";
2376
-      $document->bundle_name = "User";
2374
+        // Rename "Profle" to "User"
2375
+        $document->bundle = "User";
2376
+        $document->bundle_name = "User";
2377 2377
 
2378
-      // Replace the Solr document's created field with the date the user 
2379
-      // account was created. This replaces the node creation date typically 
2380
-      // used for indexing nodes.
2381
-      $document->ds_created = apachesolr_date_iso($account->created);
2378
+        // Replace the Solr document's created field with the date the user 
2379
+        // account was created. This replaces the node creation date typically 
2380
+        // used for indexing nodes.
2381
+        $document->ds_created = apachesolr_date_iso($account->created);
2382
+    }
2382 2383
     }
2383
-  }
2384 2384
 
2385 2385
 }
2386 2386
 
@@ -2392,23 +2392,23 @@  discard block
 block discarded – undo
2392 2392
  * Implementation of hook_privatemsg_name_lookup();
2393 2393
  */
2394 2394
 function boincuser_privatemsg_name_lookup($string) {
2395
-  // Get the BOINC ID from the name string, and lookup the
2396
-  // corresponding drupal user.
2397
-  $boincname = substr($string, 0, strrpos($string, '_'));
2398
-  $boincid = substr($string, strrpos($string, '_') + 1);
2399
-  $drupalid = get_drupal_id($boincid);
2400
-
2401
-  // Name has spaced replaced with special UTF-8 characters in
2402
-  // privatemsg module. We need to convert them back to spaces for the
2403
-  // check below.
2404
-  $boincname = preg_replace("/\\xc2\\xa0/", " ", $boincname);
2405
-  if ($drupalid>0) {
2395
+    // Get the BOINC ID from the name string, and lookup the
2396
+    // corresponding drupal user.
2397
+    $boincname = substr($string, 0, strrpos($string, '_'));
2398
+    $boincid = substr($string, strrpos($string, '_') + 1);
2399
+    $drupalid = get_drupal_id($boincid);
2400
+
2401
+    // Name has spaced replaced with special UTF-8 characters in
2402
+    // privatemsg module. We need to convert them back to spaces for the
2403
+    // check below.
2404
+    $boincname = preg_replace("/\\xc2\\xa0/", " ", $boincname);
2405
+    if ($drupalid>0) {
2406 2406
     if ($recipient = user_load(array('uid' => $drupalid))) {
2407
-      // Double-check that the loaded user matches both boincuser_id
2408
-      // and boincuser_name.
2409
-      if ( ($boincid == $recipient->boincuser_id) AND ($boincname == $recipient->boincuser_name) ) {
2407
+        // Double-check that the loaded user matches both boincuser_id
2408
+        // and boincuser_name.
2409
+        if ( ($boincid == $recipient->boincuser_id) AND ($boincname == $recipient->boincuser_name) ) {
2410 2410
         return $recipient;
2411
-      }
2411
+        }
2412
+    }
2412 2413
     }
2413
-  }
2414 2414
 }
Please login to merge, or discard this patch.