Passed
Push — master ( d911ac...3cf5fb )
by Kevin
07:11 queued 10s
created
drupal/sites/default/boinc/modules/boincuser/boincuser.module 1 patch
Switch Indentation   +452 added lines, -452 removed lines patch added patch discarded remove patch
@@ -27,295 +27,295 @@  discard block
 block discarded – undo
27 27
  * with defined URL paths
28 28
  */
29 29
 function boincuser_menu() {
30
-  $items['account/posts'] = array(
31
-    'title' => 'Recent posts',
32
-    'description' => '',
33
-    'page callback' => 'boincuser_goto_recent_posts',
34
-    'access callback' => 'user_is_logged_in',
35
-    'type' => MENU_CALLBACK,
36
-  );
37
-  $items['account/profile'] = array(
38
-    'title' => '',
39
-    'description' => '',
40
-    'page callback' => 'boincuser_view_profile',
41
-    'access callback' => 'user_is_logged_in',
42
-    'type' => MENU_NORMAL_ITEM
43
-  );
44
-  $items['account/profile/view'] = array(
45
-    'title' => 'View',
46
-    'description' => 'Show a user profile',
47
-    'page callback' => 'boincuser_view_profile',
48
-    'access callback' => 'user_is_logged_in',
49
-    'type' => MENU_DEFAULT_LOCAL_TASK,
50
-    'weight' => 0
51
-  );
52
-  $items['account/profile/edit'] = array(
53
-    'title' => 'Edit',
54
-    'description' => 'Edit a user profile',
55
-    'page callback' => 'boincuser_edit_profile',
56
-    'access arguments' => array('edit own profile content'),
57
-    'type' => MENU_LOCAL_TASK,
58
-    'weight' => 5
59
-  );
60
-  $items['account/team'] = array(
61
-    'title' => 'User team',
62
-    'description' => '',
63
-    'page callback' => 'boincuser_goto_team',
64
-    'access callback' => 'user_is_logged_in',
65
-    'type' => MENU_CALLBACK,
66
-  );
67
-  $items['moderate/profile/%user/approve'] = array(
68
-    'title' => 'Profile approval',
69
-    'description' => 'Approve profile content',
70
-    'page callback' => 'boincuser_moderate_profile_approve',
71
-    'page arguments' => array(2),
72
-    'access arguments' => array('edit any profile content'),
73
-    'type' => MENU_CALLBACK,
74
-    'weight' => 5
75
-  );
76
-  $items['moderate/profile/%user/edit'] = array(
77
-    'title' => 'Profile editor',
78
-    'description' => 'Edit a user profile',
79
-    'page callback' => 'boincuser_edit_profile',
80
-    'page arguments' => array(2),
81
-    'access arguments' => array('edit any profile content'),
82
-    'type' => MENU_CALLBACK,
83
-    'weight' => 5
84
-  );
85
-  $items['moderate/profile/%/reject'] = array(
86
-    'title' => bts('Reject profile', array(), NULL, 'boinc:moderate-user'),
87
-    'description' => 'Reject profile content',
88
-    'page callback' => 'drupal_get_form',
89
-    'page arguments' => array('boincuser_moderate_profile_reject_form', 2),
90
-    'access arguments' => array('edit any profile content'),
91
-    'type' => MENU_CALLBACK,
92
-    'weight' => 5
93
-  );
94
-  $items['moderate/user/%/ban'] = array(
95
-    'title' => bts('Ban user', array(), NULL, 'boinc:moderate-ban-user'),
96
-    'description' => 'Ban a user from using community features',
97
-    'page callback' => 'drupal_get_form',
98
-    'page arguments' => array('boincuser_moderate_user_ban_form', 2),
99
-    'access callback' => 'boincuser_moderate_community_access',
100
-    'type' => MENU_CALLBACK,
101
-  );
102
-  $items['join'] = array(
103
-    'title' => '',
104
-    'description' => '',
105
-    'page callback' => 'join_page',
106
-    'access arguments' => array('access content'),
107
-    'type' => MENU_NORMAL_ITEM
108
-  );
109
-  $items['join/new'] = array(
110
-    'title' => bts("I'm new"),
111
-    'page callback' => 'join_page',
112
-    'page arguments' => array(1),
113
-    'access arguments' => array('access content'),
114
-    'type' => MENU_DEFAULT_LOCAL_TASK,
115
-    'weight' => 0
116
-  );
117
-  $items['join/boinc'] = array(
118
-    'title' => bts("I'm a BOINC user"),
119
-    'page callback' => 'join_page',
120
-    'page arguments' => array(1),
121
-    'access arguments' => array('access content'),
122
-    'type' => MENU_LOCAL_TASK,
123
-    'weight' => 5
124
-  );
125
-  $items['user/login/auth'] = array(
126
-    'title' => bts('Authenticator login', array(), NULL, 'boinc:authenticator-login-page'),
127
-    'description' => 'Log in using a user authenticator',
128
-    'page callback' => 'drupal_get_form',
129
-    'page arguments' => array('boincuser_authloginform'),
130
-    'access arguments' => array('access content'),
131
-    'type' => MENU_CALLBACK,
132
-  );
133
-  $items['user/termsofuse'] = array(
134
-    'title' => bts('Terms of Use', array(), NULL, 'boinc:termsofuse-form'),
135
-    'description' => 'A site\'s term of use.',
136
-    'page callback' => 'drupal_get_form',
137
-    'page arguments' => array('boincuser_termsofuse_form'),
138
-    'access callback' => 'user_is_logged_in',
139
-    'type' => MENU_CALLBACK,
140
-  );
141
-  $items['user_control'] = array(
142
-    'page callback' => 'boincuser_control',
143
-    'access arguments' => array('access user profiles'),
144
-    'type' => MENU_CALLBACK
145
-  );
146
-  $items['admin/boinc'] = array(
147
-    'title' => 'BOINC configuration',
148
-    'position' => 'right',
149
-    'weight' => -8,
150
-    'page callback' => 'system_admin_menu_block_page',
151
-    'access arguments' => array('administer site configuration'),
152
-    'file' => 'system.admin.inc',
153
-    'file path' => drupal_get_path('module', 'system'),
154
-  );
155
-  $items['admin/boinc/environment'] = array(
156
-    'title' => 'Environment: General',
157
-    'description' => 'Set paths to BOINC functions and any other necessary
30
+$items['account/posts'] = array(
31
+'title' => 'Recent posts',
32
+'description' => '',
33
+'page callback' => 'boincuser_goto_recent_posts',
34
+'access callback' => 'user_is_logged_in',
35
+'type' => MENU_CALLBACK,
36
+);
37
+$items['account/profile'] = array(
38
+'title' => '',
39
+'description' => '',
40
+'page callback' => 'boincuser_view_profile',
41
+'access callback' => 'user_is_logged_in',
42
+'type' => MENU_NORMAL_ITEM
43
+);
44
+$items['account/profile/view'] = array(
45
+'title' => 'View',
46
+'description' => 'Show a user profile',
47
+'page callback' => 'boincuser_view_profile',
48
+'access callback' => 'user_is_logged_in',
49
+'type' => MENU_DEFAULT_LOCAL_TASK,
50
+'weight' => 0
51
+);
52
+$items['account/profile/edit'] = array(
53
+'title' => 'Edit',
54
+'description' => 'Edit a user profile',
55
+'page callback' => 'boincuser_edit_profile',
56
+'access arguments' => array('edit own profile content'),
57
+'type' => MENU_LOCAL_TASK,
58
+'weight' => 5
59
+);
60
+$items['account/team'] = array(
61
+'title' => 'User team',
62
+'description' => '',
63
+'page callback' => 'boincuser_goto_team',
64
+'access callback' => 'user_is_logged_in',
65
+'type' => MENU_CALLBACK,
66
+);
67
+$items['moderate/profile/%user/approve'] = array(
68
+'title' => 'Profile approval',
69
+'description' => 'Approve profile content',
70
+'page callback' => 'boincuser_moderate_profile_approve',
71
+'page arguments' => array(2),
72
+'access arguments' => array('edit any profile content'),
73
+'type' => MENU_CALLBACK,
74
+'weight' => 5
75
+);
76
+$items['moderate/profile/%user/edit'] = array(
77
+'title' => 'Profile editor',
78
+'description' => 'Edit a user profile',
79
+'page callback' => 'boincuser_edit_profile',
80
+'page arguments' => array(2),
81
+'access arguments' => array('edit any profile content'),
82
+'type' => MENU_CALLBACK,
83
+'weight' => 5
84
+);
85
+$items['moderate/profile/%/reject'] = array(
86
+'title' => bts('Reject profile', array(), NULL, 'boinc:moderate-user'),
87
+'description' => 'Reject profile content',
88
+'page callback' => 'drupal_get_form',
89
+'page arguments' => array('boincuser_moderate_profile_reject_form', 2),
90
+'access arguments' => array('edit any profile content'),
91
+'type' => MENU_CALLBACK,
92
+'weight' => 5
93
+);
94
+$items['moderate/user/%/ban'] = array(
95
+'title' => bts('Ban user', array(), NULL, 'boinc:moderate-ban-user'),
96
+'description' => 'Ban a user from using community features',
97
+'page callback' => 'drupal_get_form',
98
+'page arguments' => array('boincuser_moderate_user_ban_form', 2),
99
+'access callback' => 'boincuser_moderate_community_access',
100
+'type' => MENU_CALLBACK,
101
+);
102
+$items['join'] = array(
103
+'title' => '',
104
+'description' => '',
105
+'page callback' => 'join_page',
106
+'access arguments' => array('access content'),
107
+'type' => MENU_NORMAL_ITEM
108
+);
109
+$items['join/new'] = array(
110
+'title' => bts("I'm new"),
111
+'page callback' => 'join_page',
112
+'page arguments' => array(1),
113
+'access arguments' => array('access content'),
114
+'type' => MENU_DEFAULT_LOCAL_TASK,
115
+'weight' => 0
116
+);
117
+$items['join/boinc'] = array(
118
+'title' => bts("I'm a BOINC user"),
119
+'page callback' => 'join_page',
120
+'page arguments' => array(1),
121
+'access arguments' => array('access content'),
122
+'type' => MENU_LOCAL_TASK,
123
+'weight' => 5
124
+);
125
+$items['user/login/auth'] = array(
126
+'title' => bts('Authenticator login', array(), NULL, 'boinc:authenticator-login-page'),
127
+'description' => 'Log in using a user authenticator',
128
+'page callback' => 'drupal_get_form',
129
+'page arguments' => array('boincuser_authloginform'),
130
+'access arguments' => array('access content'),
131
+'type' => MENU_CALLBACK,
132
+);
133
+$items['user/termsofuse'] = array(
134
+'title' => bts('Terms of Use', array(), NULL, 'boinc:termsofuse-form'),
135
+'description' => 'A site\'s term of use.',
136
+'page callback' => 'drupal_get_form',
137
+'page arguments' => array('boincuser_termsofuse_form'),
138
+'access callback' => 'user_is_logged_in',
139
+'type' => MENU_CALLBACK,
140
+);
141
+$items['user_control'] = array(
142
+'page callback' => 'boincuser_control',
143
+'access arguments' => array('access user profiles'),
144
+'type' => MENU_CALLBACK
145
+);
146
+$items['admin/boinc'] = array(
147
+'title' => 'BOINC configuration',
148
+'position' => 'right',
149
+'weight' => -8,
150
+'page callback' => 'system_admin_menu_block_page',
151
+'access arguments' => array('administer site configuration'),
152
+'file' => 'system.admin.inc',
153
+'file path' => drupal_get_path('module', 'system'),
154
+);
155
+$items['admin/boinc/environment'] = array(
156
+'title' => 'Environment: General',
157
+'description' => 'Set paths to BOINC functions and any other necessary
158 158
       variables that establish a BOINC environment.',
159
-    'page callback' => 'drupal_get_form',
160
-    'page arguments' => array('boincuser_admin_environment'),
161
-    'access arguments' => array('administer site configuration'),
162
-    'type' => MENU_NORMAL_ITEM,
163
-    'file' => 'boincuser.admin.inc'
164
-  );
165
-  $items['admin/boinc/scheduler'] = array(
166
-    'title' => 'Environment: Scheduling server URLs',
167
-    'description' => 'Set BOINC scheduler options.',
168
-    'page callback' => 'drupal_get_form',
169
-    'page arguments' => array('boincuser_admin_scheduler'),
170
-    'access arguments' => array('administer site configuration'),
171
-    'type' => MENU_NORMAL_ITEM,
172
-    'file' => 'boincuser.admin.inc'
173
-  );
174
-  $items['admin/boinc/weboptions'] = array(
175
-    'title' => 'Environment: Website Options',
176
-    'description' => 'Set options configuring this Drupal-BOINC Web site.',
177
-    'page callback' => 'drupal_get_form',
178
-    'page arguments' => array('boincuser_admin_weboptions'),
179
-    'access arguments' => array('administer site configuration'),
180
-    'type' => MENU_NORMAL_ITEM,
181
-    'file' => 'boincuser.admin.inc'
182
-  );
159
+'page callback' => 'drupal_get_form',
160
+'page arguments' => array('boincuser_admin_environment'),
161
+'access arguments' => array('administer site configuration'),
162
+'type' => MENU_NORMAL_ITEM,
163
+'file' => 'boincuser.admin.inc'
164
+);
165
+$items['admin/boinc/scheduler'] = array(
166
+'title' => 'Environment: Scheduling server URLs',
167
+'description' => 'Set BOINC scheduler options.',
168
+'page callback' => 'drupal_get_form',
169
+'page arguments' => array('boincuser_admin_scheduler'),
170
+'access arguments' => array('administer site configuration'),
171
+'type' => MENU_NORMAL_ITEM,
172
+'file' => 'boincuser.admin.inc'
173
+);
174
+$items['admin/boinc/weboptions'] = array(
175
+'title' => 'Environment: Website Options',
176
+'description' => 'Set options configuring this Drupal-BOINC Web site.',
177
+'page callback' => 'drupal_get_form',
178
+'page arguments' => array('boincuser_admin_weboptions'),
179
+'access arguments' => array('administer site configuration'),
180
+'type' => MENU_NORMAL_ITEM,
181
+'file' => 'boincuser.admin.inc'
182
+);
183 183
   
184
-  $items['create_account.php'] = array(
185
-    'title' => 'Create Account RPC',
186
-    'description' => 'RPC for creating user accounts.',
187
-    'page callback' => 'boincuser_create_account',
188
-    'access callback' => TRUE,
189
-    'type' => MENU_CALLBACK
190
-  );
191
-  $items['account_finish.php'] = array(
192
-    'title' => 'Welcome to ' . variable_get('site_name', 'Drupal-BOINC'),
193
-    'description' => 'RPC for after a user has created an account.',
194
-    'page callback' => 'boincuser_account_finish',
195
-    'access callback' => TRUE,
196
-    'type' => MENU_CALLBACK,
197
-  );
198
-  $items['boincuser/autocomplete'] = array(
199
-    'page callback' => '_boincuser_user_name_autocomplete',
200
-    'access callback' => TRUE,
201
-    'type' => MENU_CALLBACK,
202
-  );
203
-  $items['user/%user/recoveremail/%'] = array(
204
-    'title' => t('Recover previous email'),
205
-    'description' => t('Form to revert email to previous address.'),
206
-    'page callback' => 'drupal_get_form',
207
-    'page arguments' => array('boincuser_revertemail', 3),
208
-    'access callback' => 'user_is_logged_in',
209
-    'type' => MENU_CALLBACK,
210
-  );
211
-  $items['recover_email.php'] = array(
212
-    'title' => t('Recover previous email'),
213
-    'description' => t('redirect'),
214
-    'page callback' => '_boincuser_redirect_recover_email',
215
-    'access callback' => TRUE,
216
-    'type' => MENU_CALLBACK,
217
-  );
218
-  return $items;
184
+$items['create_account.php'] = array(
185
+'title' => 'Create Account RPC',
186
+'description' => 'RPC for creating user accounts.',
187
+'page callback' => 'boincuser_create_account',
188
+'access callback' => TRUE,
189
+'type' => MENU_CALLBACK
190
+);
191
+$items['account_finish.php'] = array(
192
+'title' => 'Welcome to ' . variable_get('site_name', 'Drupal-BOINC'),
193
+'description' => 'RPC for after a user has created an account.',
194
+'page callback' => 'boincuser_account_finish',
195
+'access callback' => TRUE,
196
+'type' => MENU_CALLBACK,
197
+);
198
+$items['boincuser/autocomplete'] = array(
199
+'page callback' => '_boincuser_user_name_autocomplete',
200
+'access callback' => TRUE,
201
+'type' => MENU_CALLBACK,
202
+);
203
+$items['user/%user/recoveremail/%'] = array(
204
+'title' => t('Recover previous email'),
205
+'description' => t('Form to revert email to previous address.'),
206
+'page callback' => 'drupal_get_form',
207
+'page arguments' => array('boincuser_revertemail', 3),
208
+'access callback' => 'user_is_logged_in',
209
+'type' => MENU_CALLBACK,
210
+);
211
+$items['recover_email.php'] = array(
212
+'title' => t('Recover previous email'),
213
+'description' => t('redirect'),
214
+'page callback' => '_boincuser_redirect_recover_email',
215
+'access callback' => TRUE,
216
+'type' => MENU_CALLBACK,
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/') {
229
-    return;
230
-  }
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
+return;
230
+}
231 231
 
