mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
45 lines
1.1 KiB
PHP
45 lines
1.1 KiB
PHP
<?php
|
|
/*
|
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
|
* @license http://opensource.org/licenses/AGPL-3.0
|
|
*/
|
|
|
|
namespace Combodo\iTop\Form\Validator;
|
|
|
|
use Combodo\iTop\Form\Helper\FieldHelper;
|
|
use DBSearch;
|
|
use utils;
|
|
|
|
class SelectObjectValidator extends AbstractValidator
|
|
{
|
|
public const VALIDATOR_NAME = 'select_object_validator';
|
|
|
|
/** @var \DBSearch $oSearch */
|
|
private $oSearch;
|
|
|
|
public function __construct(DBSearch $oSearch)
|
|
{
|
|
parent::__construct();
|
|
|
|
$this->oSearch = $oSearch;
|
|
}
|
|
|
|
public function Validate($value): array
|
|
{
|
|
if (utils::IsNullOrEmptyString($value)) {
|
|
return [];
|
|
}
|
|
if (($value === 0) || ($value === '0')) {
|
|
return [];
|
|
}
|
|
|
|
$oSetForExistingCurrentValue = FieldHelper::GetObjectsSetFromSearchAndCurrentValueId($this->oSearch, $value);
|
|
$iObjectsCount = $oSetForExistingCurrentValue->CountWithLimit(1);
|
|
|
|
if ($iObjectsCount === 0) {
|
|
return ["Value $value does not match the corresponding filter set"];
|
|
}
|
|
|
|
return [];
|
|
}
|
|
} |