diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-03-07 18:46:55 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-03-07 18:46:55 +0000 |
commit | d1f26518a39f1148f734bfc199702fbce58f6beb (patch) | |
tree | 4f69a13cb511d57aeadde18e585808fe320348e2 /modules/user | |
parent | 157dc1e0b1d668ccce58ea06fe48e8f0191bfcd7 (diff) | |
download | brdo-d1f26518a39f1148f734bfc199702fbce58f6beb.tar.gz brdo-d1f26518a39f1148f734bfc199702fbce58f6beb.tar.bz2 |
#677766 by matason and atheneus: Fixed Account gets blocked when user edits their profile. (with tests)
Diffstat (limited to 'modules/user')
-rw-r--r-- | modules/user/user.module | 4 | ||||
-rw-r--r-- | modules/user/user.test | 36 |
2 files changed, 38 insertions, 2 deletions
diff --git a/modules/user/user.module b/modules/user/user.module index 135ef3573..aaa9fd3b6 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -998,10 +998,10 @@ function user_account_form(&$form, &$form_state) { } if ($admin) { - $status = (isset($account->status) ? $account->status : 1); + $status = isset($account->status) ? $account->status : 1; } else { - $status = (variable_get('user_register', 1) == 1); + $status = $register ? variable_get('user_register', 1) == 1 : $account->status; } $form['account']['status'] = array( '#type' => 'radios', diff --git a/modules/user/user.test b/modules/user/user.test index 70925ad8c..cc1e0cb96 100644 --- a/modules/user/user.test +++ b/modules/user/user.test @@ -1421,3 +1421,39 @@ class UserEditTestCase extends DrupalWebTestCase { $this->drupalLogout(); } } + +/** + * Test that a user, having editing their own account, can still log in. + */ +class UserEditedOwnAccountTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'User edited own account', + 'description' => 'Test user edited own account can still log in.', + 'group' => 'User', + ); + } + + function testUserEditedOwnAccount() { + // Change account setting 'Who can register accounts?' to Administrators + // only. + variable_set('user_register', 0); + + // Create a new user account and log in. + $account = $this->drupalCreateUser(array('change own username')); + $this->drupalLogin($account); + + // Change own username. + $edit = array(); + $edit['name'] = $this->randomName(); + $this->drupalPost('user/' . $account->uid . '/edit', $edit, t('Save')); + + // Log out. + $this->drupalLogout(); + + // Set the new name on the user account and attempt to log back in. + $account->name = $edit['name']; + $this->drupalLogin($account); + } +}
\ No newline at end of file |