232
-  // If admin user, do some basic site functionality checks
233
-  if (user_access('administer site configuration')) {
234
-    // Ensure we have a configured BOINC environment
235
-    boinc_get_path();
236
-    boinc_get_scheduler_tags();
237
-  }
232
+// If admin user, do some basic site functionality checks
233
+if (user_access('administer site configuration')) {
234
+// Ensure we have a configured BOINC environment
235
+boinc_get_path();
236
+boinc_get_scheduler_tags();
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')) {
243
-    // Display any persistent team messages
244
-    boincteam_show_messages();
245
-  }
242
+if (module_exists('boincteam')) {
243
+// Display any persistent team messages
244
+boincteam_show_messages();
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) ) {
253
-    if ( !boincuser_check_termsofuse($user) and ($existinguser_tou) ) {
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])) {
259
-        $path = drupal_get_path_alias($_GET['q']);
260
-
261
-        // Any paths that should NOT be redirected go here.
262
-        // The site will not function correctly if these are not exempt!
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',
270
-        );
271
-        if (module_exists('boincuser_delete')) {
272
-          $paths0[] = 'user/' . $user->uid . '/delete';
273
-          $paths0[] = 'user/' . $user->uid . '/deleteconfirm/*';
274
-          $paths0[] = 'user/' . $user->uid . '/odeleteconfirm/*';
275
-        }
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
+if ( !boincuser_check_termsofuse($user) and ($existinguser_tou) ) {
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])) {
259
+    $path = drupal_get_path_alias($_GET['q']);
260
+
261
+    // Any paths that should NOT be redirected go here.
262
+    // The site will not function correctly if these are not exempt!
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',
270
+    );
271
+    if (module_exists('boincuser_delete')) {
272
+      $paths0[] = 'user/' . $user->uid . '/delete';
273
+      $paths0[] = 'user/' . $user->uid . '/deleteconfirm/*';
274
+      $paths0[] = 'user/' . $user->uid . '/odeleteconfirm/*';
275
+    }
276 276
 
