최초 커밋

This commit is contained in:
root
2026-07-23 16:15:57 +09:00
commit c8f5efb6b7
14652 changed files with 4812531 additions and 0 deletions
+148
View File
@@ -0,0 +1,148 @@
<?php
// // descope_session.php
// // 1) 에러 출력 (개발용)
// // ini_set('display_errors', 1);
// // error_reporting(E_ALL);
// // 2) 세션 시작 (중복 호출 방지)
// if (session_status() === PHP_SESSION_NONE) {
// session_start();
// }
// // 3) 로그인 검사
// // 로그인 시 $_SESSION['user']['userId'] 와 $_SESSION['user']['loginIds'][0] 를 설정해 두었다면
// // if (empty($_SESSION['user']['userId'])) {
// // // 로그인 필요 알림 후 로그인 페이지로 이동
// // echo <<<HTML
// // <script>
// // alert('Q&A를 이용하시려면 로그인이 필요합니다.');
// // window.location.href = '/egbim/index.php';
// // </script>
// // HTML;
// // exit;
// // }
// // ✅ Descope 로그인 성공 시 g5_member 세션 동기화
// $loginId = $_SESSION['user']['loginIds'][0] ?? '';
// if ($loginId === 'b24014@hanmaceng.co.kr') {
// // g5_member 계정이 이미 존재한다고 가정
// $_SESSION['ss_mb_id'] = $loginId;
// $_SESSION['ss_mb_level'] = 10;
// $is_member = true;
// $is_admin = 'super';
// $member = [
// 'mb_id' => $loginId,
// 'mb_name' => $_SESSION['user']['name'] ?? '관리자',
// 'mb_email' => $_SESSION['user']['email'] ?? '',
// 'mb_level' => 10,
// 'mb_nick' => '관리자',
// ];
// }
// // Descope 로그인 성공 시 (예: descope_session.php 내부)
// if (!empty($_SESSION['user']['loginIds'][0])) {
// $loginId = $_SESSION['user']['loginIds'][0];
// // g5_member 테이블에 계정이 존재한다고 가정
// $_SESSION['ss_mb_id'] = $loginId;
// $_SESSION['ss_mb_level'] = 10; // 관리자 레벨
// // 그누보드 전역 변수 보정
// $is_member = true;
// $is_admin = 'super';
// $member = [
// 'mb_id' => $loginId,
// 'mb_name' => $_SESSION['user']['name'] ?? '관리자',
// 'mb_email' => $_SESSION['user']['email'] ?? '',
// 'mb_level' => 10,
// 'mb_nick' => '관리자',
// ];
// }
// descope_session.php
// 1) 세션 시작
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
if (empty($_SESSION['user']['userId']) && !empty($_COOKIE['descope_login_id'])) {
$customAttributes = json_decode(base64_decode($_COOKIE['descope_custom_attributes'] ?? ''), true);
$roleNames = json_decode(base64_decode($_COOKIE['descope_role_names'] ?? ''), true);
$loginIdFromCookie = trim((string)($_COOKIE['descope_login_id'] ?? ''));
$_SESSION['user'] = [
'userId' => trim((string)($_COOKIE['descope_user_id'] ?? $loginIdFromCookie)),
'loginIds' => $loginIdFromCookie !== '' ? [$loginIdFromCookie] : [],
'name' => trim((string)($_COOKIE['descope_user_name'] ?? '')),
'email' => trim((string)($_COOKIE['descope_user_email'] ?? '')),
'phone' => trim((string)($_COOKIE['descope_user_phone'] ?? '')),
'customAttributes' => is_array($customAttributes) ? $customAttributes : [],
'roleNames' => is_array($roleNames) ? $roleNames : [],
];
}
// 2) 로그인 검사 (비로그인 차단)
// if (empty($_SESSION['user']['userId'])) {
// // 세션 없으면 바로 차단
// session_destroy();
// echo "<script>
// alert('로그인이 필요합니다.');
// // 로그인 팝업 자동 오픈 플래그 전달
// window.location.href = '/egbim/index.php?popup=login';
// </script>";
// exit;
// }
// 3) 로그인 정보 추출
$loginIds = $_SESSION['user']['loginIds'] ?? [];
$loginId = (is_array($loginIds) && !empty($loginIds)) ? $loginIds[0] : '';
$userName = $_SESSION['user']['name'] ?? '';
$userEmail = $_SESSION['user']['email'] ?? '';
// 4) 관리자/일반 사용자 구분
$ADMIN_EMAILS = [
'kjy0426@hanmaceng.co.kr',
'b24014@hanmaceng.co.kr',
'b23065@hanmaceng.co.kr',
'shyeom1@samaneng.com',
'cjy627@hanmaceng.co.kr',
'b23072@hanmaceng.co.kr',
'cozyjin@hanmaceng.co.kr',
'm24031@hanmaceng.co.kr',
'b24051@hanmaceng.co.kr',
'rmsgud1202@hanmaceng.co.kr',
'm21318@hanmaceng.co.kr',
'b25023@hanmaceng.co.kr',
'sdi9429@naver.com',
'junsuy@hanmail.net',
'ilphilo92@gmail.com'
];
// $isAdmin = in_array($loginId, $ADMIN_EMAILS, true);
$isAdmin = $loginId && in_array($loginId, $ADMIN_EMAILS, true);
// ✅ 그누보드 전역 세션 동기화
if ($loginId) {
$_SESSION['ss_mb_id'] = $loginId;
$_SESSION['ss_mb_level'] = $isAdmin ? 10 : 2;
$is_member = true;
$is_admin = $isAdmin ? 'super' : '';
$member = [
'mb_id' => $loginId,
'mb_name' => $userName ?: $loginId,
'mb_email' => $userEmail,
'mb_level' => $_SESSION['ss_mb_level'],
'mb_nick' => $userName ?: $loginId,
];
} else {
// ✅ 비회원: 로그인 세션 없음
$is_member = false;
$is_admin = '';
$member = [];
}
?>