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:
@@ -15,6 +15,8 @@ class Roles extends BaseConfig
|
||||
* mb_level 상수 (member.mb_level)
|
||||
*/
|
||||
public const LEVEL_SUPER_ADMIN = 4;
|
||||
/** 본부 관리자 — 현재는 super admin과 동일한 관리자 권한(지자체 선택 후 작업). 추후 super 전용 기능 분리 시 여기만 조정 */
|
||||
public const LEVEL_HEADQUARTERS_ADMIN = 5;
|
||||
public const LEVEL_LOCAL_ADMIN = 3; // 지자체관리자
|
||||
public const LEVEL_SHOP = 2; // 지정판매소
|
||||
public const LEVEL_CITIZEN = 1; // 일반 사용자(시민)
|
||||
@@ -29,8 +31,27 @@ class Roles extends BaseConfig
|
||||
self::LEVEL_SHOP => '지정판매소',
|
||||
self::LEVEL_LOCAL_ADMIN => '지자체관리자',
|
||||
self::LEVEL_SUPER_ADMIN => 'super admin',
|
||||
self::LEVEL_HEADQUARTERS_ADMIN => '본부 관리자',
|
||||
];
|
||||
|
||||
/**
|
||||
* super admin(4) 또는 본부 관리자(5) — 동일 관리자 UX(지자체 선택 등)에 사용
|
||||
*/
|
||||
public static function isSuperAdminEquivalent(int $level): bool
|
||||
{
|
||||
return $level === self::LEVEL_SUPER_ADMIN || $level === self::LEVEL_HEADQUARTERS_ADMIN;
|
||||
}
|
||||
|
||||
/**
|
||||
* TOTP 2차 인증 적용 대상 (지자체·super·본부 관리자)
|
||||
*/
|
||||
public static function requiresTotp(int $level): bool
|
||||
{
|
||||
return $level === self::LEVEL_LOCAL_ADMIN
|
||||
|| $level === self::LEVEL_SUPER_ADMIN
|
||||
|| $level === self::LEVEL_HEADQUARTERS_ADMIN;
|
||||
}
|
||||
|
||||
/**
|
||||
* 자체 회원가입 시 기본 역할 (mb_level)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user