277
-        // Paths added by the admin
278
-        $paths1 = preg_split('/\r\n|\r|\n/', variable_get('boinc_weboptions_pathstoignore', "moderation\ncontent/moderation\nprivacy"));
279
-        $paths2 = array();
280
-        if (is_array($paths1)) {
281
-          $paths2 = array_map('strtolower', $paths1);
282
-        }
277
+    // Paths added by the admin
278
+    $paths1 = preg_split('/\r\n|\r|\n/', variable_get('boinc_weboptions_pathstoignore', "moderation\ncontent/moderation\nprivacy"));
279
+    $paths2 = array();
280
+    if (is_array($paths1)) {
281
+      $paths2 = array_map('strtolower', $paths1);
282
+    }
283 283
 
284
-        // paths to ignore
285
-        $paths_to_ignore = array_unique( array_merge($paths0, $paths2) );
284
+    // paths to ignore
285
+    $paths_to_ignore = array_unique( array_merge($paths0, $paths2) );
286 286
 
287
-        if (!_boincuser_ignore_paths($path, $paths_to_ignore)) {
288
-          drupal_goto('user/termsofuse');
289
-        }
290
-      }
287
+    if (!_boincuser_ignore_paths($path, $paths_to_ignore)) {
288
+      drupal_goto('user/termsofuse');
291 289
     }
