From c27c751543c7d0afb78da4590ad503d3a68fe0fe Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 15 Jun 2019 23:31:00 -0600 Subject: [PATCH] Update AuthLogin listener --- app/Listeners/AuthLogin.php | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/app/Listeners/AuthLogin.php b/app/Listeners/AuthLogin.php index 7d3059a8f..f2e258e90 100644 --- a/app/Listeners/AuthLogin.php +++ b/app/Listeners/AuthLogin.php @@ -31,9 +31,45 @@ class AuthLogin return; } + $this->userProfile($user); $this->userSettings($user); $this->userState($user); $this->userDevice($user); + $this->userProfileId($user); + } + + protected function userProfile($user) + { + if (empty($user->profile)) { + $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']; + + $profile->private_key = $pki_private; + $profile->public_key = $pki_public; + $profile->save(); + return $profile; + }); + DB::transaction(function() use($user, $profile) { + $user = User::findOrFail($user->id); + $user->profile_id = $profile->id; + $user->save(); + + CreateAvatar::dispatch($profile); + }); + + } } protected function userSettings($user) @@ -88,4 +124,15 @@ class AuthLogin ]); }); } + + protected function userProfileId($user) + { + if($user->profile_id == null) { + DB::transaction(function() use($user) { + $profile = $user->profile; + $user->profile_id = $profile->id; + $user->save(); + }); + } + } }