v7.0.0-beta.2 release
This commit is contained in:
@@ -95,29 +95,33 @@ class ModuleRolePermissionTest extends TestCase
|
||||
*
|
||||
* 계층형 구조로 권한이 생성됨:
|
||||
* - 1레벨: 모듈 노드 (sirsoft-board)
|
||||
* - 2레벨: 카테고리 노드 (sirsoft-board.boards, sirsoft-board.reports)
|
||||
* - 3레벨: 개별 권한 (sirsoft-board.boards.read, create, update, delete, sirsoft-board.reports.view, manage)
|
||||
* - 2레벨: 카테고리 노드 (sirsoft-board.boards, sirsoft-board.settings, sirsoft-board.reports)
|
||||
* - 3레벨: 개별 권한 (boards: read/create/update/delete, settings: read/update, reports: view/manage)
|
||||
*/
|
||||
public function test_module_installation_creates_permissions(): void
|
||||
{
|
||||
$this->moduleManager->installModule('sirsoft-board');
|
||||
|
||||
// 권한이 생성되었는지 확인 (계층형 구조: 모듈 1 + 카테고리 2 + 개별 권한 6 = 9개)
|
||||
// 권한이 생성되었는지 확인 (계층형 구조: 모듈 1 + 카테고리 3 + 개별 권한 8 = 12개)
|
||||
$permissions = Permission::where('extension_type', ExtensionOwnerType::Module)
|
||||
->where('extension_identifier', 'sirsoft-board')->get();
|
||||
$this->assertCount(9, $permissions);
|
||||
$this->assertCount(12, $permissions);
|
||||
|
||||
$identifiers = $permissions->pluck('identifier')->toArray();
|
||||
// 1레벨: 모듈 노드
|
||||
$this->assertContains('sirsoft-board', $identifiers);
|
||||
// 2레벨: 카테고리 노드
|
||||
$this->assertContains('sirsoft-board.boards', $identifiers);
|
||||
$this->assertContains('sirsoft-board.settings', $identifiers);
|
||||
$this->assertContains('sirsoft-board.reports', $identifiers);
|
||||
// 3레벨: 개별 권한 - boards
|
||||
$this->assertContains('sirsoft-board.boards.read', $identifiers);
|
||||
$this->assertContains('sirsoft-board.boards.create', $identifiers);
|
||||
$this->assertContains('sirsoft-board.boards.update', $identifiers);
|
||||
$this->assertContains('sirsoft-board.boards.delete', $identifiers);
|
||||
// 3레벨: 개별 권한 - settings
|
||||
$this->assertContains('sirsoft-board.settings.read', $identifiers);
|
||||
$this->assertContains('sirsoft-board.settings.update', $identifiers);
|
||||
// 3레벨: 개별 권한 - reports
|
||||
$this->assertContains('sirsoft-board.reports.view', $identifiers);
|
||||
$this->assertContains('sirsoft-board.reports.manage', $identifiers);
|
||||
@@ -130,10 +134,10 @@ class ModuleRolePermissionTest extends TestCase
|
||||
{
|
||||
$this->moduleManager->installModule('sirsoft-board');
|
||||
|
||||
// admin role에 모든 개별 권한(6개)이 할당되었는지 확인
|
||||
// admin role에 모든 개별 권한(8개)이 할당되었는지 확인 (boards 4 + settings 2 + reports 2)
|
||||
$adminRole = Role::where('identifier', 'admin')->first();
|
||||
$adminPermissions = $adminRole->permissions()->where('extension_identifier', 'sirsoft-board')->get();
|
||||
$this->assertCount(6, $adminPermissions);
|
||||
$this->assertCount(8, $adminPermissions);
|
||||
|
||||
// manager role에 할당된 권한 확인 (boards: read, create, update + reports: view = 4개)
|
||||
$managerRole = Role::where('identifier', 'manager')->first();
|
||||
@@ -280,16 +284,16 @@ class ModuleRolePermissionTest extends TestCase
|
||||
$this->moduleManager->installModule('sirsoft-board');
|
||||
|
||||
// 계층형 구조에서 개별 권한(3레벨)만 role에 할당됨
|
||||
// 모듈의 getPermissions()에서 정의된 개별 권한 6개만 할당되어야 함
|
||||
// 모듈의 getPermissions()에서 정의된 개별 권한 8개만 할당되어야 함
|
||||
$adminRole = Role::where('identifier', 'admin')->first();
|
||||
|
||||
// admin role에 할당된 모듈 권한 개수 확인 (개별 권한 6개)
|
||||
// admin role에 할당된 모듈 권한 개수 확인 (개별 권한 8개)
|
||||
$assignedPermissions = $adminRole->permissions()->where('extension_identifier', 'sirsoft-board')->count();
|
||||
$this->assertEquals(6, $assignedPermissions);
|
||||
$this->assertEquals(8, $assignedPermissions);
|
||||
|
||||
// 전체 모듈 권한 개수 확인 (모듈 1 + 카테고리 2 + 개별 6 = 9개)
|
||||
// 전체 모듈 권한 개수 확인 (모듈 1 + 카테고리 3 + 개별 8 = 12개)
|
||||
$totalModulePermissions = Permission::where('extension_identifier', 'sirsoft-board')->count();
|
||||
$this->assertEquals(9, $totalModulePermissions);
|
||||
$this->assertEquals(12, $totalModulePermissions);
|
||||
|
||||
// 개별 권한만 role에 할당되었는지 확인
|
||||
$assignedIdentifiers = $adminRole->permissions()
|
||||
@@ -301,12 +305,15 @@ class ModuleRolePermissionTest extends TestCase
|
||||
$this->assertContains('sirsoft-board.boards.create', $assignedIdentifiers);
|
||||
$this->assertContains('sirsoft-board.boards.update', $assignedIdentifiers);
|
||||
$this->assertContains('sirsoft-board.boards.delete', $assignedIdentifiers);
|
||||
$this->assertContains('sirsoft-board.settings.read', $assignedIdentifiers);
|
||||
$this->assertContains('sirsoft-board.settings.update', $assignedIdentifiers);
|
||||
$this->assertContains('sirsoft-board.reports.view', $assignedIdentifiers);
|
||||
$this->assertContains('sirsoft-board.reports.manage', $assignedIdentifiers);
|
||||
|
||||
// 모듈 노드와 카테고리 노드는 할당되지 않음
|
||||
$this->assertNotContains('sirsoft-board', $assignedIdentifiers);
|
||||
$this->assertNotContains('sirsoft-board.boards', $assignedIdentifiers);
|
||||
$this->assertNotContains('sirsoft-board.settings', $assignedIdentifiers);
|
||||
$this->assertNotContains('sirsoft-board.reports', $assignedIdentifiers);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user