diff options
author | Aaron Schulz <aschulz@wikimedia.org> | 2012-06-03 10:14:09 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@wikimedia.org> | 2012-06-03 10:14:09 +0000 |
commit | 41fd47ed1e31e9c881ffde4cc9d29a83b70a8ee9 (patch) | |
tree | e3d94729756d408f5bcd7e060a59dc797703611c /includes | |
parent | bc789ee4e6d2e3b613acba35633e421ea06bd565 (diff) | |
parent | bf7a4bc7fcdda1e09b89adbdbd888dbdc847267b (diff) | |
download | mediawikicore-41fd47ed1e31e9c881ffde4cc9d29a83b70a8ee9.tar.gz mediawikicore-41fd47ed1e31e9c881ffde4cc9d29a83b70a8ee9.zip |
Merge "clean up User::getOptions a bit"
Diffstat (limited to 'includes')
-rw-r--r-- | includes/User.php | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/includes/User.php b/includes/User.php index 84f02afcc7e1..01407b1d8e0a 100644 --- a/includes/User.php +++ b/includes/User.php @@ -4041,13 +4041,9 @@ class User { protected function saveOptions() { global $wgAllowPrefChange; - $extuser = ExternalUser::newFromUser( $this ); - $this->loadOptions(); - $dbw = wfGetDB( DB_MASTER ); - - $insert_rows = array(); + // Not using getOptions(), to keep hidden preferences in database $saveOptions = $this->mOptions; // Allow hooks to abort, for instance to save to a global profile. @@ -4056,13 +4052,17 @@ class User { return; } + $extuser = ExternalUser::newFromUser( $this ); + $userId = $this->getId(); + $insert_rows = array(); foreach( $saveOptions as $key => $value ) { # Don't bother storing default values - if ( ( is_null( self::getDefaultOption( $key ) ) && - !( $value === false || is_null($value) ) ) || - $value != self::getDefaultOption( $key ) ) { + $defaultOption = self::getDefaultOption( $key ); + if ( ( is_null( $defaultOption ) && + !( $value === false || is_null( $value ) ) ) || + $value != $defaultOption ) { $insert_rows[] = array( - 'up_user' => $this->getId(), + 'up_user' => $userId, 'up_property' => $key, 'up_value' => $value, ); @@ -4079,7 +4079,8 @@ class User { } } - $dbw->delete( 'user_properties', array( 'up_user' => $this->getId() ), __METHOD__ ); + $dbw = wfGetDB( DB_MASTER ); + $dbw->delete( 'user_properties', array( 'up_user' => $userId ), __METHOD__ ); $dbw->insert( 'user_properties', $insert_rows, __METHOD__ ); } |