Differential D16025 Diff 38577 src/applications/people/cache/PhabricatorUserPreferencesCacheType.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/people/cache/PhabricatorUserPreferencesCacheType.php
| Show All 14 Lines | final class PhabricatorUserPreferencesCacheType | ||||
| public function canManageKey($key) { | public function canManageKey($key) { | ||||
| return ($key === self::KEY_PREFERENCES); | return ($key === self::KEY_PREFERENCES); | ||||
| } | } | ||||
| public function newValueForUsers($key, array $users) { | public function newValueForUsers($key, array $users) { | ||||
| $viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
| $user_phids = mpull($users, 'getPHID'); | |||||
| $preferences = id(new PhabricatorUserPreferencesQuery()) | $preferences = id(new PhabricatorUserPreferencesQuery()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->withUserPHIDs(mpull($users, 'getPHID')) | ->withUserPHIDs($user_phids) | ||||
| ->execute(); | ->execute(); | ||||
| return mpull($preferences, 'getPreferences', 'getUserPHID'); | $empty = array_fill_keys($user_phids, array()); | ||||
| return mpull($preferences, 'getPreferences', 'getUserPHID') + $empty; | |||||
| } | } | ||||
| } | } | ||||