From e0a59900a38ec7f5493655468a3be7369b5800a9 Mon Sep 17 00:00:00 2001 From: printempw Date: Sat, 5 Nov 2016 20:11:48 +0800 Subject: [PATCH] add event EncryptUserPassword --- ...serPassword.php => EncryptUserPassword.php} | 2 +- app/Models/User.php | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) rename app/Events/{CheckUserPassword.php => EncryptUserPassword.php} (88%) diff --git a/app/Events/CheckUserPassword.php b/app/Events/EncryptUserPassword.php similarity index 88% rename from app/Events/CheckUserPassword.php rename to app/Events/EncryptUserPassword.php index 7003772e..9798ccf4 100644 --- a/app/Events/CheckUserPassword.php +++ b/app/Events/EncryptUserPassword.php @@ -4,7 +4,7 @@ namespace App\Events; use App\Models\User; -class CheckUserPassword extends Event +class EncryptUserPassword extends Event { public $rawPasswd; diff --git a/app/Models/User.php b/app/Models/User.php index c9e2b460..60e9a3e9 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -6,6 +6,7 @@ use DB; use App; use Utils; use Carbon\Carbon; +use App\Events\EncryptUserPassword; use Illuminate\Database\Eloquent\Model; class User extends Model @@ -69,13 +70,13 @@ class User extends Model */ public function checkPasswd($raw_passwd) { - $responses = event(new \App\Events\CheckUserPassword($raw_passwd, $this)); + $responses = event(new EncryptUserPassword($raw_passwd, $this)); if (isset($responses[0])) { - return (bool) $responses[0]; - } else { - return (app('cipher')->encrypt($raw_passwd, config('secure.salt')) == $this->password); + $this->password = $responses[0]; } + + return (app('cipher')->encrypt($raw_passwd, config('secure.salt')) == $this->password); } /** @@ -110,7 +111,14 @@ class User extends Model */ public function changePasswd($new_passwd) { - $this->password = app('cipher')->encrypt($new_passwd, config('secure.salt')); + $responses = event(new EncryptUserPassword($new_passwd, $this)); + + if (isset($responses[0])) { + $this->password = $responses[0]; + } else { + $this->password = app('cipher')->encrypt($new_passwd, config('secure.salt')); + } + return $this->save(); }