30
common/Auth/Validators/EmailVerifiedValidator.php
Executable file
30
common/Auth/Validators/EmailVerifiedValidator.php
Executable file
@@ -0,0 +1,30 @@
|
||||
<?php namespace Common\Auth\Validators;
|
||||
|
||||
use App;
|
||||
use App\Models\User;
|
||||
use Common\Settings\Settings;
|
||||
|
||||
class EmailVerifiedValidator {
|
||||
|
||||
/**
|
||||
* Check if user with specified email has verified his email address.
|
||||
*
|
||||
* @param string $attribute
|
||||
* @param string $value
|
||||
* @param array $parameters
|
||||
* @return bool
|
||||
*/
|
||||
public function validate($attribute, $value, $parameters) {
|
||||
$settings = App::make(Settings::class);
|
||||
|
||||
//don't need to validate email, bail
|
||||
if ( ! $settings->get('require_email_confirmation')) return true;
|
||||
|
||||
//if email address is not taken yet, bail
|
||||
if ( ! $user = User::where('email', $value)->first()) return true;
|
||||
|
||||
//check if specified email is verified
|
||||
/** @var User $user */
|
||||
return (bool) $user->hasVerifiedEmail();
|
||||
}
|
||||
}
|
||||
21
common/Auth/Validators/HashIsValid.php
Executable file
21
common/Auth/Validators/HashIsValid.php
Executable file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace Common\Auth\Validators;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Contracts\Validation\InvokableRule;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class HashIsValid implements InvokableRule
|
||||
{
|
||||
public function __construct(protected string $hashedValue)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke($attribute, mixed $value, $fail)
|
||||
{
|
||||
if (!Hash::check($value, $this->hashedValue)) {
|
||||
return $fail('The :attribute is not valid')->translate();
|
||||
}
|
||||
}
|
||||
}
|
||||
22
common/Auth/Validators/PasswordIsValid.php
Executable file
22
common/Auth/Validators/PasswordIsValid.php
Executable file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Common\Auth\Validators;
|
||||
|
||||
use Illuminate\Contracts\Validation\InvokableRule;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class PasswordIsValid implements InvokableRule
|
||||
{
|
||||
public bool $implicit = true;
|
||||
|
||||
public function __construct(protected string $password)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke($attribute, $value, $fail)
|
||||
{
|
||||
if (!Hash::check($value, $this->password)) {
|
||||
$fail('Password does not match.')->translate();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user