Passed
Push — master ( c8404f...0ee5c5 )
by
unknown
59s queued 20s
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,45 +1279,45 @@  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' => 0,
1312 1312
         '#prefix' => '<div id="captcha-password-reset">',
1313 1313
         '#suffix' => '</div>'
1314
-      );
1314
+        );
1315 1315
     }
1316 1316
 
1317 1317
     // Wrap action buttons for styling consistency
1318 1318
     $form['buttons']['form control tabs prefix'] = array(
1319
-      '#value' => '<ul class="form-control tab-list">',
1320
-      '#weight' => 1001,
1319
+        '#value' => '<ul class="form-control tab-list">',
1320
+        '#weight' => 1001,
1321 1321
     );
1322 1322
     $form['buttons']['submit'] = $form['submit'];
1323 1323
     $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
@@ -1325,26 +1325,26 @@  discard block
 block discarded – undo
1325 1325
     $form['buttons']['submit']['#suffix'] = '</li>';
1326 1326
     $form['buttons']['submit']['#weight'] = 1002;
1327 1327
     $form['buttons']['cancel'] = array(
1328
-      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/login') . '</li>',
1329
-      '#weight' => 1005,
1328
+        '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/login') . '</li>',
1329
+        '#weight' => 1005,
1330 1330
     );
1331 1331
     $form['buttons']['form control tabs suffix'] = array(
1332
-      '#value' => '</ul>',
1333
-      '#weight' => 1010,
1332
+        '#value' => '</ul>',
1333
+        '#weight' => 1010,
1334 1334
     );
1335 1335
     unset($form['submit']);
1336 1336
     
1337 1337
     // If the form is being submitted, use BOINC validation handler.
1338 1338
     if (isset($form_state['post']['name'])) {
1339
-      // Prepend the BOINC validation function to local validation
1340
-      array_unshift($form['#validate'], 'boincuser_request_pass_validate');
1339
+        // Prepend the BOINC validation function to local validation
1340
+        array_unshift($form['#validate'], 'boincuser_request_pass_validate');
1341 1341
     }
1342 1342
     break;
1343 1343
     
1344
-  case 'views_exposed_form':
1344
+    case 'views_exposed_form':
1345 1345
       $form['submit']['#value'] = bts('Search', array(), NULL, 'boinc:search-user');
1346 1346
     break;
1347
-  }
1347
+    }
1348 1348
 }
1349 1349
 
1350 1350
 /**
@@ -1352,10 +1352,10 @@  discard block
 block discarded – undo
1352 1352
  * built; this is called from boincuser_form_alter()
1353 1353
  */
1354 1354
 function boincuser_profile_node_form_after_build($form, &$form_state) {
1355
-  // Move to community prefs form
1356
-  $form_state['storage']['avatar'] = $form['field_image'];
1357
-  unset($form['field_image']);
1358
-  return $form;
1355
+    // Move to community prefs form
1356
+    $form_state['storage']['avatar'] = $form['field_image'];
1357
+    unset($form['field_image']);
1358
+    return $form;
1359 1359
 }
1360 1360
 
1361 1361
 /**
@@ -1363,8 +1363,8 @@  discard block
 block discarded – undo
1363 1363
  * @see http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_elements/6
1364 1364
  */
1365 1365
 function boincuser_elements() {
1366
-  $type['password_confirm']['#process'][] = 'boincuser_process_password_confirm';
1367
-  return $type;
1366
+    $type['password_confirm']['#process'][] = 'boincuser_process_password_confirm';
1367
+    return $type;
1368 1368
 }
1369 1369
 
1370 1370
 /**
@@ -1372,11 +1372,11 @@  discard block
 block discarded – undo
1372 1372
  * profile form
1373 1373
  */
1374 1374
 function boincuser_process_password_confirm($element) {
1375
-  // Check if parent element is "account".
1376
-  if ($element['#array_parents'][0] == 'account') {
1375
+    // Check if parent element is "account".
1376
+    if ($element['#array_parents'][0] == 'account') {
1377 1377
     $element['pass1']['#title'] = bts('Change password', array(), NULL, 'boinc:forgot-password');
1378
-  }
1379
-  return $element;
1378
+    }
1379
+    return $element;
1380 1380
 }
1381 1381
 
1382 1382
 /**
@@ -1384,42 +1384,42 @@  discard block
 block discarded – undo
1384 1384
  * Register theme functions for use in this module.
1385 1385
  */
1386 1386
 function boincuser_theme($existing, $type, $theme, $path) {
1387
-  return array(
1387
+    return array(
1388 1388
     'boincuser_user_pass' => array(
1389
-      'arguments' => array()
1389
+        'arguments' => array()
1390 1390
     )
1391
-  );
1391
+    );
1392 1392
 }
1393 1393
 
1394 1394
 /**
1395 1395
  * Implementation of hook_token_values
1396 1396
  */
1397 1397
 function boincuser_token_values($type, $object = NULL, $options = array()) {
1398
-  if ($type == 'user') {
1398
+    if ($type == 'user') {
1399 1399
     $account = user_load($object->uid);
1400 1400
     $tokens['display-name'] = $account->boincuser_name;
1401 1401
     return $tokens;
1402
-  }
1402
+    }
1403 1403
 }
1404 1404
 
1405 1405
 /**
1406 1406
  * Implementation of hook_token_list
1407 1407
  */
1408 1408
 function boincuser_token_list($type = 'all') {
1409
-  if ($type == 'user' || $type == 'all') {
1409
+    if ($type == 'user' || $type == 'all') {
1410 1410
     $tokens['user']['display-name']      = t("The user's name that should be displayed");
1411 1411
     return $tokens;
1412
-  }
1412
+    }
1413 1413
 }
1414 1414
 
1415 1415
 /**
1416 1416
  * Implementation of hook_views_pre_execute()
1417 1417
  */
1418 1418
 function boincuser_views_pre_execute(&$view) {
1419
-  if ($view->args) {
1419
+    if ($view->args) {
1420 1420
     $account_id = $view->args[0];
1421
-  }
1422
-  if ($view->name=="user_activity") {
1421
+    }
1422
+    if ($view->name=="user_activity") {
1423 1423
     // Run the following custom query for the user_activity view
1424 1424
     $view->build_info['query']= "
1425 1425
       SELECT node_revisions.vid AS vid,
@@ -1451,25 +1451,25 @@  discard block
 block discarded – undo
1451 1451
     
1452 1452
     // count_query determines the pager.  Do this so the right item count is returned.
1453 1453
     $view->build_info['count_query'] = $view->build_info['query'];
1454
-  }
1454
+    }
1455 1455
 }
1456 1456
 
1457 1457
 /**
1458 1458
  * Implementation of hook_cron()
1459 1459
  */
1460 1460
 function boincuser_cron() {
1461
-  // Delete expired users in the BOINC database, user_delete table.
1462
-  require_boinc('boinc_db');
1463
-  $num_deleted = BoincUserDeleted::delete_expired();
1464
-  if ($num_deleted>0) {
1461
+    // Delete expired users in the BOINC database, user_delete table.
1462
+    require_boinc('boinc_db');
1463
+    $num_deleted = BoincUserDeleted::delete_expired();
1464
+    if ($num_deleted>0) {
1465 1465
     watchdog('boincuser', "Deleted ${num_deleted} users from user_deleted table", WATCHDOG_NOTICE);
1466
-  }
1466
+    }
1467 1467
 
1468
-  // Delete expired tokens from token table
1469
-  $tokens_deleted = BoincToken::delete_expired();
1470
-  if ($tokens_deleted>0) {
1468
+    // Delete expired tokens from token table
1469
+    $tokens_deleted = BoincToken::delete_expired();
1470
+    if ($tokens_deleted>0) {
1471 1471
     watchdog('boincuser', "Deleted ${tokens_deleted} tokens from token table", WATCHDOG_NOTICE);
1472
-  }
1472
+    }
1473 1473
 }
1474 1474
 
1475 1475
 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
@@ -1480,17 +1480,17 @@  discard block
 block discarded – undo
1480 1480
  * Page callback shortcut to recent posts for the logged in user
1481 1481
  */
1482 1482
 function boincuser_goto_recent_posts() {
1483
-  global $user;
1484
-  drupal_goto("account/{$user->uid}/posts");
1483
+    global $user;
1484
+    drupal_goto("account/{$user->uid}/posts");
1485 1485
 }
1486 1486
 
1487 1487
 /**
1488 1488
  * Page callback shortcut to the team of the logged in user
1489 1489
  */
1490 1490
 function boincuser_goto_team() {
1491
-  global $user;
1492
-  $account = user_load($user->uid);
1493
-  drupal_goto("community/teams/{$account->team}");
1491
+    global $user;
1492
+    $account = user_load($user->uid);
1493
+    drupal_goto("community/teams/{$account->team}");
1494 1494
 }
1495 1495
 
1496 1496
 /**
@@ -1499,93 +1499,93 @@  discard block
 block discarded – undo
1499 1499
  * user profile pages, so use a wrapper for display
1500 1500
  */
