. */ declare(strict_types=1); namespace FireflyIII\Api\V2\Request\UserGroup; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** * Class StoreRequest */ class StoreRequest extends FormRequest { use ChecksLogin; use ConvertsDataTypes; protected array $acceptedRoles = [UserRoleEnum::OWNER, UserRoleEnum::FULL]; public function getAll(): array { return [ 'title' => $this->convertString('title'), ]; } public function rules(): array { $roles = []; foreach (UserRoleEnum::cases() as $role) { $roles[] = $role->value; } $string = implode(',', $roles); return [ 'title' => 'unique:user_groups,title|required|min:1|max:255', 'members' => 'required|min:1', 'members.*.user_email' => 'email|missing_with:members.*.user_id', 'members.*.user_id' => 'integer|exists:users,id|missing_with:members.*.user_email', 'members.*.roles' => 'required|array|min:1', 'members.*.roles.*' => sprintf('required|in:%s', $string), ]; } }