Files
sam-manage/app/Http/Controllers/RolePermissionController.php

51 lines
1.5 KiB
PHP
Raw Permalink Normal View History

<?php
namespace App\Http\Controllers;
use App\Models\Role;
use App\Models\Tenants\Tenant;
use App\Services\RolePermissionService;
use Illuminate\Http\Request;
class RolePermissionController extends Controller
{
protected RolePermissionService $rolePermissionService;
public function __construct(RolePermissionService $rolePermissionService)
{
$this->rolePermissionService = $rolePermissionService;
}
/**
* 역할 권한 관리 메인 페이지
*/
public function index(Request $request)
{
$tenantId = session('selected_tenant_id');
// 역할 목록 조회
$rolesQuery = Role::query()->orderBy('tenant_id')->orderBy('name');
if ($tenantId && $tenantId !== 'all') {
// 특정 테넌트 선택 시
$roles = $rolesQuery->where('tenant_id', $tenantId)->get();
$rolesByTenant = null;
} else {
// 전체 선택 시 테넌트별 그룹핑
$roles = $rolesQuery->get();
$rolesByTenant = $roles->groupBy('tenant_id');
// 테넌트 정보 로드
$tenantIds = $rolesByTenant->keys()->filter()->toArray();
$tenants = Tenant::whereIn('id', $tenantIds)->pluck('company_name', 'id');
}
return view('role-permissions.index', [
'roles' => $roles,
'rolesByTenant' => $rolesByTenant ?? null,
'tenants' => $tenants ?? collect(),
'selectedTenantId' => $tenantId,
]);
}
}