1501 1501
 function boincuser_view_profile($account = null) {
1502
-  // Create the user profile page
1503
-  if (!$account) {
1502
+    // Create the user profile page
1503
+    if (!$account) {
1504 1504
     global $user;
1505 1505
     $account = $user;
1506
-  }
1506
+    }
1507 1507
 
1508
-  $min_credit_to_post = variable_get('boinc_comment_min_credit', 0);
1509
-  $verified_contributor = array_search('verified contributor', user_roles(true));
1510
-  if (!isset($account->roles[$verified_contributor])) {
1508
+    $min_credit_to_post = variable_get('boinc_comment_min_credit', 0);
1509
+    $verified_contributor = array_search('verified contributor', user_roles(true));
1510
+    if (!isset($account->roles[$verified_contributor])) {
1511 1511
     drupal_set_message(bts(
1512 1512
         'You may only create or modify your user profile after earning @count credits.',
1513 1513
         array('@count' => $min_credit_to_post), NULL, 'boinc:view-profile'
1514 1514
     ), 'warning', FALSE);
1515
-  }
1515
+    }
1516 1516
 
1517
-  // For now, just call the user module profile view function
1518
-  user_build_content($account);
1519
-  return theme('user_profile', $account);
1517
+    // For now, just call the user module profile view function
1518
+    user_build_content($account);
1519
+    return theme('user_profile', $account);
1520 1520
 }
1521 1521
 
1522 1522
 /**
1523 1523
  * Page callback for editing a user profile
1524 1524
  */
1525 1525
 function boincuser_edit_profile($account = null) {
1526
-  // Create the user profile form
1527
-  if (!$account) {
1526
+    // Create the user profile form
1527
+    if (!$account) {
1528 1528
     global $user;
1529 1529
     $account = $user;
1530
-  }
1531
-  // Render the form
1532
-  module_load_include('pages.inc', 'node', 'node');
1533
-  return content_profile_page_edit('profile', $account);
1530
+    }
1531
+    // Render the form
1532
+    module_load_include('pages.inc', 'node', 'node');
1533
+    return content_profile_page_edit('profile', $account);
1534 1534
 }
1535 1535
 
1536 1536
 /**
1537
-  * Join page menu callback.
1538
-  * Display instructions on joining for new or existing BOINC users
1539
-  */
1537
+ * Join page menu callback.
1538
+ * Display instructions on joining for new or existing BOINC users
1539
+ */
1540 1540
 function join_page($type = null) {
1541
-  global $base_url;
1542
-  /* The paths/links to the rules-and-policies page is hardcoded
1541
+    global $base_url;
1542
+    /* The paths/links to the rules-and-policies page is hardcoded
1543 1543
    * here. An improvement would be admin settings for the Join Page
1544 1544
    * where this path could be set.
1545 1545
    */
1546
-  $ruleslinkA = 'rules-and-policies';
1547
-  $ruleslinkB = 'content/rules-and-policies';
1548
-  $site_name = variable_get('site_name', 'Drupal-BOINC');
1549
-  $registration_enabled = variable_get('user_register', 0);
1550
-  $output = '<div class="join">';
1551
-  switch ($type) {
1552
-  case 'boinc':
1546
+    $ruleslinkA = 'rules-and-policies';
1547
+    $ruleslinkB = 'content/rules-and-policies';
1548
+    $site_name = variable_get('site_name', 'Drupal-BOINC');
1549
+    $registration_enabled = variable_get('user_register', 0);
1550
+    $output = '<div class="join">';
1551
+    switch ($type) {
1552
+    case 'boinc':
1553 1553
     $output .= '<ol>';
1554 1554
     if ($registration_enabled) {
1555
-      $output .= '<li>' . bts('First !create_an_account here at @sitename.',
1556
-      array(
1555
+        $output .= '<li>' . bts('First !create_an_account here at @sitename.',
1556
+        array(
1557 1557
         '!create_an_account' => l(bts('create an account', array(), NULL, 'boinc:join-page'), 'user/registration'),
1558 1558
         '@sitename' => $site_name,
1559
-      ), NULL, 'boinc:join-page') . '</li>';
1559
+        ), NULL, 'boinc:join-page') . '</li>';
1560 1560
     }
1561 1561
     $output .= '  <li>' . bts("Install BOINC on this device if not already present.", array(), NULL, 'boinc:join-page') . '</li>';
1562 1562
     $output .= '  <li>' . bts("Select <i>Tools / Add Project</i>. Choose @sitename from the list, or enter @siteurl.",
1563 1563
     array(
1564
-      '@sitename' => $site_name,
1565
-      '@siteurl' => $base_url,
1564
+        '@sitename' => $site_name,
1565
+        '@siteurl' => $base_url,
1566 1566
     ), NULL, 'boinc:join-page') . '</li>';
1567 1567
     if ($registration_enabled) {
1568
-      $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.",
1568
+        $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.",
1569 1569
         array(
1570
-          '!boinccmd' => l('boinccmd --project_attach', 'http://boinc.berkeley.edu/wiki/Boinccmd_tool'),
1570
+            '!boinccmd' => l('boinccmd --project_attach', 'http://boinc.berkeley.edu/wiki/Boinccmd_tool'),
1571 1571
         ), NULL, 'boinc:join-page') . '</li>';
1572 1572
     }
1573 1573
     else {
1574
-      $output .= '<li>' . bts("If you're running a command-line version of BOINC,
1574
+        $output .= '<li>' . bts("If you're running a command-line version of BOINC,
1575 1575
         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.",
1576 1576
         array(
1577
-          '!instructionslink' => l('instructions', 'http://boinc.berkeley.edu/wiki/Boinccmd_tool'),
1577
+            '!instructionslink' => l('instructions', 'http://boinc.berkeley.edu/wiki/Boinccmd_tool'),
1578 1578
         ), NULL, 'boinc:join-page') . '</li>';
1579 1579
     }
1580 1580
     $output .= '<li>' . bts("If you're running a pre-5.0 version of BOINC, please
1581 1581
       upgrade to a more recent version of BOINC to create an account
1582 1582
       at @this_project.",
1583
-      array(
1583
+        array(
1584 1584
         '@this_project' => $site_name,
1585
-      ), NULL, 'boinc:join-page') . '</li>';
1585
+        ), NULL, 'boinc:join-page') . '</li>';
1586 1586
     $output .=  '</ol>';
1587 1587
     break;
1588
-  case 'new':
1588
+    case 'new':
1589 1589
   default:
1590 1590
     // Determine if there is a link to rules-and-policies
1591 1591
     //$ruleslink='';
@@ -1600,16 +1600,16 @@  discard block
 block discarded – undo
1600 1600
     // Join page output
1601 1601
     $output .= '<ol>';
1602 1602
     if ($registration_enabled) {
1603
-      $output .= '<li>' . bts('First !create_an_account here at @sitename.',
1604
-      array(
1603
+        $output .= '<li>' . bts('First !create_an_account here at @sitename.',
1604
+        array(
1605 1605
         '!create_an_account' => l(bts('create an account', array(), NULL, 'boinc:join-page'), 'user/registration'),
1606 1606
         '@sitename' => $site_name,
1607
-      ), NULL, 'boinc:join-page') . '</li>';
1607
+        ), NULL, 'boinc:join-page') . '</li>';
1608 1608
     }
1609 1609
     else if ( menu_valid_path(array('link_path' => $ruleslink)) ) {
1610
-      $output .= '  <li>' . bts("Read our !rules_and_policies.", array(
1610
+        $output .= '  <li>' . bts("Read our !rules_and_policies.", array(
1611 1611
         '!rules_and_policies' => l(bts('Rules and Policies', array(), NULL, 'boinc:join-page'), $ruleslink),
1612
-      ), NULL, 'boinc:join-page') . '</li>';
1612
+        ), NULL, 'boinc:join-page') . '</li>';
1613 1613
     }
1614 1614
     $output .= '  <li>' . bts('Download the BOINC desktop software.', array(), NULL, 'boinc:join-page');
1615 1615
     $output .= '    <p>';
@@ -1619,73 +1619,73 @@  discard block
 block discarded – undo
1619 1619
     $output .= '  </li>';
1620 1620
     $output .= '  <li>' . bts('Run the installer.', array(), NULL, 'boinc:join-page') . '</li>';
1621 1621
     $output .= '  <li>' . bts('Choose @sitename from the list, or enter @siteurl.', array(
1622
-      '@sitename' => $site_name,
1623
-      '@siteurl' => $base_url,
1622
+        '@sitename' => $site_name,
1623
+        '@siteurl' => $base_url,
1624 1624
     ), NULL, 'boinc:join-page') . '</li>';
1625 1625
     $output .=  '</ol>';
1626
-  }
1627
-  $output .= '</div>';
1628
-  return $output;
1626
+    }
1627
+    $output .= '</div>';
1628
+    return $output;
1629 1629
 }
1630 1630
 
