1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-22 05:20:56 +01:00

Fix reading ad-hoc settings with no formal Settings object

Summary:
Ref T4103. Some settings (like the collapsed/expanded state of the diff filetree) are currently ad-hoc. They weren't being read correctly.

Also, simplify the caching code a little bit.

Test Plan: Toggled filetree, reloaded page, got sticky behavior.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T4103

Differential Revision: https://secure.phabricator.com/D16021
This commit is contained in:
epriestley 2016-06-03 06:04:40 -07:00
parent eb673fd783
commit d5f924b3fa

View file

@ -505,13 +505,13 @@ final class PhabricatorUser
->setViewer($this)
->assertValidValue($value);
$this->settingCacheKeys[$key] = true;
$this->settingCache[$key] = $value;
return $value;
return $this->writeUserSettingCache($key, $value);
} catch (Exception $ex) {
// Fall through below and return the default value.
}
} else {
// This is an ad-hoc setting with no controlling object.
return $this->writeUserSettingCache($key, $value);
}
}
@ -523,10 +523,7 @@ final class PhabricatorUser
$value = null;
}
$this->settingCacheKeys[$key] = true;
$this->settingCache[$key] = $value;
return $value;
return $this->writeUserSettingCache($key, $value);
}
@ -557,6 +554,12 @@ final class PhabricatorUser
return $this;
}
private function writeUserSettingCache($key, $value) {
$this->settingCacheKeys[$key] = true;
$this->settingCache[$key] = $value;
return $value;
}
public function getTranslation() {
return $this->getUserSetting(PhabricatorTranslationSetting::SETTINGKEY);
}