feat(events): authorize event editing and date changes by assigned event
This commit is contained in:
@@ -2,9 +2,10 @@
|
||||
|
||||
namespace App\Shared\Forms\Controllers\AdminApp;
|
||||
|
||||
use App\Domains\Core\Auth\Services\EventScopeService;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Shared\Forms\Resources\EventFormResource;
|
||||
use App\Shared\Forms\Services\EventFormService;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class EventFormController extends Controller
|
||||
@@ -15,7 +16,8 @@ class EventFormController extends Controller
|
||||
{
|
||||
return EventFormResource::make(
|
||||
$this->eventFormService->get(
|
||||
$request->user('sanctum')->tenant()->firstOrFail()
|
||||
$request->user('sanctum')->tenant()->firstOrFail(),
|
||||
app(EventScopeService::class)->eventId($request->user())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -4,14 +4,17 @@ namespace App\Shared\Forms\Services;
|
||||
|
||||
use App\Domains\Core\Tenant\Models\SocialMedia;
|
||||
use App\Domains\Core\Tenant\Models\Tenant;
|
||||
use App\Domains\Ticketing\Event\Models\Event;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
|
||||
class EventFormService
|
||||
{
|
||||
/** @return array{social_media: Collection<int, SocialMedia>} */
|
||||
public function get(Tenant $tenant): array
|
||||
public function get(Tenant $tenant, ?int $eventId = null): array
|
||||
{
|
||||
$event = $tenant->activeEvent;
|
||||
$event = $eventId === null ? $tenant->activeEvent
|
||||
: Event::query()
|
||||
->where('tenant_code', $tenant->codigo)->findOrFail($eventId);
|
||||
$urls = $event?->socialMedia()
|
||||
->pluck('event_social_media.url', 'social_media.code') ?? collect();
|
||||
|
||||
|
||||
@@ -12,33 +12,33 @@ use App\Shared\Forms\Controllers\AdminApp\TicketFormController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::prefix('v1/adminapp/forms')
|
||||
->middleware(['auth:sanctum', 'adminapp.tenant'])
|
||||
->middleware(['auth:sanctum', 'adminapp.tenant:event'])
|
||||
->group(function (): void {
|
||||
Route::get('event', EventFormController::class);
|
||||
Route::get(
|
||||
'desfile/entry-reservation',
|
||||
DesfileEntryReservationFormController::class
|
||||
)->middleware('tenant.menu:adminapp.desfile.reservas')
|
||||
)->middleware('adminapp.tenant')->middleware('tenant.menu:adminapp.desfile.reservas')
|
||||
->name('adminapp.forms.desfile.entry-reservation');
|
||||
Route::get('sale', SaleFormController::class);
|
||||
Route::get('staff', StaffFormController::class);
|
||||
Route::get('tickets-filter', TicketFilterFormController::class)
|
||||
Route::get('sale', SaleFormController::class)->middleware('adminapp.tenant');
|
||||
Route::get('staff', StaffFormController::class)->middleware('adminapp.tenant');
|
||||
Route::get('tickets-filter', TicketFilterFormController::class)->middleware('adminapp.tenant')
|
||||
->middleware('tenant.menu:adminapp.tickets')
|
||||
->name('adminapp.forms.tickets-filter');
|
||||
Route::get(
|
||||
'fiesta-futbol-infantil/ticket',
|
||||
TicketFormController::class
|
||||
);
|
||||
)->middleware('adminapp.tenant');
|
||||
Route::get(
|
||||
'fiesta-futbol-infantil/entry',
|
||||
EntryFormController::class
|
||||
);
|
||||
)->middleware('adminapp.tenant');
|
||||
Route::get(
|
||||
'fiesta-futbol-infantil/merchandise',
|
||||
MerchandiseFormController::class
|
||||
);
|
||||
)->middleware('adminapp.tenant');
|
||||
Route::get(
|
||||
'fiesta-futbol-infantil/food',
|
||||
FoodFormController::class
|
||||
);
|
||||
)->middleware('adminapp.tenant');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user