1631 1631
 /**
1632
-  * Home page content for embedding in Panels page
1633
-  */
1632
+ * Home page content for embedding in Panels page
1633
+ */
1634 1634
 function boincuser_home_page() {
1635
-  global $user;
1636
-  $site_name = variable_get('site_name', 'Drupal-BOINC');
1637
-  // get the front page message from database; this is set in the admin interface under BOINC Other
1638
-  $site_message = variable_get('boinc_other_frontpage','');
1635
+    global $user;
1636
+    $site_name = variable_get('site_name', 'Drupal-BOINC');
1637
+    // get the front page message from database; this is set in the admin interface under BOINC Other
1638
+    $site_message = variable_get('boinc_other_frontpage','');
1639 1639
 
1640
-  // Determine the user of the day
1641
-  $current_uotd = db_fetch_object(db_query("
1640
+    // Determine the user of the day
1641
+    $current_uotd = db_fetch_object(db_query("
1642 1642
     SELECT
1643 1643
       uid,
1644 1644
       uotd_time
1645 1645
     FROM {boincuser}
1646 1646
     ORDER BY uotd_time DESC
1647 1647
     LIMIT 1"
1648
-  ));
1649
-  if ($current_uotd->uotd_time < strtotime('today midnight')) {
1648
+    ));
1649
+    if ($current_uotd->uotd_time < strtotime('today midnight')) {
1650 1650
     $uotd = boincuser_select_user_of_the_day();
1651
-  }
1652
-  else {
1651
+    }
1652
+    else {
1653 1653
     $uotd = user_load($current_uotd->uid);
1654
-  }
1655
-  $uotd_image = boincuser_get_user_profile_image($uotd->uid, FALSE);
1656
-  $output = '<h2 class="pane-title">';
1657
-  $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'));
1658
-  $output .= '</h2>';
1659
-  $output .= '<div class="boinc-overview balance-height-front">';
1660
-  $output .= '  <div>' . bts($site_message, array(), NULL, "project:front page") . ' ' . l(bts('Learn more', array(), NULL, 'boinc:front-page'), 'about') . '</div>';
1661
-  if ($user->uid) {
1654
+    }
1655
+    $uotd_image = boincuser_get_user_profile_image($uotd->uid, FALSE);
1656
+    $output = '<h2 class="pane-title">';
1657
+    $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'));
1658
+    $output .= '</h2>';
1659
+    $output .= '<div class="boinc-overview balance-height-front">';
1660
+    $output .= '  <div>' . bts($site_message, array(), NULL, "project:front page") . ' ' . l(bts('Learn more', array(), NULL, 'boinc:front-page'), 'about') . '</div>';
1661
+    if ($user->uid) {
1662 1662
     $output .= '  <div>' . l(bts('View account', array(), NULL, 'boinc:front-page'), 'dashboard', array('attributes' => array('class' => 'join button'))) . '</div>';
1663
-  }
1664
-  else {
1663
+    }
1664
+    else {
1665 1665
     $output .= '  <div>' . l(bts('Join now', array(), NULL, 'boinc:front-page'), 'join', array('attributes' => array('class' => 'join button'))) . '</div>';
1666
-  }
1667
-  $output .= '</div>';
1668
-  $output .= '<div class="boinc-overview-details">';
1669
-  $output .= '  <div class="detail-container">';
1670
-  $output .= '    <a class="user-of-the-day" href="account/' . $uotd->uid . '">';
1671
-  $output .= '      <div class="picture">';
1672
-  $output .= theme('imagefield_image', $uotd_image['image'], $uotd_image['alt'],
1666
+    }
1667
+    $output .= '</div>';
1668
+    $output .= '<div class="boinc-overview-details">';
1669
+    $output .= '  <div class="detail-container">';
1670
+    $output .= '    <a class="user-of-the-day" href="account/' . $uotd->uid . '">';
1671
+    $output .= '      <div class="picture">';
1672
+    $output .= theme('imagefield_image', $uotd_image['image'], $uotd_image['alt'],
1673 1673
     $uotd_image['alt'], array(), FALSE);
1674
-  $output .= '      </div>';
1675
-  $output .= '      <div class="text">' . bts('User of the day', array(), NULL, 'boinc:front-page') . '</div>';
1676
-  $output .= '      <div class="detail">' . $uotd->boincuser_name . '</div>';
1677
-  $output .= '    </a>';
1678
-  $output .= '    <div class="volunteers">';
1679
-  $output .= '      <div class="text">' . bts('Over 500,000 volunteers and counting.', array(), NULL, 'boinc:front-page') . '</div>';
1680
-  $output .= '      <div class="platforms">';
1681
-  $output .= '        <div class="detail platform windows">' . bts('Windows', array(), NULL, 'boinc:front-page') . '</div>';
1682
-  $output .= '        <div class="detail platform mac">' .  bts('Mac', array(), NULL, 'boinc:front-page') . '</div>';
1683
-  $output .= '        <div class="detail platform linux">' . bts('Linux', array(), NULL, 'boinc:front-page') . '</div>';
1684
-  $output .= '      </div>';
1685
-  $output .= '    </div>';
1686
-  $output .= '  </div>';
1687
-  $output .= '</div>';
1688
-  return $output;
1674
+    $output .= '      </div>';
1675
+    $output .= '      <div class="text">' . bts('User of the day', array(), NULL, 'boinc:front-page') . '</div>';
1676
+    $output .= '      <div class="detail">' . $uotd->boincuser_name . '</div>';
1677
+    $output .= '    </a>';
1678
+    $output .= '    <div class="volunteers">';
1679
+    $output .= '      <div class="text">' . bts('Over 500,000 volunteers and counting.', array(), NULL, 'boinc:front-page') . '</div>';
1680
+    $output .= '      <div class="platforms">';
1681
+    $output .= '        <div class="detail platform windows">' . bts('Windows', array(), NULL, 'boinc:front-page') . '</div>';
1682
+    $output .= '        <div class="detail platform mac">' .  bts('Mac', array(), NULL, 'boinc:front-page') . '</div>';
1683
+    $output .= '        <div class="detail platform linux">' . bts('Linux', array(), NULL, 'boinc:front-page') . '</div>';
1684
+    $output .= '      </div>';
1685
+    $output .= '    </div>';
1686
+    $output .= '  </div>';
1687
+    $output .= '</div>';
1688
+    return $output;
1689 1689
 }
1690 1690
 
1691 1691
 /**
@@ -1693,81 +1693,81 @@  discard block
 block discarded – undo
1693 1693
  * Create a new user account based on supplied parameters.
1694 1694
  */
1695 1695
 function boincuser_create_account() {
1696
-  global $base_url;
1696
+    global $base_url;
1697 1697
 
1698
-  require_boinc('boinc_db');
1699
-  require_boinc('user_util');
1700
-  require_boinc('xml');
1701
-  $params = array(
1698
+    require_boinc('boinc_db');
1699
+    require_boinc('user_util');
1700
+    require_boinc('xml');
1701
+    $params = array(
1702 1702
     'email_addr' => isset($_GET['email_addr']) ? $_GET['email_addr'] : '',
1703 1703
     'user_name' => isset($_GET['user_name']) ? $_GET['user_name'] : '',
1704 1704
     'passwd_hash' => isset($_GET['passwd_hash']) ? $_GET['passwd_hash'] : ''
1705
-  );
1705
+    );
1706 1706
   
1707
-  // Begin output
1708
-  xml_header();
1707
+    // Begin output
1708
+    xml_header();
1709 1709
   
1710
-  // Account creation disabled
1711
-  $enablethisRPC = variable_get('boinc_weboptions_enableaccountcreateRPC', TRUE);
1712
-  if (!$enablethisRPC) {
1710
+    // Account creation disabled
1711
+    $enablethisRPC = variable_get('boinc_weboptions_enableaccountcreateRPC', TRUE);
1712
+    if (!$enablethisRPC) {
1713 1713
     $mess = bts('Account creation is done through our Web site. Please register at @url', array(
1714
-      '@url' => $base_url . '/user/registration',
1714
+        '@url' => $base_url . '/user/registration',
1715 1715
     ),
1716 1716
     NULL, 'boinc:create_account');
1717 1717
     xml_error(-208, $mess);
1718
-  }
1719
-  // Invalid invite code
1718
+    }
1719
+    // Invalid invite code
1720 1720
   
1721
-  // Validate input
1722
-  if (user_validate_mail($params['email_addr']) or !is_valid_email_addr($params['email_addr'])) {
1721
+    // Validate input
1722
+    if (user_validate_mail($params['email_addr']) or !is_valid_email_addr($params['email_addr'])) {
1723 1723
     xml_error(-205);
1724
-  }
1724
+    }
1725 1725
 
1726
-  // Make sure user_name is unique and cleaned
1727
-  $unique_name = create_proper_drupalname($params['user_name']);
1728
-  if ($error = user_validate_name($unique_name)) {
1726
+    // Make sure user_name is unique and cleaned
1727
+    $unique_name = create_proper_drupalname($params['user_name']);
1728
+    if ($error = user_validate_name($unique_name)) {
1729 1729
     xml_error(-188, $error);
1730
-  }
1731
-  if (strlen($params['passwd_hash']) != 32) {
1730
+    }
1731
+    if (strlen($params['passwd_hash']) != 32) {
1732 1732
     xml_error(-1, 'password hash length not 32');
1733
-  }
1733
+    }
1734 1734
   
1735
-  // Process input
1736
-  // Check this email against previous email addresses.
1737
-  $tmpuser = BoincUser::lookup_prev_email_addr($params['email_addr']);
1738
-  if ($tmpuser) {
1735
+    // Process input
1736
+    // Check this email against previous email addresses.
1737
+    $tmpuser = BoincUser::lookup_prev_email_addr($params['email_addr']);
1738
+    if ($tmpuser) {
1739 1739
     xml_error(-137);
1740
-  }
1740
+    }
1741 1741
 
1742
-  // Check this email on current email addresses.
1743
-  $boinc_user = BoincUser::lookup_email_addr($params['email_addr']);
1744
-  if ($boinc_user) {
1742
+    // Check this email on current email addresses.
1743
+    $boinc_user = BoincUser::lookup_email_addr($params['email_addr']);
1744
+    if ($boinc_user) {
1745 1745
     // Return authenticator for existing users
1746 1746
     if ( ($params['passwd_hash'] == $boinc_user->passwd_hash) or
1747 1747
     password_verify($params['passwd_hash'], $boinc_user->passwd_hash) ) {
1748
-      $output = array('authenticator' => $boinc_user->authenticator);
1748
+        $output = array('authenticator' => $boinc_user->authenticator);
1749 1749
     }
1750 1750
     else {
1751
-      xml_error(-137);
1751
+        xml_error(-137);
1752 1752
     }
1753
-  }
1754
-  else {
1753
+    }
1754
+    else {
1755 1755
     // Verify that there isn't somehow a Drupal user already (not possible with proper function)
1756 1756
     if ($existing_user = user_load(array('mail' => $params['email_addr']))) {
1757
-      xml_error(-137, 'account error');
1757
+        xml_error(-137, 'account error');
1758 1758
     }
1759 1759
     // Create new account
1760 1760
     $unrestricted_role = array_search('community member', user_roles(true));
1761 1761
 
1762 1762
     $newUser = array(
1763
-      'name' => $unique_name,
1764
-      '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
1765
-      'mail' => $params['email_addr'],
1766
-      'status' => 1,
1767
-      'init' => $params['email_addr'],
1768
-      'roles' => array($unrestricted_role => ''),
1769
-      'boincuser_name' => $params['user_name'],
1770
-      'boinchash_flag' => TRUE,
1763
+        'name' => $unique_name,
1764
+        '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
1765
+        'mail' => $params['email_addr'],
1766
+        'status' => 1,
1767
+        'init' => $params['email_addr'],
1768
+        'roles' => array($unrestricted_role => ''),
1769
+        'boincuser_name' => $params['user_name'],
1770
+        'boinchash_flag' => TRUE,
1771 1771
     );
1772 1772
 
1773 1773
     // Create the drupal user. If the drupal user cannot be created,
@@ -1775,17 +1775,17 @@  discard block
 block discarded – undo
1775 1775
     // The user is created in the 'insert' op in hook_user.
1776 1776
     $user = user_save(null, $newUser);
1777 1777
     if (!$user) {
1778
-      watchdog('boincuser', 'create_account: Failed to create Drupal user account for @email', array('@email' => $params['email_addr']), WATCHDOG_WARNING);
1779
-      xml_error(-137, 'error creating BOINC account');
1778
+        watchdog('boincuser', 'create_account: Failed to create Drupal user account for @email', array('@email' => $params['email_addr']), WATCHDOG_WARNING);
1779
+        xml_error(-137, 'error creating BOINC account');
1780 1780
     }// if drupal user created.
1781 1781
 
1782 1782
     $output = array('authenticator' => $user->boincuser_account_key);
1783
-  }// if existing user found.
1783
+    }// if existing user found.
1784 1784
 
1785
-  // Output authenticator
1786
-  echo " <account_out>\n";
1787
-  echo "   <authenticator>{$output['authenticator']}</authenticator>\n";
1788
-  echo "</account_out>\n";
1785
+    // Output authenticator
1786
+    echo " <account_out>\n";
1787
+    echo "   <authenticator>{$output['authenticator']}</authenticator>\n";
1788
+    echo "</account_out>\n";
1789 1789
 }
1790 1790
 
1791 1791
 /**
@@ -1793,166 +1793,166 @@  discard block
 block discarded – undo
1793 1793
  * account is created using the BOINC clinet.
1794 1794
  */
1795 1795
 function boincuser_account_finish() {
1796
-  global $user;
1796
+    global $user;
1797 1797
 
1798
-  $authtoken = isset($_GET['auth']) ? $_GET['auth'] : '';
1798
+    $authtoken = isset($_GET['auth']) ? $_GET['auth'] : '';
1799 1799
 
1800
-  // Ensure there is a authentication token before continuing
1801
-  if (empty($authtoken)) {
1800
+    // Ensure there is a authentication token before continuing
1801
+    if (empty($authtoken)) {
1802 1802
     drupal_not_found();
1803 1803
     return ;
1804
-  }
1804
+    }
1805 1805
 
1806
-  if (strlen($authtoken) != 32) {
1806
+    if (strlen($authtoken) != 32) {
1807 1807
     drupal_set_message(bts('ERROR: There is no account with that authenticator.', array(), NULL, 'boinc:account-finish'), 'error');
1808 1808
     drupal_goto();
1809
-  }
1809
+    }
1810 1810
 
1811
-  require_boinc('boinc_db');
1812
-  $boinc_user = BoincUser::lookup("authenticator='".addslashes($authtoken)."'");
1813
-  if (!$boinc_user) {
1811
+    require_boinc('boinc_db');
1812
+    $boinc_user = BoincUser::lookup("authenticator='".addslashes($authtoken)."'");
1813
+    if (!$boinc_user) {
1814 1814
     drupal_set_message(bts('ERROR: There is no account with that authenticator.', array(), NULL, 'boinc:account-finish'), 'error');
1815 1815
     drupal_goto();
1816
-  }
1817
-  $user = user_load(get_drupal_id($boinc_user->id));
1816
+    }
1817
+    $user = user_load(get_drupal_id($boinc_user->id));
1818 1818
 
1819
-  if (!$user) {
1819
+    if (!$user) {
1820 1820
     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');
1821 1821
     drupal_goto();
1822
-  }
1822
+    }
1823 1823
 
1824
-  // Lookup path to custom account finish page
1825
-  $customaccountfinishpath = drupal_lookup_path('source', variable_get('boinc_weboptions_accountfinish', '') );
1826
-  if ( menu_valid_path(array('link_path' => $customaccountfinishpath)) ) {
1824
+    // Lookup path to custom account finish page
1825
+    $customaccountfinishpath = drupal_lookup_path('source', variable_get('boinc_weboptions_accountfinish', '') );
1826
+    if ( menu_valid_path(array('link_path' => $customaccountfinishpath)) ) {
1827 1827
     $node = menu_get_object('node', 1, $customaccountfinishpath);
1828 1828
     if ($node) {
1829
-      return node_page_view($node);
1829
+        return node_page_view($node);
1830
+    }
1830 1831
     }
1831
-  }
1832 1832
 
1833
-  // open links in new window
1834
-  $options = array(
1833
+    // open links in new window
1834
+    $options = array(
1835 1835
     'attributes' => array( 'target' => '_blank' ),
1836
-  );
1836
+    );
1837 1837
 
1838
-  // Check moderation page exists
1839
-  $moderationpath = drupal_lookup_path('source', variable_get('boinc_weboptions_moderationpage', '') );
1840
-  if ( menu_valid_path(array('link_path' => $moderationpath)) ) {
1838
+    // Check moderation page exists
1839
+    $moderationpath = drupal_lookup_path('source', variable_get('boinc_weboptions_moderationpage', '') );
1840
+    if ( menu_valid_path(array('link_path' => $moderationpath)) ) {
1841 1841
     $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');
1842
-  } else {
1842
+    } else {
1843 1843
     $modsentence = bts('Please note: user profiles are subject to moderation.', array(), NULL, 'boinc:account-finish');
1844
-  }
1844
+    }
1845 1845
 
1846
-  $username = $user->boincuser_name;
1847
-  $site_name = variable_get('site_name', 'Drupal-BOINC');
1848
-  $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.)',
1849
-  array(
1846
+    $username = $user->boincuser_name;
1847
+    $site_name = variable_get('site_name', 'Drupal-BOINC');
1848
+    $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.)',
1849
+    array(
1850 1850
     '@user_name' => $username,
1851 1851
     '@site_name' => $site_name,
1852
-  ), NULL, 'boinc:account-finish') . "</p>";
1852
+    ), NULL, 'boinc:account-finish') . "</p>";
1853 1853
 
