|
|
|
@ -7,27 +7,17 @@ use Illuminate\Contracts\Validation\DataAwareRule;
|
|
|
|
|
use Illuminate\Contracts\Validation\ValidationRule;
|
|
|
|
|
use Pablo\Ae3auth\app\Facades\PasswordHistoryManager;
|
|
|
|
|
|
|
|
|
|
class CheckUsedPasswordRule implements ValidationRule, DataAwareRule
|
|
|
|
|
class CheckUsedPasswordRule implements ValidationRule
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* @var array
|
|
|
|
|
*/
|
|
|
|
|
private array $data = [];
|
|
|
|
|
|
|
|
|
|
public function validate(string $attribute, $value, Closure $fail): void
|
|
|
|
|
{
|
|
|
|
|
$usernameColumn = config('ae3auth-config.user.username_column');
|
|
|
|
|
$userModel = config('ae3auth-config.user.user_model');
|
|
|
|
|
if (auth()->user()) {
|
|
|
|
|
$user = $userModel::firstWhere($usernameColumn, $this->data[$usernameColumn]);
|
|
|
|
|
$user = $userModel::firstWhere($usernameColumn, auth()->user()->$usernameColumn);
|
|
|
|
|
if (!PasswordHistoryManager::inHistory($user->id, $value))
|
|
|
|
|
$fail(__('auth.password_used'));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function setData(array $data)
|
|
|
|
|
{
|
|
|
|
|
$this->data = $data;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|