feat: add tenant menu visibility
This commit is contained in:
@@ -33,10 +33,14 @@ class TenantBootstrapService
|
||||
$tenant,
|
||||
[
|
||||
'eventDateChanges',
|
||||
'menues' => fn ($query) => $query->whereHas(
|
||||
'roles',
|
||||
fn ($query) => $query->where('codigo', RoleCode::User->value)
|
||||
),
|
||||
'menues' => fn ($query) => $query
|
||||
->where(fn ($query) => $query
|
||||
->where('menues.code', 'help.contact')
|
||||
->orWhere('tenants_menues.is_enabled', true))
|
||||
->whereHas(
|
||||
'roles',
|
||||
fn ($query) => $query->where('codigo', RoleCode::User->value)
|
||||
),
|
||||
$tenant->storefront_website_type_code === 'onticket_multi_event'
|
||||
? 'eventCategories' : 'categories' => fn ($query) => $query->orderBy('nombre'),
|
||||
]
|
||||
|
||||
@@ -76,7 +76,7 @@ class Menu extends Model
|
||||
'codigo'
|
||||
)
|
||||
->using(TenantMenu::class)
|
||||
->withPivot('static_content')
|
||||
->withPivot('static_content', 'is_enabled')
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
|
||||
@@ -16,12 +16,14 @@ class TenantMenu extends Pivot
|
||||
'tenant_code',
|
||||
'menu_code',
|
||||
'static_content',
|
||||
'is_enabled',
|
||||
];
|
||||
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'static_content' => 'array',
|
||||
'is_enabled' => 'boolean',
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -319,7 +319,7 @@ class Tenant extends Model
|
||||
'code'
|
||||
)
|
||||
->using(TenantMenu::class)
|
||||
->withPivot('static_content')
|
||||
->withPivot('static_content', 'is_enabled')
|
||||
->withTimestamps();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,9 @@ class EnsureTenantHasMenu
|
||||
$tenant = $request->user()?->tenant()->first();
|
||||
$hasMenu = $tenant?->menues()
|
||||
->where('menues.code', $menuCode)
|
||||
->where(fn ($query) => $query
|
||||
->where('menues.code', 'help.contact')
|
||||
->orWhere('tenants_menues.is_enabled', true))
|
||||
->exists() ?? false;
|
||||
|
||||
abort_unless($hasMenu, 404);
|
||||
|
||||
Reference in New Issue
Block a user