- robthree/twofactorauth, Auth 설정·TotpService·2FA 뷰·라우트 - member TOTP 컬럼 DDL(login_tables, member_add_totp.sql) - 관리자 메뉴·레이아웃·필터·대시보드 등 연관 변경 - env 샘플에 auth.requireTotp 주석 Made-with: Cursor
59 lines
1.9 KiB
PHP
59 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers\Admin;
|
|
|
|
use App\Controllers\BaseController;
|
|
use App\Models\LocalGovernmentModel;
|
|
use Config\Roles;
|
|
|
|
class SelectLocalGovernment extends BaseController
|
|
{
|
|
/**
|
|
* 지자체 선택 화면 (super·본부 관리자)
|
|
*/
|
|
public function index()
|
|
{
|
|
if (! Roles::isSuperAdminEquivalent((int) session()->get('mb_level'))) {
|
|
return redirect()->to(site_url('admin'))->with('error', '지자체 선택은 상위 관리자만 사용할 수 있습니다.');
|
|
}
|
|
|
|
$list = model(LocalGovernmentModel::class)
|
|
->where('lg_state', 1)
|
|
->orderBy('lg_name', 'ASC')
|
|
->findAll();
|
|
|
|
return view('admin/layout', [
|
|
'title' => '지자체 선택',
|
|
'content' => view('admin/select_local_government/index', [
|
|
'list' => $list,
|
|
]),
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 선택 처리: admin_selected_lg_idx 저장 후 관리자 대시보드로 이동
|
|
*/
|
|
public function store()
|
|
{
|
|
if (! Roles::isSuperAdminEquivalent((int) session()->get('mb_level'))) {
|
|
return redirect()->to(site_url('admin'))->with('error', '지자체 선택은 상위 관리자만 사용할 수 있습니다.');
|
|
}
|
|
|
|
$lgIdx = (int) $this->request->getPost('lg_idx');
|
|
if ($lgIdx <= 0) {
|
|
return redirect()->back()
|
|
->with('error', '지자체를 선택해 주세요.');
|
|
}
|
|
|
|
$exists = model(LocalGovernmentModel::class)->find($lgIdx);
|
|
if ($exists === null) {
|
|
return redirect()->back()
|
|
->with('error', '선택한 지자체를 찾을 수 없습니다.');
|
|
}
|
|
|
|
session()->set('admin_selected_lg_idx', $lgIdx);
|
|
|
|
return redirect()->to(site_url('admin'))->with('success', $exists->lg_name . ' 지자체로 전환되었습니다.');
|
|
}
|
|
}
|