. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\System; use FireflyIII\Rules\IsBoolean; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** * Class UserStoreRequest */ class UserStoreRequest extends FormRequest { use ChecksLogin; use ConvertsDataTypes; /** * Logged in + owner */ public function authorize(): bool { return auth()->check() && auth()->user()->hasRole('owner'); } /** * Get all data from the request. */ public function getAll(): array { $blocked = false; if (null !== $this->get('blocked')) { $blocked = $this->boolean('blocked'); } return [ 'email' => $this->convertString('email'), 'blocked' => $blocked, 'blocked_code' => $this->convertString('blocked_code'), 'role' => $this->convertString('role'), ]; } /** * The rules that the incoming request must be matched against. */ public function rules(): array { return [ 'email' => 'required|email|unique:users,email', 'blocked' => [new IsBoolean()], 'blocked_code' => 'in:email_changed', 'role' => 'in:owner,demo', ]; } }