292 290
   }
293 291
 }
292
+}
293
+}
294 294
 
295 295
 /**
296 296
  * Implementation of hook_user(); add custom actions to standard
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');
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)) {
307
-    switch($op) {
308
-    case 'load':
309
-      // User loading; insert BOINC data into the user object
310
-      $drupal_user = db_fetch_object(db_query("
300
+require_boinc('boinc_db');
301
+require_boinc('user');
302
+require_boinc('xml');
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)) {
307
+switch($op) {
308
+case 'load':
309
+// User loading; insert BOINC data into the user object
310
+$drupal_user = db_fetch_object(db_query("
311 311
         SELECT boinc_id, penalty_expiration
312 312
         FROM {boincuser} WHERE uid = %d",
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("
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("
319 319
         SELECT
320 320
           name,
321 321
           authenticator,
@@ -330,30 +330,30 @@  discard block
 block discarded – undo
330 330
           email_addr_change_time
331 331
         FROM {user}
332 332
         WHERE id = %d",
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) {
350
-        $account->team = db_result(db_query("
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) {
350
+$account->team = db_result(db_query("
351 351
           SELECT nid FROM {boincteam} WHERE team_id = %d",
352
-          $account->boincteam_id
353
-        ));
354
-      }
355
-      // Set post count
356
-      $account->post_count = db_result(db_query("
352
+$account->boincteam_id
353
+));
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}
@@ -365,13 +365,13 @@  discard block
 block discarded – undo
365 365
         INNER JOIN node ON comments.nid = node.nid
366 366
         WHERE comments.uid = '%d'
367 367
         AND node.status = 1",
368
-        $account->uid, $account->uid
369
-      ));
370
-      break;
368
+$account->uid, $account->uid
369
+));
370
+break;
371 371
       
372
-    case 'view':
373
-      // SAMPLE: Add BOINC data to the user profile
374
-      /*$account->content['summary']['boinc_id'] = array(
372
+case 'view':
373
+// SAMPLE: Add BOINC data to the user profile
374
+/*$account->content['summary']['boinc_id'] = array(
375 375
         '#type' => 'user_profile_item',
376 376
         '#title' => bts('BIONC ID'),
377 377
         '#value' => $account->boincuser_id,
@@ -385,174 +385,174 @@  discard block
 block discarded – undo
385 385
         '#attributes' => array('class' => 'boinc-data'),
386 386
         '#weight' => 10
387 387
       );*/
