feat(event-admin): remove menu restrictions for non-admin users and add test for shared menus among event admins
This commit is contained in:
@@ -22,12 +22,6 @@ class AdminAppContextService
|
||||
$user->setRelation('tenant', $tenant);
|
||||
$user->load('event');
|
||||
|
||||
if (! $user->isTenantAdministrator()) {
|
||||
$allowed = ['main.adminapp', 'adminapp.inicio', 'adminapp.event',
|
||||
'adminapp.catalog', 'adminapp.ventas', 'adminapp.staff'];
|
||||
$tenant->setRelation('menues', $tenant->menues->whereIn('code', $allowed)->values());
|
||||
}
|
||||
|
||||
return $user;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,6 +136,39 @@ class AdminAppEventScopeTest extends TestCase
|
||||
$this->assertSame(['adminapp'], $this->user->tokens()->sole()->abilities);
|
||||
}
|
||||
|
||||
public function test_event_admins_of_the_same_tenant_receive_the_same_assigned_menus(): void
|
||||
{
|
||||
DB::table('menues')->insert([
|
||||
'code' => 'onticket.adminapp.event',
|
||||
'label' => 'Eventos',
|
||||
'route' => '/admin/event',
|
||||
'parent_menu_code' => 'main.adminapp',
|
||||
]);
|
||||
DB::table('roles_menues')->insert([
|
||||
'rol_codigo' => 'adminapp',
|
||||
'menu_codigo' => 'onticket.adminapp.event',
|
||||
]);
|
||||
DB::table('tenants_menues')->insert([
|
||||
'tenant_code' => 'onticket',
|
||||
'menu_code' => 'onticket.adminapp.event',
|
||||
]);
|
||||
|
||||
$this->user->update(['admin_scope' => 'event', 'event_id' => 1]);
|
||||
$token = $this->login()->assertOk()->json('token');
|
||||
$firstMenus = $this->withToken($token)->getJson('/api/v1/adminapp/me')
|
||||
->assertOk()->json('data.tenant.menues');
|
||||
|
||||
$this->user->update(['event_id' => 2]);
|
||||
$secondMenus = $this->withToken($token)->getJson('/api/v1/adminapp/me')
|
||||
->assertOk()->json('data.tenant.menues');
|
||||
|
||||
$this->assertSame($firstMenus, $secondMenus);
|
||||
$this->assertSame(
|
||||
['adminapp.ventas', 'onticket.adminapp.event'],
|
||||
collect($firstMenus[0]['submenues'])->pluck('code')->sort()->values()->all(),
|
||||
);
|
||||
}
|
||||
|
||||
public function test_invalid_scopes_never_issue_tokens_or_increment_password_failure_counts(): void
|
||||
{
|
||||
foreach ([
|
||||
|
||||
Reference in New Issue
Block a user