1854
-  $links = array(
1854
+    $links = array(
1855 1855
     array(
1856
-      'data' => bts('Change your username at !community_preferences.', array(
1856
+        'data' => bts('Change your username at !community_preferences.', array(
1857 1857
         '!community_preferences' => l(bts('Community Preferences', array(), NULL, 'boinc:account-fininsh'), 'account/prefs/community', $options),
1858
-      ), NULL, 'boinc:account-finish'),
1859
-      'children' => array(
1858
+        ), NULL, 'boinc:account-finish'),
1859
+        'children' => array(
1860 1860
         bts('Your username is used to identify yourself to other volunteers on this Web site.', array(), NULL, 'boinc:account-finish'),
1861 1861
         bts('In addition, you may set your account\'s default language and adjust notification settings.', array(), NULL, 'boinc:account-finish'),
1862
-      ),
1862
+        ),
1863 1863
     ),
1864 1864
     array(
1865
-      'data' => bts('Change your !computing_preferences.', array(
1865
+        'data' => bts('Change your !computing_preferences.', array(
1866 1866
         '!computing_preferences' => l(bts('Computing Preferences', array(), NULL, 'boinc:account-finish'), 'account/prefs', $options),
1867
-      ), NULL, 'boinc:account-finish'),
1868
-      'children' => array(
1867
+        ), NULL, 'boinc:account-finish'),
1868
+        'children' => array(
1869 1869
         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'),
1870 1870
         bts('By default, you will run @site_name tasks without any additional configuration.', array(
1871
-          '@site_name' => $site_name,
1871
+            '@site_name' => $site_name,
1872 1872
         ), NULL, 'boinc:account-finish'),
1873 1873
         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(
1874
-          '!forums' => l(bts('forums', array(), NULL, 'boinc:account-finish'), 'community/forum', $options),
1874
+            '!forums' => l(bts('forums', array(), NULL, 'boinc:account-finish'), 'community/forum', $options),
1875 1875
         ), NULL, 'boinc:account-finish'),
1876
-      ),
1876
+        ),
1877 1877
     ),
1878 1878
     array(
1879 1879
         'data' => bts('Create a !user_profile.', array(
1880
-          '!user_profile' => l(bts('User Profile', array(), NULL, 'boinc:account-finish'), '/account/profile/edit', $options),
1880
+            '!user_profile' => l(bts('User Profile', array(), NULL, 'boinc:account-finish'), '/account/profile/edit', $options),
1881 1881
         ), NULL, 'boinc:account-finish'),
1882
-      'children' => array(
1882
+        'children' => array(
1883 1883
         bts('A user profile will inform other volunteers who you are and why you joined @site_name.', array(
1884
-          '@site_name' => $site_name,
1884
+            '@site_name' => $site_name,
1885 1885
         ), NULL, 'boinc:account-finish'),
1886 1886
         $modsentence,
1887
-      ),
1887
+        ),
1888 1888
     ),
1889 1889
     array(
1890
-      'data' => bts('Join a !team.', array(
1890
+        'data' => bts('Join a !team.', array(
1891 1891
         '!team' => l(bts('Team', array(), NULL, 'boinc:account-finish'), '/community/teams', $options),
1892
-      ), NULL, 'boinc:account-finish'),
1893
-      'children' => array(
1892
+        ), NULL, 'boinc:account-finish'),
1893
+        'children' => array(
1894 1894
         bts('You may join a team, made up of other volunteers.', array(), NULL, 'boinc:account-finish'),
1895
-      ),
1895
+        ),
1896 1896
     ),
1897 1897
     array(
1898
-      'data' => bts('Go to your !account_dashboard.', array(
1898
+        'data' => bts('Go to your !account_dashboard.', array(
1899 1899
         '!account_dashboard'=> l(bts('Account Dashboard', array(), NULL, 'boinc:account-finish'), 'account/dashboard', $options),
1900
-      ), NULL, 'boinc:account-finish'),
1901
-      'children' => array(
1900
+        ), NULL, 'boinc:account-finish'),
1901
+        'children' => array(
1902 1902
         bts('Your account dashboard has information and links about your computer(s) and task(s) assigned.', array(), NULL, 'boinc:account-finish'),
1903
-      ),
1903
+        ),
1904 1904
     ),
1905 1905
     array(
1906
-      'data' => bts('Visit our !help pages.', array(
1906
+        'data' => bts('Visit our !help pages.', array(
1907 1907
         '!help' => l(bts('Help', array(), NULL, 'boinc:account-finish'), '/help', $options)
1908
-      ), NULL, 'boinc:account-finish'),
1909
-      'children' => array(
1908
+        ), NULL, 'boinc:account-finish'),
1909
+        'children' => array(
1910 1910
         bts('Ask for help in our community\'s !forums.', array(
1911
-          '!forums' => l(bts('forums', array(), NULL, 'boinc:account-finish'), 'community/forum', $options)
1911
+            '!forums' => l(bts('forums', array(), NULL, 'boinc:account-finish'), 'community/forum', $options)
1912 1912
         ), NULL, 'boinc:account-finish'),
1913
-      ),
1913
+        ),
1914 1914
     ),
1915
-  );
1915
+    );
1916 1916
 
