feat: TOTP 2차 인증, 관리자 메뉴/대시보드 및 의존성 반영
- robthree/twofactorauth, Auth 설정·TotpService·2FA 뷰·라우트 - member TOTP 컬럼 DDL(login_tables, member_add_totp.sql) - 관리자 메뉴·레이아웃·필터·대시보드 등 연관 변경 - env 샘플에 auth.requireTotp 주석 Made-with: Cursor
This commit is contained in:
@@ -13,6 +13,8 @@ class MemberModel extends Model
|
||||
protected $allowedFields = [
|
||||
'mb_id',
|
||||
'mb_passwd',
|
||||
'mb_totp_secret',
|
||||
'mb_totp_enabled',
|
||||
'mb_name',
|
||||
'mb_email',
|
||||
'mb_phone',
|
||||
|
||||
@@ -28,12 +28,12 @@ class MenuModel extends Model
|
||||
|
||||
/**
|
||||
* 특정 mb_level에 노출할 메뉴만 필터링 (mm_is_view=Y, mm_level에 해당 레벨 포함 또는 빈값).
|
||||
* lg_idx 기준 해당 지자체 메뉴만 대상. super admin(4)은 mm_level 무관하게 해당 지자체 메뉴 전체 노출.
|
||||
* lg_idx 기준 해당 지자체 메뉴만 대상. super/본부(4·5)는 mm_level 무관하게 해당 지자체 메뉴 전체 노출.
|
||||
*/
|
||||
public function getVisibleByLevel(int $mtIdx, int $mbLevel, int $lgIdx): array
|
||||
{
|
||||
$all = $this->getAllByType($mtIdx, $lgIdx);
|
||||
if ($mbLevel === \Config\Roles::LEVEL_SUPER_ADMIN) {
|
||||
if (\Config\Roles::isSuperAdminEquivalent($mbLevel)) {
|
||||
return array_values(array_filter($all, static fn ($row) => (string) $row->mm_is_view === 'Y'));
|
||||
}
|
||||
$levelStr = (string) $mbLevel;
|
||||
|
||||
Reference in New Issue
Block a user