diff --git a/app/Listeners/AuthLogin.php b/app/Listeners/AuthLogin.php index 79e9c5eab..777ff5e1a 100644 --- a/app/Listeners/AuthLogin.php +++ b/app/Listeners/AuthLogin.php @@ -30,22 +30,29 @@ class AuthLogin ]); }); } - $this->warmCache($user); - } + + if(empty($user->profile)) { + DB::transaction(function() use($user) { + $profile = new Profile(); + $profile->user_id = $user->id; + $profile->username = $user->username; + $profile->name = $user->name; + $pkiConfig = [ + 'digest_alg' => 'sha512', + 'private_key_bits' => 2048, + 'private_key_type' => OPENSSL_KEYTYPE_RSA, + ]; + $pki = openssl_pkey_new($pkiConfig); + openssl_pkey_export($pki, $pki_private); + $pki_public = openssl_pkey_get_details($pki); + $pki_public = $pki_public['key']; - public function warmCache($user) - { - $pid = $user->profile->id; + $profile->private_key = $pki_private; + $profile->public_key = $pki_public; + $profile->save(); - Cache::remember('feature:discover:following:'.$pid, 10080, function() use ($pid) { - return Follower::whereProfileId($pid)->pluck('following_id')->toArray(); - }); - - Cache::remember("user:filter:list:$pid", 10080, function() use($pid) { - return UserFilter::whereUserId($pid) - ->whereFilterableType('App\Profile') - ->whereIn('filter_type', ['mute', 'block']) - ->pluck('filterable_id')->toArray(); - }); + CreateAvatar::dispatch($profile); + }); + } } } diff --git a/app/Observer/UserObserver.php b/app/Observer/UserObserver.php index cd8ca6094..542f0e317 100644 --- a/app/Observer/UserObserver.php +++ b/app/Observer/UserObserver.php @@ -20,25 +20,27 @@ class UserObserver public function saved(User $user) { if (empty($user->profile)) { - $profile = new Profile(); - $profile->user_id = $user->id; - $profile->username = $user->username; - $profile->name = $user->name; - $pkiConfig = [ - 'digest_alg' => 'sha512', - 'private_key_bits' => 2048, - 'private_key_type' => OPENSSL_KEYTYPE_RSA, - ]; - $pki = openssl_pkey_new($pkiConfig); - openssl_pkey_export($pki, $pki_private); - $pki_public = openssl_pkey_get_details($pki); - $pki_public = $pki_public['key']; + DB::transaction(function() use($user) { + $profile = new Profile(); + $profile->user_id = $user->id; + $profile->username = $user->username; + $profile->name = $user->name; + $pkiConfig = [ + 'digest_alg' => 'sha512', + 'private_key_bits' => 2048, + 'private_key_type' => OPENSSL_KEYTYPE_RSA, + ]; + $pki = openssl_pkey_new($pkiConfig); + openssl_pkey_export($pki, $pki_private); + $pki_public = openssl_pkey_get_details($pki); + $pki_public = $pki_public['key']; - $profile->private_key = $pki_private; - $profile->public_key = $pki_public; - $profile->save(); + $profile->private_key = $pki_private; + $profile->public_key = $pki_public; + $profile->save(); - CreateAvatar::dispatch($profile); + CreateAvatar::dispatch($profile); + }); } if (empty($user->settings)) {