1917
-  //List of links
1918
-  $output .= theme_item_list($links, $title = NULL, $type='ul');
1917
+    //List of links
1918
+    $output .= theme_item_list($links, $title = NULL, $type='ul');
1919 1919
 
1920
-  return $output;
1920
+    return $output;
1921 1921
 }
1922 1922
 
1923 1923
 /**
1924 1924
  * Determine if the user has permission to control community access
1925 1925
  */
1926 1926
 function boincuser_moderate_community_access() {
1927
-  if (user_access('assign community member role')
1927
+    if (user_access('assign community member role')
1928 1928
   OR user_access('assign all roles')) {
1929 1929
     return TRUE;
1930
-  }
1931
-  return FALSE;
1930
+    }
1931
+    return FALSE;
1932 1932
 }
1933 1933
 
1934 1934
 /**
1935 1935
  * Get the count of items in the moderation queue
1936 1936
  */
1937 1937
 function boincuser_moderation_queue_count($caller = 'user') {
1938
-  $allowed = FALSE;
1939
-  switch ($caller) {
1940
-  case 'cron':
1938
+    $allowed = FALSE;
1939
+    switch ($caller) {
1940
+    case 'cron':
1941 1941
     $allowed = TRUE;
1942 1942
     break;
1943
-  case 'user':
1943
+    case 'user':
1944 1944
   default:
1945 1945
     $allowed = user_access('edit any profile content');
1946
-  }
1947
-  if ($allowed) {
1946
+    }
1947
+    if ($allowed) {
1948 1948
     return db_result(db_query("
1949 1949
       SELECT COUNT(*)
1950 1950
       FROM {node}
1951 1951
       WHERE type = 'profile'
1952 1952
       AND moderate = 1"
1953 1953
     ));
1954
-  }
1955
-  return NULL;
1954
+    }
1955
+    return NULL;
1956 1956
 }
1957 1957
 
1958 1958
 /**
@@ -1961,43 +1961,43 @@  discard block
 block discarded – undo
1961 1961
  * than through the user account info form.
1962 1962
  */