388
-      break;
388
+break;
389 389
       
390
-    case 'validate':
391
-      if (isset($edit['validation_source'])) {
392
-        switch ($edit['validation_source']) {
393
-        case 'user_account':
394
-          // Validate data before updating user account info
395
-          boincuser_account_validate($edit, $account);
396
-          break;
390
+case 'validate':
391
+if (isset($edit['validation_source'])) {
392
+switch ($edit['validation_source']) {
393
+case 'user_account':
394
+// Validate data before updating user account info
395
+boincuser_account_validate($edit, $account);
396
+break;
397 397
         
398
-        default:
398
+default:
399 399
           
400
-        }
401
-        // We don't want to save validation source, so remove it
402
-        $edit['validation_source'] = null;
403
-      }
404
-      break;
400
+}
401
+    // We don't want to save validation source, so remove it
402
+    $edit['validation_source'] = null;
403
+  }
404
+  break;
405 405
       
406
-    case 'insert':
407
-      // New user being added to the system
408
-      $imported = $_SESSION['importedUser'];
409
-      unset($_SESSION['importedUser']);
406
+case 'insert':
407
+  // New user being added to the system
408
+  $imported = $_SESSION['importedUser'];
409
+  unset($_SESSION['importedUser']);
410 410
       
411
-      watchdog(
412
-        'boincuser',
413
-        'Creating user account for %email_addr',
414
-        array('%email_addr' => $edit['mail']),
415
-        WATCHDOG_NOTICE
416
-      );
411
+  watchdog(
412
+    'boincuser',
413
+    'Creating user account for %email_addr',
414
+    array('%email_addr' => $edit['mail']),
415
+    WATCHDOG_NOTICE
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
-        // set email address lower-case
425
-        $lower_email_addr = strtolower($edit['mail']);
424
+    // set email address lower-case
425
+    $lower_email_addr = strtolower($edit['mail']);
426 426
 
427
-        if ($edit['boincuser_name']) {
428
-          $myname = $edit['boincuser_name'];
429
-        }
430
-        else if ($edit['name']) {
431
-          $myname = $edit['name'];
432
-        }
433
-        else {
434
-          $myname = 'noname';
435
-        }
427
+    if ($edit['boincuser_name']) {
428
+      $myname = $edit['boincuser_name'];
429
+    }
430
+    else if ($edit['name']) {
431
+      $myname = $edit['name'];
432
+    }
433
+    else {
434
+      $myname = 'noname';
435
+    }
436 436
 
437
-        $user_params = array(
438
-          'email_addr' => $lower_email_addr,
439
-          'name' => $myname,
440
-        );
437
+    $user_params = array(
438
+      'email_addr' => $lower_email_addr,
439
+      'name' => $myname,
440
+    );
441 441
 
442
-        // If the 'pass' variable is already a hash, then don't hash it again.
443
-        if ($edit['boinchash_flag']) {
444
-          $user_params['passwd_hash'] = $edit['pass'];
445
-        }
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);
451
-        }
442
+    // If the 'pass' variable is already a hash, then don't hash it again.
443
+    if ($edit['boinchash_flag']) {
444
+      $user_params['passwd_hash'] = $edit['pass'];
445
+    }
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);
451
+    }
452 452
 
