get('logged_in')) { return redirect()->to(site_url('login'))->with('error', '로그인이 필요합니다.'); } $level = (int) session()->get('mb_level'); $isAdminLevel = Roles::isSuperAdminEquivalent($level) || $level === Roles::LEVEL_LOCAL_ADMIN; if (! $isAdminLevel) { return redirect()->to(site_url('/'))->with('error', '관리자만 접근할 수 있습니다.'); } // Super/본부: 지자체 미선택 시 지자체 선택 페이지로 유도 (지자체 선택·지자체 CRUD는 미선택도 허용) $uri = $request->getUri(); $seg2 = $uri->getSegment(2); $allowedWithoutSelection = ['select-local-government', 'local-governments']; if (Roles::isSuperAdminEquivalent($level) && ! in_array($seg2, $allowedWithoutSelection, true)) { $selected = session()->get('admin_selected_lg_idx'); if ($selected === null || $selected === '') { return redirect()->to(site_url('admin/select-local-government'))->with('error', '작업할 지자체를 먼저 선택해 주세요.'); } } helper('admin'); return null; } public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) { return $response; } }