* Enable creation of new entries, * Change all our ajax frames to go through /frames URI instead of /dn, * Add our frame command to the encrypted DN, * Automatically redirect to root URL when selecting a tree item and currently in another path (as a result of a prior POST activity), * Some validation improvements DNExists/HasStructuralObjectClass
28 lines
696 B
PHP
28 lines
696 B
PHP
<?php
|
|
|
|
namespace App\Rules;
|
|
|
|
use Closure;
|
|
use Illuminate\Contracts\Validation\ValidationRule;
|
|
use Illuminate\Support\Facades\Crypt;
|
|
|
|
class DNExists implements ValidationRule
|
|
{
|
|
/**
|
|
* Run the validation rule.
|
|
*
|
|
* @param \Closure(string, ?string=): \Illuminate\Translation\PotentiallyTranslatedString $fail
|
|
*/
|
|
public function validate(string $attribute,mixed $value,Closure $fail): void
|
|
{
|
|
$dn = Crypt::decryptString($value);
|
|
|
|
// Sometimes our key has a command, so we'll ignore it
|
|
if (str_starts_with($dn,'*') && ($x=strpos($dn,'|')))
|
|
$dn = substr($dn,$x+1);
|
|
|
|
if (! config('server')->fetch($dn))
|
|
$fail(sprintf('The DN %s doesnt exist.',$dn));
|
|
}
|
|
}
|