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(); }