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->setRelation('tenant', $tenant);
|
||||||
$user->load('event');
|
$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;
|
return $user;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,6 +136,39 @@ class AdminAppEventScopeTest extends TestCase
|
|||||||
$this->assertSame(['adminapp'], $this->user->tokens()->sole()->abilities);
|
$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
|
public function test_invalid_scopes_never_issue_tokens_or_increment_password_failure_counts(): void
|
||||||
{
|
{
|
||||||
foreach ([
|
foreach ([
|
||||||
|
|||||||
Reference in New Issue
Block a user