📋 Commit iniziale con: - ✅ Documentazione unificata in docs/ - ✅ Codice Laravel in netgescon-laravel/ - ✅ Script automazione in scripts/ - ✅ Configurazione sync rsync - ✅ Struttura organizzata e pulita 🔄 Versione: 2025.07.19-1644 🎯 Sistema pronto per Git distribuito
87 lines
1.8 KiB
PHP
87 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\Validation\Rules;
|
|
|
|
use Illuminate\Contracts\Validation\Rule;
|
|
use Illuminate\Contracts\Validation\ValidatorAwareRule;
|
|
use Illuminate\Support\Facades\Gate;
|
|
|
|
class Can implements Rule, ValidatorAwareRule
|
|
{
|
|
/**
|
|
* The ability to check.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $ability;
|
|
|
|
/**
|
|
* The arguments to pass to the authorization check.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $arguments;
|
|
|
|
/**
|
|
* The current validator instance.
|
|
*
|
|
* @var \Illuminate\Validation\Validator
|
|
*/
|
|
protected $validator;
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param string $ability
|
|
* @param array $arguments
|
|
*/
|
|
public function __construct($ability, array $arguments = [])
|
|
{
|
|
$this->ability = $ability;
|
|
$this->arguments = $arguments;
|
|
}
|
|
|
|
/**
|
|
* Determine if the validation rule passes.
|
|
*
|
|
* @param string $attribute
|
|
* @param mixed $value
|
|
* @return bool
|
|
*/
|
|
public function passes($attribute, $value)
|
|
{
|
|
$arguments = $this->arguments;
|
|
|
|
$model = array_shift($arguments);
|
|
|
|
return Gate::allows($this->ability, array_filter([$model, ...$arguments, $value]));
|
|
}
|
|
|
|
/**
|
|
* Get the validation error message.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function message()
|
|
{
|
|
$message = $this->validator->getTranslator()->get('validation.can');
|
|
|
|
return $message === 'validation.can'
|
|
? ['The :attribute field contains an unauthorized value.']
|
|
: $message;
|
|
}
|
|
|
|
/**
|
|
* Set the current validator.
|
|
*
|
|
* @param \Illuminate\Validation\Validator $validator
|
|
* @return $this
|
|
*/
|
|
public function setValidator($validator)
|
|
{
|
|
$this->validator = $validator;
|
|
|
|
return $this;
|
|
}
|
|
}
|