453
-        $boinc_user = boincuser_register_make_user($user_params);
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;
458
-        }
453
+    $boinc_user = boincuser_register_make_user($user_params);
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;
458
+    }
459 459
 
460
-        // Add user to community role by default (not banned)
461
-        $unrestricted_role = array_search('community member', user_roles(true)); 
462
-        $edit['roles'] = array(
463
-          $unrestricted_role => ''
464
-        );
460
+    // Add user to community role by default (not banned)
461
+    $unrestricted_role = array_search('community member', user_roles(true)); 
462
+    $edit['roles'] = array(
463
+      $unrestricted_role => ''
464
+    );
465 465
 
466
-        // Disable show_hosts flag, set to TRUE by default
467
-        db_set_active('boinc_rw');
468
-        db_query("UPDATE {user} SET show_hosts=0 WHERE id='%d'", $boinc_user->id);
469
-        db_set_active('default');
466
+    // Disable show_hosts flag, set to TRUE by default
467
+    db_set_active('boinc_rw');
468
+    db_query("UPDATE {user} SET show_hosts=0 WHERE id='%d'", $boinc_user->id);
469
+    db_set_active('default');
470 470
 
471
-        // Cross reference Drupal account with BOINC
472
-        $reference = db_query("INSERT INTO {boincuser} SET uid='%d', boinc_id='%d'", $account->uid, $boinc_user->id);
473
-        if (!$reference) {
474
-          drupal_set_message(t('Error connecting BOINC account.'), 'error');
475
-          return;
476
-        }
471
+    // Cross reference Drupal account with BOINC
472
+    $reference = db_query("INSERT INTO {boincuser} SET uid='%d', boinc_id='%d'", $account->uid, $boinc_user->id);
473
+    if (!$reference) {
474
+      drupal_set_message(t('Error connecting BOINC account.'), 'error');
475
+      return;
476
+    }
477 477
 
