Page MenuHomePhabricator

D17467.id42005.diff
No OneTemporary

D17467.id42005.diff

diff --git a/src/applications/people/cache/PhabricatorUserProfileImageCacheType.php b/src/applications/people/cache/PhabricatorUserProfileImageCacheType.php
--- a/src/applications/people/cache/PhabricatorUserProfileImageCacheType.php
+++ b/src/applications/people/cache/PhabricatorUserProfileImageCacheType.php
@@ -24,8 +24,43 @@
public function newValueForUsers($key, array $users) {
$viewer = $this->getViewer();
- $file_phids = mpull($users, 'getProfileImagePHID');
- $file_phids = array_filter($file_phids);
+ $file_phids = array();
+ $generate_users = array();
+ foreach ($users as $user) {
+ $user_phid = $user->getPHID();
+ $custom_phid = $user->getProfileImagePHID();
+ $default_phid = $user->getDefaultProfileImagePHID();
+ $version = $user->getDefaultProfileImageVersion();
+
+ if ($custom_phid) {
+ $file_phids[$user_phid] = $custom_phid;
+ continue;
+ }
+ if ($default_phid) {
+ if ($version == PhabricatorFilesComposeAvatarBuiltinFile::VERSION) {
+ $file_phids[$user_phid] = $default_phid;
+ continue;
+ }
+ }
+ $generate_users[] = $user;
+ }
+
+ // Generate Files for anyone without a default
+ foreach ($generate_users as $generate_user) {
+ $generate_user_phid = $generate_user->getPHID();
+ $generate_username = $generate_user->getUsername();
+ $generate_version = PhabricatorFilesComposeAvatarBuiltinFile::VERSION;
+ $generate_file = id(new PhabricatorFilesComposeAvatarBuiltinFile())
+ ->getUserProfileImageFile($generate_username);
+
+ $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites();
+ $generate_user->setDefaultProfileImagePHID($generate_file->getPHID());
+ $generate_user->setDefaultProfileImageVersion($generate_version);
+ $generate_user->save();
+ unset($unguarded);
+
+ $file_phids[$generate_user_phid] = $generate_file->getPHID();
+ }
if ($file_phids) {
$files = id(new PhabricatorFileQuery())
@@ -40,8 +75,11 @@
$results = array();
foreach ($users as $user) {
$image_phid = $user->getProfileImagePHID();
+ $default_phid = $user->getDefaultProfileImagePHID();
if (isset($files[$image_phid])) {
$image_uri = $files[$image_phid]->getBestURI();
+ } else if (isset($files[$default_phid])) {
+ $image_uri = $files[$default_phid]->getBestURI();
} else {
$image_uri = PhabricatorUser::getDefaultProfileImageURI();
}
diff --git a/src/applications/people/storage/PhabricatorUserProfile.php b/src/applications/people/storage/PhabricatorUserProfile.php
--- a/src/applications/people/storage/PhabricatorUserProfile.php
+++ b/src/applications/people/storage/PhabricatorUserProfile.php
@@ -13,7 +13,9 @@
return id(new self())
->setUserPHID($user->getPHID())
- ->setIcon($default_icon);
+ ->setIcon($default_icon)
+ ->setTitle('')
+ ->setBlurb('');
}
protected function getConfiguration() {

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 16, 10:32 PM (1 w, 23 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7707763
Default Alt Text
D17467.id42005.diff (2 KB)

Event Timeline