. */ declare(strict_types=1); namespace FireflyIII\Http\Requests; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Contracts\Validation\Validator; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Facades\Log; /** * Class UserFormRequest. */ class UserFormRequest extends FormRequest { use ChecksLogin; use ConvertsDataTypes; protected array $acceptedRoles = []; /** * Get data for controller. */ public function getUserData(): array { return [ 'email' => $this->convertString('email'), 'blocked' => 1 === $this->convertInteger('blocked'), 'blocked_code' => $this->convertString('blocked_code'), 'password' => $this->convertString('password'), 'is_owner' => 1 === $this->convertInteger('is_owner'), ]; } /** * Rules for this request. */ public function rules(): array { return [ 'id' => ['required', 'exists:users,id'], 'email' => ['email', 'required'], 'password' => ['confirmed', 'secure_password'], 'blocked_code' => ['min:0', 'max:32', 'nullable'], 'blocked' => ['min:0', 'max:1', 'numeric'], 'is_owner' => ['min:0', 'max:1', 'numeric'], ]; } public function withValidator(Validator $validator): void { if ($validator->fails()) { Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray()); } } }