478
-        // if terms of use exist, the user must agree.
479
-        $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
480
-        if (!empty($termsofuse)) {
481
-          $reference2 = boincuser_consentto_termsofuse($account);
482
-        }
478
+    // if terms of use exist, the user must agree.
479
+    $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
480
+    if (!empty($termsofuse)) {
481
+      $reference2 = boincuser_consentto_termsofuse($account);
482
+    }
483 483
 
484
-        // Don't save custom fields to the Drupal user object
485
-        $edit['boincuser_name'] = null;
486
-        $edit['boinchash_flag'] = null;
487
-        // Set email address to lower case in Drupal users table
488
-        if ($account) {
489
-          user_save($account, array('mail' => $lower_email_addr));
490
-        }
491
-      }
492
-      break;
484
+    // Don't save custom fields to the Drupal user object
485
+    $edit['boincuser_name'] = null;
486
+    $edit['boinchash_flag'] = null;
487
+    // Set email address to lower case in Drupal users table
488
+    if ($account) {
489
+      user_save($account, array('mail' => $lower_email_addr));
490
+    }
491
+  }
492
+  break;
493 493
       
494
-    case 'update':
495
-      if (isset($edit['update_source'])) {
496
-        require_boinc('boinc_db');
497
-        $boinc_user = BoincUser::lookup_id($account->boincuser_id);
498
-        switch ($edit['update_source']) {
499
-        case 'user_account':
500
-          // Ensure that BOINC data is altered
501
-
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) {
505
-            // set email address to lower-case
506
-            $lower_email_addr = strtolower($edit['mail']);
507
-
508
-            // Set password hash appropriately
509
-            $passwd = ($edit['pass']) ? $edit['pass'] : $edit['current_pass'];
510
-            $passwd_hash = password_hash( md5($passwd.$lower_email_addr), PASSWORD_DEFAULT );
511
-            // Algorithm for changing email and/or password
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";
517
-            }
518
-            else {
519
-              $querypart = "email_addr='{$lower_email_addr}', passwd_hash='{$passwd_hash}'";
520
-            }
521
-
522
-            // Update user account information
523
-            $result = $boinc_user->update($querypart);
524
-
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'));
529
-            }
530
-
531
-            // Change email to edit to lower-case version, this sets
532
-            // email in Drupal database to the lower-case email
533
-            // address.
534
-            $edit['mail'] = strtolower($lower_email_addr);
535
-          }
536
-
537
-          // Change boinc username
538
-          if ($edit['boincuser_name'] and ($edit['boincuser_name'] != $boinc_user->name)) {
539
-            $boincuser_name = $edit['boincuser_name'];
540
-            $result = $boinc_user->update(
541
-                "name='{$boincuser_name}'"
542
-            );
543
-          }
544
-
545
-          break;
546
-        case 'user_profile':
547
-          if ($edit['boincuser_name'] != $boinc_user->name) {
548
-            $boincuser_name = $edit['boincuser_name'];
549
-            $result = $boinc_user->update(
550
-                "name='{$boincuser_name}'"
551
-            );
552
-          }
553
-          break;
554
-        default:
555
-        }
494
+case 'update':
495
+  if (isset($edit['update_source'])) {
496
+    require_boinc('boinc_db');
497
+    $boinc_user = BoincUser::lookup_id($account->boincuser_id);
498
+    switch ($edit['update_source']) {
499
+    case 'user_account':
500
+    // Ensure that BOINC data is altered
501
+
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) {
505
+    // set email address to lower-case
506
+    $lower_email_addr = strtolower($edit['mail']);
507
+
508
+    // Set password hash appropriately
509
+    $passwd = ($edit['pass']) ? $edit['pass'] : $edit['current_pass'];
510
+    $passwd_hash = password_hash( md5($passwd.$lower_email_addr), PASSWORD_DEFAULT );
511
+    // Algorithm for changing email and/or password
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";
517
+    }
518
+    else {
519
+    $querypart = "email_addr='{$lower_email_addr}', passwd_hash='{$passwd_hash}'";
520
+    }
521
+
522
+    // Update user account information
523
+    $result = $boinc_user->update($querypart);
524
+
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'));
529
+    }
530
+
531
+    // Change email to edit to lower-case version, this sets
532
+    // email in Drupal database to the lower-case email
533
+    // address.
534
+    $edit['mail'] = strtolower($lower_email_addr);
535
+    }
536
+
537
+    // Change boinc username
538
+    if ($edit['boincuser_name'] and ($edit['boincuser_name'] != $boinc_user->name)) {
539
+    $boincuser_name = $edit['boincuser_name'];
540
+    $result = $boinc_user->update(
541
+    "name='{$boincuser_name}'"
542
+    );
543
+    }
544
+
545
+    break;
546
+    case 'user_profile':
547
+    if ($edit['boincuser_name'] != $boinc_user->name) {
548
+    $boincuser_name = $edit['boincuser_name'];
549
+    $result = $boinc_user->update(
550
+    "name='{$boincuser_name}'"
551
+    );
552
+    }
553
+    break;
554
+    default:
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;
@@ -560,17 +560,17 @@  discard block
 block discarded – undo
560 560
       }
561 561
       break;
562 562
 
563
-    case 'login':
564
-      // Function is forward compatible to Drupal 7
565
-      boincuser_user_login($edit, $account);
566
-      break;
563
+case 'login':
564
+  // Function is forward compatible to Drupal 7
565
+  boincuser_user_login($edit, $account);
566
+  break;
567 567
 
568
-    case 'delete':
569
-      // Function is forward compatible to Drupal 7
570
-      boincuser_user_delete($account);
571
-      break;
568
+case 'delete':
569
+  // Function is forward compatible to Drupal 7
570
+  boincuser_user_delete($account);
571
+  break;
572 572
 
573
-    default:
573
+default:
574 574
       
575 575
     }
576 576
   }
Please login to merge, or discard this patch.