1963 1963
 function boincuser_control($uid = NULL, $action = NULL) {
1964
-  if (!$uid OR !$account = user_load($uid)) {
1964
+    if (!$uid OR !$account = user_load($uid)) {
1965 1965
     // What are you even doing here...
1966 1966
     return FALSE;
1967
-  }
1968
-  switch ($action) {
1969
-  case 'ban':
1967
+    }
1968
+    switch ($action) {
1969
+    case 'ban':
1970 1970
     if (boincuser_moderate_community_access()) {
1971
-      $penalty_period = variable_get('boinc_penalty_period', 7*24*60*60);
1972
-      $boincuser_record = array(
1971
+        $penalty_period = variable_get('boinc_penalty_period', 7*24*60*60);
1972
+        $boincuser_record = array(
1973 1973
         'uid' => $uid,
1974 1974
         'penalty_expiration' => time() + $penalty_period,
1975
-      );
1976
-      drupal_write_record('boincuser', $boincuser_record, 'uid');
1977
-      $community_role = array_search('community member', user_roles(true));
1978
-      if (isset($account->roles[$community_role])) {
1975
+        );
1976
+        drupal_write_record('boincuser', $boincuser_record, 'uid');
1977
+        $community_role = array_search('community member', user_roles(true));
1978
+        if (isset($account->roles[$community_role])) {
1979 1979
         unset($account->roles[$community_role]);
1980 1980
         user_save($account, array('roles' => $account->roles));
1981
-      }
1981
+        }
1982 1982
     }
1983 1983
     break;
1984
-  case 'lift-ban':
1984
+    case 'lift-ban':
1985 1985
     if (boincuser_moderate_community_access()) {
1986
-      $boincuser_record = array(
1986
+        $boincuser_record = array(
1987 1987
         'uid' => $uid,
1988 1988
         'penalty_expiration' => 0,
1989
-      );
1990
-      drupal_write_record('boincuser', $boincuser_record, 'uid');
1991
-      $community_role = array_search('community member', user_roles(true));
1992
-      if (!isset($account->roles[$community_role])) {
1989
+        );
1990
+        drupal_write_record('boincuser', $boincuser_record, 'uid');
1991
+        $community_role = array_search('community member', user_roles(true));
1992
+        if (!isset($account->roles[$community_role])) {
1993 1993
         $account->roles[$community_role] = 'community member';
1994 1994
         user_save($account, array('roles' => $account->roles));
1995
-      }
1995
+        }
1996 1996
     }
1997 1997
     break;
1998
-  default:
1998
+    default:
1999 1999
   }
2000
-  drupal_goto("account/{$account->uid}");
2000
+    drupal_goto("account/{$account->uid}");
2001 2001
 }
2002 2002
 
2003 2003
 /**
@@ -2005,29 +2005,29 @@  discard block
 block discarded – undo
2005 2005
  * moderation flag.
2006 2006
  */
2007 2007
 function boincuser_moderate_profile_approve($account) {
2008
-  $node = new stdClass;
2009
-  $node->type = 'profile';
2010
-  $node->language = '';
2011
-  $nid = content_profile_profile_exists($node, $account->uid);
2012
-  $profile = node_load($nid);
2013
-  $profile->moderate = 0;
2014
-  $profile->status = 1;
2015
-  node_save($profile);
2016
-  drupal_set_message('This profile has been marked as approved.');
2017
-  drupal_goto();
2008
+    $node = new stdClass;
2009
+    $node->type = 'profile';
2010
+    $node->language = '';
2011
+    $nid = content_profile_profile_exists($node, $account->uid);
2012
+    $profile = node_load($nid);
2013
+    $profile->moderate = 0;
2014
+    $profile->status = 1;
2015
+    node_save($profile);
2016
+    drupal_set_message('This profile has been marked as approved.');
2017
+    drupal_goto();
2018 2018
 }
2019 2019
 
2020 2020
 /**
2021 2021
  * Mark a user profile as rejected and notify the user of the reason.
2022 2022
  */
2023 2023
 function boincuser_moderate_profile_reject($uid, $reason = '') {
2024
-  $account = user_load($uid);
2025
-  $node = new stdClass;
2026
-  $node->type = 'profile';
2027
-  $node->language = '';
2028
-  $nid = content_profile_profile_exists($node, $uid);
2029
-  $profile = node_load($nid);
2030
-  if ($profile->nid) {
2024
+    $account = user_load($uid);
2025
+    $node = new stdClass;
2026
+    $node->type = 'profile';
2027
+    $node->language = '';
2028
+    $nid = content_profile_profile_exists($node, $uid);
2029
+    $profile = node_load($nid);
2030
+    if ($profile->nid) {
2031 2031
     global $user;
2032 2032
     global $base_url;
2033 2033
     global $base_path;
@@ -2038,64 +2038,64 @@  discard block
 block discarded – undo
2038 2038
     $profile->status = 0;
2039 2039
     node_save($profile);
2040 2040
     $settings = array(
2041
-      'from' => '',
2042
-      'subject' => "Profile moderation at {$site_name}",
2043
-      'message' => ''
2044
-      . "{$account->boincuser_name},\n"
2045
-      . "\n"
2046
-      . "{$moderator->boincuser_name} has rejected your profile at"
2047
-      . " {$site_name} for the following reason: \n"
2048
-      . "\n"
2049
-      . "{$reason}\n"
2050
-      . "\n"
2051
-      . "\n"
2052
-      . "Since it has not been approved, your profile is not visible to other"
2053
-      . " {$site_name} users. Please make the needed changes here:\n"
2054
-      . "\n"
2055
-      . "{$site_url}account/profile \n"
2056
-      . "\n"
2057
-      . "Thanks, \n"
2058
-      . "\n"
2059
-      . "{$site_name} support team",
2041
+        'from' => '',
2042
+        'subject' => "Profile moderation at {$site_name}",
2043
+        'message' => ''
2044
+        . "{$account->boincuser_name},\n"
2045
+        . "\n"
2046
+        . "{$moderator->boincuser_name} has rejected your profile at"
2047
+        . " {$site_name} for the following reason: \n"
2048
+        . "\n"
2049
+        . "{$reason}\n"
2050
+        . "\n"
2051
+        . "\n"
2052
+        . "Since it has not been approved, your profile is not visible to other"
2053
+        . " {$site_name} users. Please make the needed changes here:\n"
2054
+        . "\n"
2055
+        . "{$site_url}account/profile \n"
2056
+        . "\n"
2057
+        . "Thanks, \n"
2058
+        . "\n"
2059
+        . "{$site_name} support team",
2060 2060
     );
2061 2061
     rules_action_mail_to_user($account, $settings);
2062 2062
     drupal_set_message('This profile has been marked as rejected.');
2063
-  }
2064
-  drupal_goto();
2063
+    }
2064
+    drupal_goto();
2065 2065
 }
2066 2066
 
2067 2067
 /**
2068 2068
  * Ban a user and send a notification of the reason.
2069 2069
  */
2070 2070
 function boincuser_moderate_user_ban($uid, $reason = '', $duration = '') {
2071
-  if (user_access('assign community member role')
2071
+    if (user_access('assign community member role')
2072 2072
   OR user_access('assign all roles')) {
2073 2073
     $account = user_load($uid);
2074 2074
     if ($account->uid) {
2075
-      module_load_include('inc', 'rules', 'modules/system.rules');
2076
-      if ($duration === '') {
2075
+        module_load_include('inc', 'rules', 'modules/system.rules');
2076
+        if ($duration === '') {
2077 2077
         $duration = variable_get('boinc_penalty_period', 7*24*60*60);
2078
-      }
2079
-      $penalty_expiration = ($duration > 0) ? time() + $duration : 4294967295;
2080
-      $boincuser_record = array(
2078
+        }
2079
+        $penalty_expiration = ($duration > 0) ? time() + $duration : 4294967295;
2080
+        $boincuser_record = array(
2081 2081
         'uid' => $uid,
2082 2082
         'penalty_expiration' => $penalty_expiration,
2083
-      );
2084
-      drupal_write_record('boincuser', $boincuser_record, 'uid');
2083
+        );
2084
+        drupal_write_record('boincuser', $boincuser_record, 'uid');
2085 2085
       
2086
-      $community_role = array_search('community member', user_roles(true));
2087
-      if (isset($account->roles[$community_role])) {
2086
+        $community_role = array_search('community member', user_roles(true));
2087
+        if (isset($account->roles[$community_role])) {
2088 2088
         unset($account->roles[$community_role]);
2089 2089
         user_save($account, array('roles' => $account->roles));
2090
-      }
2090
+        }
2091 2091
       
2092
-      global $user;
2093
-      global $base_url;
2094
-      global $base_path;
2095
-      $site_name = variable_get('site_name', 'Drupal-BOINC');
2096
-      $site_url = $base_url . $base_path;
2097
-      $moderator = user_load($user->uid);
2098
-      $settings = array(
2092
+        global $user;
2093
+        global $base_url;
2094
+        global $base_path;
2095
+        $site_name = variable_get('site_name', 'Drupal-BOINC');
2096
+        $site_url = $base_url . $base_path;
2097
+        $moderator = user_load($user->uid);
2098
+        $settings = array(
2099 2099
         'from' => '',
2100 2100
         'subject' => "User moderation at {$site_name}",
2101 2101
         'message' => ''
@@ -2116,12 +2116,12 @@  discard block
 block discarded – undo
2116 2116
         . "Thanks, \n"
2117 2117
         . "\n"
2118 2118
         . "{$site_name} support team",
2119
-      );
2120
-      rules_action_mail_to_user($account, $settings);
2121
-      drupal_set_message('This user has been banned.');
2119
+        );
2120
+        rules_action_mail_to_user($account, $settings);
2121
+        drupal_set_message('This user has been banned.');
2122 2122
     }
2123
-  }
2124
-  drupal_goto();
2123
+    }
2124
+    drupal_goto();
2125 2125
 }
2126 2126
 
2127 2127
 
@@ -2133,15 +2133,15 @@  discard block
 block discarded – undo
2133 2133
  *
2134 2134
  */
2135 2135
 function boincuser_get_weak_auth($boinc_id = null) {
2136
-  if (!$boinc_id) {
2136
+    if (!$boinc_id) {
2137 2137
     global $user;
2138 2138
     $account = user_load($user->uid);
2139 2139
     $boinc_id = $account->boincuser_id;
2140
-  }
2140
+    }
2141 2141
   
2142
-  $boinc_user = boincuser_load($account->boincuser_id);
2142
+    $boinc_user = boincuser_load($account->boincuser_id);
2143 2143
   
2144
-  return weak_auth($boinc_user);
2144
+    return weak_auth($boinc_user);
2145 2145
 }
2146 2146
 
2147 2147
 /**
@@ -2150,75 +2150,75 @@  discard block
 block discarded – undo
2150 2150
  * Drupal User so must be inserted into comments, etc. (not so by default)
2151 2151
  */
2152 2152
 function boincuser_get_user_profile_image($uid, $avatar = TRUE) {
2153
-  // Though the function name implies otherwise, get the avatar by default
2154
-  $image_field = ($avatar) ? 'field_image_fid' : 'field_profile_image_fid';
2155
-  $image_fid = db_result(db_query("
2153
+    // Though the function name implies otherwise, get the avatar by default
2154
+    $image_field = ($avatar) ? 'field_image_fid' : 'field_profile_image_fid';
2155
+    $image_fid = db_result(db_query("
2156 2156
     SELECT ctp.%s
2157 2157
     FROM {content_type_profile} ctp
2158 2158
     INNER JOIN {node} n ON ctp.nid = n.nid
2159 2159
     WHERE n.uid = %d AND n.type = '%s'",
2160 2160
     $image_field, $uid, 'profile'));
2161
-  $user_image['image'] = field_file_load($image_fid);
2162
-  if (!$user_image['image']['filepath']) {
2161
+    $user_image['image'] = field_file_load($image_fid);
2162
+    if (!$user_image['image']['filepath']) {
2163 2163
     // Load the default image if one does not exist
2164 2164
     $account = user_load($uid);
2165 2165
     if ($avatar AND module_exists('gravatar') AND user_access('use gravatar', $account) AND $account->gravatar) {
2166
-      // Use a Gravatar rather than the system default image
2167
-      $options = array(
2166
+        // Use a Gravatar rather than the system default image
2167
+        $options = array(
2168 2168
         'size' => 100,
2169 2169
         'rating' => 'G',
2170
-      );
2171
-      // Get the Gravatar URL and see if the image exists
2172
-      $url = gravatar_get_gravatar($account->mail, $options);
2173
-      $headers = @get_headers($url);
2174
-      if (preg_match("|200|", $headers[0])) {
2170
+        );
2171
+        // Get the Gravatar URL and see if the image exists
2172
+        $url = gravatar_get_gravatar($account->mail, $options);
2173
+        $headers = @get_headers($url);
2174
+        if (preg_match("|200|", $headers[0])) {
2175 2175
         return $url;
2176
-      }
2176
+        }
2177 2177
     }
2178 2178
     // Get default image if nothing else works
2179 2179
     $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')));
2180 2180
     $content_node_widget_settings = unserialize($content_node_widget_settings);
2181 2181
     $user_image['image'] = $content_node_widget_settings['default_image'];
2182
-  }
2183
-  $user = user_load($uid);
2184
-  // Use boinc username for image alt/title attributes
2185
-  $user_image['alt'] = $user->boincuser_name;
2186
-  return $user_image;
2182
+    }
2183
+    $user = user_load($uid);
2184
+    // Use boinc username for image alt/title attributes
2185
+    $user_image['alt'] = $user->boincuser_name;
2186
+    return $user_image;
2187 2187
 }
2188 2188
 
2189 2189
 /**
2190 2190
  * Generate a table of a user's projects
2191 2191
  */
2192 2192
 function boincuser_get_projects_table($account = null) {
2193
-  if ($account AND is_numeric($account)) {
2193
+    if ($account AND is_numeric($account)) {
2194 2194
     $account = user_load($account);
2195
-  }
2196
-  $projects = boincuser_get_projects($account);
2197
-  if (!$projects) return bts('no projects...', array(), NULL, 'boinc:account-dashboard');
2195
+    }
2196
+    $projects = boincuser_get_projects($account);
2197
+    if (!$projects) return bts('no projects...', array(), NULL, 'boinc:account-dashboard');
2198 2198
   
2199
-  $output = '';
2200
-  $output .= '<table class="user-projects">' . "\n";
2201
-  $output .= '<thead>' . "\n";
2202
-  $output .= '  <tr>' . "\n";
2203
-  $output .= '    <th>' . bts('Name', array(), NULL, 'boinc:project-name:-1:ignoreoverwrite') . '</th>' . "\n";
2204
-  $output .= '    <th class="numeric">' . bts('Avg credit', array(), NULL, 'boinc:account-dashboard') . '</th>' . "\n";
2205
-  $output .= '    <th class="numeric">' . bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits') . '</th>' . "\n";
2206
-  $output .= '  </tr>' . "\n";
2207
-  $output .= '</thead>' . "\n";
2208
-  $output .= '<tbody>' . "\n";
2209
-  foreach ($projects AS $project) {
2199
+    $output = '';
2200
+    $output .= '<table class="user-projects">' . "\n";
2201
+    $output .= '<thead>' . "\n";
2202
+    $output .= '  <tr>' . "\n";
2203
+    $output .= '    <th>' . bts('Name', array(), NULL, 'boinc:project-name:-1:ignoreoverwrite') . '</th>' . "\n";
2204
+    $output .= '    <th class="numeric">' . bts('Avg credit', array(), NULL, 'boinc:account-dashboard') . '</th>' . "\n";
2205
+    $output .= '    <th class="numeric">' . bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits') . '</th>' . "\n";
2206
+    $output .= '  </tr>' . "\n";
2207
+    $output .= '</thead>' . "\n";
2208
+    $output .= '<tbody>' . "\n";
2209
+    foreach ($projects AS $project) {
2210 2210
     $url = rtrim($project->url, '/') . '/show_user.php?userid=' . $project->id;
2211 2211
     $output .= '  <tr>' . "\n";
2212 2212
     $output .= '    <td>' . l($project->name, $url) . '</td>' . "\n";
2213 2213
     $output .= '    <td class="numeric">' . boincwork_format_stats((float) $project->expavg_credit) . '</td>' . "\n"; 
2214 2214
     $output .= '    <td class="numeric">' . boincwork_format_stats((float) $project->total_credit) . '</td>' . "\n";
2215 2215
     $output .= '  </tr>' . "\n";
2216
-  }
2217
-  $output .= '</tbody>' . "\n";
2218
-  $output .= '</table>' . "\n";
2219
-  $more_link = ($account) ? "user/{$account->uid}/stats" : 'account/stats';
2220
-  //$output .= "<div class=\"more-link\"><a href=\"{$more_link}\">More stats</a></div>" . "\n";
2221
-  return $output;
2216
+    }
2217
+    $output .= '</tbody>' . "\n";
2218
+    $output .= '</table>' . "\n";
2219
+    $more_link = ($account) ? "user/{$account->uid}/stats" : 'account/stats';
2220
+    //$output .= "<div class=\"more-link\"><a href=\"{$more_link}\">More stats</a></div>" . "\n";
2221
+    return $output;
2222 2222
 }
2223 2223
 
2224 2224
 /**
@@ -2226,25 +2226,25 @@  discard block
 block discarded – undo
2226 2226
  */
2227 2227
 function boincuser_get_stats_user_data($cpid = null) {
2228 2228
   
2229
-  // [TODO] Set this stuff in site config!
2230
-  $stats_server = 'stats.gridrepublic.org';
2231
-  $stats_rpc = 'rpc/get_user.php';
2229
+    // [TODO] Set this stuff in site config!
2230
+    $stats_server = 'stats.gridrepublic.org';
2231
+    $stats_rpc = 'rpc/get_user.php';
2232 2232
   
2233
-  // Construct query string
2234
-  $get = array(
2233
+    // Construct query string
2234
+    $get = array(
2235 2235
     'cpid' => $cpid
2236
-  );
2237
-  $args = array();
2238
-  foreach ($get as $arg => $value) $args[] = "{$arg}=" . rawurlencode($value);
2239
-  $query = '?' . implode('&', $args);
2236
+    );
2237
+    $args = array();
2238
+    foreach ($get as $arg => $value) $args[] = "{$arg}=" . rawurlencode($value);
2239
+    $query = '?' . implode('&', $args);
2240 2240
   
2241
-  // Load XML from RPC
2242
-  $target_url = "http://{$stats_server}/{$stats_rpc}{$query}";
2243
-  $result = drupal_http_request($target_url);
2244
-  if (in_array($result->code, array(200, 304))) {
2241
+    // Load XML from RPC
2242
+    $target_url = "http://{$stats_server}/{$stats_rpc}{$query}";
2243
+    $result = drupal_http_request($target_url);
2244
+    if (in_array($result->code, array(200, 304))) {
2245 2245
     return simplexml_load_string($result->data);
2246
-  }
2247
-  return NULL;
2246
+    }
2247
+    return NULL;
2248 2248
 }
2249 2249
 
2250 2250
 /**
@@ -2252,15 +2252,15 @@  discard block
 block discarded – undo
2252 2252
  */
2253 2253
 function boincuser_get_projects($account = null) {
2254 2254
   
2255
-  // Use the current user by default
2256
-  if (!$account) {
2255
+    // Use the current user by default
2256
+    if (!$account) {
2257 2257
     global $user;
2258 2258
     $account = user_load($user->uid);
2259
-  }
2259
+    }
2260 2260
   
2261
-  $account_stats = boincuser_get_stats_user_data($account->boincuser_cpid);
2261
+    $account_stats = boincuser_get_stats_user_data($account->boincuser_cpid);
2262 2262
   
2263
-  return ($account_stats AND isset($account_stats->project)) ? $account_stats->project : null;
2263
+    return ($account_stats AND isset($account_stats->project)) ? $account_stats->project : null;
2264 2264
 }
2265 2265
 
2266 2266
 
@@ -2268,11 +2268,11 @@  discard block
 block discarded – undo
2268 2268
  * Get the links to display under the user profile
2269 2269
  */
2270 2270
 function boincuser_get_profile_links($uid) {
2271
-  global $user;
2272
-  $account = user_load($uid);
2273
-  $profile = content_profile_load('profile', $account->uid);
2274
-  $output = '';
2275
-  if ($profile) {
2271
+    global $user;
2272
+    $account = user_load($uid);
2273
+    $profile = content_profile_load('profile', $account->uid);
2274
+    $output = '';
2275
+    if ($profile) {
2276 2276
     $profile_is_approved = ($profile->status AND !$profile->moderate);
2277 2277
     $user_is_moderator = user_access('edit any profile content');
2278 2278
     $is_own_profile = ($user->uid == $account->uid);
@@ -2280,15 +2280,15 @@  discard block
 block discarded – undo
2280 2280
     $links = array();
2281 2281
     
2282 2282
     if ($profile->moderate AND $user_is_moderator) {
2283
-      $links['approve_profile'] = array(
2283
+        $links['approve_profile'] = array(
2284 2284
         'title' => bts('Approve profile', array(), NULL, 'boinc:moderate-user'),
2285 2285
         'href' => "{$profile_moderation_path}/approve",
2286 2286
         'attributes' => array(
2287
-          'title' => bts('Approve this profile content', array(), NULL, 'boinc:moderate-user'),
2288
-          'class' => 'first primary tab',
2287
+            'title' => bts('Approve this profile content', array(), NULL, 'boinc:moderate-user'),
2288
+            'class' => 'first primary tab',
2289 2289
         )
2290
-      );
2291
-      /*$links['edit_profile'] = array(
2290
+        );
2291
+        /*$links['edit_profile'] = array(
2292 2292
         'title' => bts('Edit profile', array(), NULL, 'boinc:moderate-user'),
2293 2293
         'href' => "{$profile_moderation_path}/edit",
2294 2294
         'attributes' => array(
@@ -2296,27 +2296,27 @@  discard block
 block discarded – undo
2296 2296
           'class' => 'tab',
2297 2297
         )
2298 2298
       );*/
2299
-      $links['reject_profile'] = array(
2299
+        $links['reject_profile'] = array(
2300 2300
         'title' => bts('Reject profile', array(), NULL, 'boinc:moderate-user'),
2301 2301
         'href' => "{$profile_moderation_path}/reject",
2302 2302
         'attributes' => array(
2303
-          'title' => bts('Reject this profile content', array(), NULL, 'boinc:moderate-user'),
2304
-          'class' => 'tab',
2303
+            'title' => bts('Reject this profile content', array(), NULL, 'boinc:moderate-user'),
2304
+            'class' => 'tab',
2305 2305
         )
2306
-      );
2306
+        );
2307 2307
     }
2308 2308
     $output .= '<ul class="tab-list">';
2309 2309
     $count = 0;
2310 2310
     foreach ($links as $key => $link) {
2311
-      $output .= '<li class="' . (($count == 0) ? 'first primary ' : '') . 'tab">';
2312
-      $output .= l($link['title'], $link['href'], array('query' => drupal_get_destination()));
2313
-      $output .= '</li>';
2314
-      $count++;
2311
+        $output .= '<li class="' . (($count == 0) ? 'first primary ' : '') . 'tab">';
2312
+        $output .= l($link['title'], $link['href'], array('query' => drupal_get_destination()));
2313
+        $output .= '</li>';
2314
+        $count++;
2315 2315
     }
2316 2316
     $output .= '<li class="' . (($count) ? '' : 'first ') . 'last tab">' . flag_create_link('abuse_user_meta', $account->uid) . '</li>';
2317 2317
     $output .= '</ul>';
2318
-  }
2319
-  return $output;
2318
+    }
2319
+    return $output;
2320 2320
 /*
2321 2321
 <ul class="tab-list">
2322 2322
   <li class="primary first tab">
@@ -2353,36 +2353,36 @@  discard block
 block discarded – undo
2353 2353
  */
2354 2354
 function boincuser_apachesolr_index_documents_alter(array &$documents, $entity, $entity_type, $env_id) {
2355 2355
 
2356
-  foreach ($documents as $document) {
2356
+    foreach ($documents as $document) {
2357 2357
     if ( $document->entity_type=='node' AND $document->bundle=='profile' ) {
2358
-      // Node information.
2359
-      $nid = $document->entity_id;
2360
-      $node = node_load($nid);
2361
-      $account = user_load($node->uid);
2362
-
2363
-      // Use boincuser name and not drupal user name
2364
-      $document->label = apachesolr_clean_text($account->boincuser_name);
2365
-      // Author information
2366
-      if ($node->uid == 0 || strlen($node->name) == 0) {
2358
+        // Node information.
2359
+        $nid = $document->entity_id;
2360
+        $node = node_load($nid);
2361
+        $account = user_load($node->uid);
2362
+
2363
+        // Use boincuser name and not drupal user name
2364
+        $document->label = apachesolr_clean_text($account->boincuser_name);
2365
+        // Author information
2366
+        if ($node->uid == 0 || strlen($node->name) == 0) {
2367 2367
         // @see user_validate_name(). !'0' === TRUE.
2368 2368
         $document->ss_name = '0';
2369
-      }
2370
-      else {
2369
+        }
2370
+        else {
2371 2371
         $document->ss_name = $account->boincuser_name;
2372 2372
         // We want the name to be searchable for keywords.
2373 2373
         $document->tos_name = $account->boincuser_name;
2374
-      }
2374
+        }
2375 2375
 
2376
-      // Rename "Profle" to "User"
2377
-      $document->bundle = "User";
2378
-      $document->bundle_name = "User";
2376
+        // Rename "Profle" to "User"
2377
+        $document->bundle = "User";
2378
+        $document->bundle_name = "User";
2379 2379
 
2380
-      // Replace the Solr document's created field with the date the user 
2381
-      // account was created. This replaces the node creation date typically 
2382
-      // used for indexing nodes.
2383
-      $document->ds_created = apachesolr_date_iso($account->created);
2380
+        // Replace the Solr document's created field with the date the user 
2381
+        // account was created. This replaces the node creation date typically 
2382
+        // used for indexing nodes.
2383
+        $document->ds_created = apachesolr_date_iso($account->created);
2384
+    }
2384 2385
     }
2385
-  }
2386 2386
 
2387 2387
 }
2388 2388
 
@@ -2394,23 +2394,23 @@  discard block
 block discarded – undo
2394 2394
  * Implementation of hook_privatemsg_name_lookup();
2395 2395
  */
2396 2396
 function boincuser_privatemsg_name_lookup($string) {
2397
-  // Get the BOINC ID from the name string, and lookup the
2398
-  // corresponding drupal user.
2399
-  $boincname = substr($string, 0, strrpos($string, '_'));
2400
-  $boincid = substr($string, strrpos($string, '_') + 1);
2401
-  $drupalid = get_drupal_id($boincid);
2402
-
2403
-  // Name has spaced replaced with special UTF-8 characters in
2404
-  // privatemsg module. We need to convert them back to spaces for the
2405
-  // check below.
2406
-  $boincname = preg_replace("/\\xc2\\xa0/", " ", $boincname);
2407
-  if ($drupalid>0) {
2397
+    // Get the BOINC ID from the name string, and lookup the
2398
+    // corresponding drupal user.
2399
+    $boincname = substr($string, 0, strrpos($string, '_'));
2400
+    $boincid = substr($string, strrpos($string, '_') + 1);
2401
+    $drupalid = get_drupal_id($boincid);
2402
+
2403
+    // Name has spaced replaced with special UTF-8 characters in
2404
+    // privatemsg module. We need to convert them back to spaces for the
2405
+    // check below.
2406
+    $boincname = preg_replace("/\\xc2\\xa0/", " ", $boincname);
2407
+    if ($drupalid>0) {
2408 2408
     if ($recipient = user_load(array('uid' => $drupalid))) {
2409
-      // Double-check that the loaded user matches both boincuser_id
2410
-      // and boincuser_name.
2411
-      if ( ($boincid == $recipient->boincuser_id) AND ($boincname == $recipient->boincuser_name) ) {
2409
+        // Double-check that the loaded user matches both boincuser_id
2410
+        // and boincuser_name.
2411
+        if ( ($boincid == $recipient->boincuser_id) AND ($boincname == $recipient->boincuser_name) ) {
2412 2412
         return $recipient;
2413
-      }
2413
+        }
2414
+    }
2414 2415
     }
2415
-  }
2416 2416
 }
Please login to merge, or discard this patch.