CRM/backend/app/Support/PasswordPolicy.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];
}
}