diff --git a/src/applications/settings/controller/PhabricatorSettingsAdjustController.php b/src/applications/settings/controller/PhabricatorSettingsAdjustController.php index 7211431f16..277835a9ef 100644 --- a/src/applications/settings/controller/PhabricatorSettingsAdjustController.php +++ b/src/applications/settings/controller/PhabricatorSettingsAdjustController.php @@ -1,17 +1,27 @@ getUser(); + $viewer = $this->getViewer(); - $prefs = $user->loadPreferences(); - $prefs->setPreference( - $request->getStr('key'), - $request->getStr('value')); - $prefs->save(); + $preferences = PhabricatorUserPreferences::loadUserPreferences($viewer); + + $editor = id(new PhabricatorUserPreferencesEditor()) + ->setActor($viewer) + ->setContentSourceFromRequest($request) + ->setContinueOnNoEffect(true) + ->setContinueOnMissingFields(true); + + $key = $request->getStr('key'); + $value = $request->getStr('value'); + + $xactions = array(); + $xactions[] = $preferences->newTransaction($key, $value); + + $editor->applyTransactions($preferences, $xactions); return id(new AphrontAjaxResponse())->setContent(array()); } }