28 خطوط
749 B
PHP
28 خطوط
749 B
PHP
<?php
|
|
|
|
namespace App\Support;
|
|
|
|
use App\Models\Setting;
|
|
use Illuminate\Validation\Rules\Password;
|
|
|
|
class PasswordPolicy
|
|
{
|
|
public static function rules(): array
|
|
{
|
|
$min = max(6, (int) (Setting::where('key', 'password_min_length')->value('value') ?: 8));
|
|
$rule = Password::min($min);
|
|
|
|
if (Setting::where('key', 'password_require_mixed_case')->value('value') === 'true') {
|
|
$rule->mixedCase();
|
|
}
|
|
if (Setting::where('key', 'password_require_numbers')->value('value') === 'true') {
|
|
$rule->numbers();
|
|
}
|
|
if (Setting::where('key', 'password_require_symbols')->value('value') === 'true') {
|
|
$rule->symbols();
|
|
}
|
|
|
|
return ['string', $rule];
|
|
}
|
|
}
|