<?php
include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
include_once _HOME_INC_PATH_ ."/ajax_init.php";

$apiObj = "";
if( class_exists("SangsengApi") ){
  $apiObj = new SangsengApi();
}

$admrow = $baseObj->getMember($_REQUEST['admin_id']);

$_REQUEST['mode'] = isset($_REQUEST['mode'])?$_REQUEST['mode']:"";
switch ($_REQUEST['mode']) {

  case "adminLogin" :
    if( csrf_check('adminLogin') ){
      $retval['mesg'] = cUtil\Mlang::getText("정상적인 접근이 아닙니다.");
    }else if( !$_REQUEST['admin_id'] ){
      $retval['mesg'] = cUtil\Mlang::getText("아이디를 입력하지 않았습니다.");
    }else if( !$_REQUEST['admin_pw'] ){
      $retval['mesg'] = cUtil\Mlang::getText("비밀번호를 입력하지 않았습니다.");
    }else{
      $row = $baseObj->login($_REQUEST['admin_id'],$_REQUEST['admin_pw']);
      if( $row ){
        if( !array_key_exists($row['member_auth'],$GLOBALS['_varsAuthAdmin']) ){
          $retval['mesg'] = cUtil\Mlang::getText("아이디나 비밀번호를 확인해 주세요.");
        }else if( $row['member_status'] != 1 ){
          $retval['mesg'] = cUtil\Mlang::getText("해당 계정은 [{@1}] 상태입니다.", array($GLOBALS['_varsMemStatus'][$row['member_status']]));
        }else{
          $retval['code'] = 1;
          $apiObj && $apiObj->pushApi($_REQUEST['admin_id'],"접속");
        }
      }else{
        $retval['mesg'] = cUtil\Mlang::getText("아이디나 비밀번호를 확인해 주세요.");
      }
      $baseObj->logRec($_REQUEST['admin_id'], "admin", $retval['code']);

    }

  break;








  case "adminJoin" :
    if( csrf_check('adminJoin') ){
      $retval['mesg'] = cUtil\Mlang::getText("정상적인 접근이 아닙니다.");
    }else if( !$_REQUEST['admin_id'] ){
      $retval['mesg'] = cUtil\Mlang::getText("아이디를 입력하지 않았습니다.");
    }else if( strlen(preg_replace("/[0-9a-z]/im","",$_REQUEST['admin_id'])) > 0 || strlen(preg_replace("/[^0-9a-z]/im","",$_REQUEST['admin_id'])) < $GLOBALS['_varsBaseCode']['id_len'] ){
      $retval['mesg'] = cUtil\Mlang::getText("아이디는 영문자/숫자 만으로 구성되며, {$GLOBALS['_varsBaseCode']['id_len']}자리 이상이어야 합니다.");
    }else if( !$_REQUEST['admin_pw'] ){
      $retval['mesg'] = cUtil\Mlang::getText("비밀번호를 입력하지 않았습니다.");
    }else if( !$_REQUEST['admin_pwf'] ){
      $retval['mesg'] = cUtil\Mlang::getText("비밀번호 확인을 입력하지 않았습니다.");
    }else if( strlen($_REQUEST['admin_pw']) < $GLOBALS['_varsBaseCode']['pw_len'] ){
      $retval['mesg'] = cUtil\Mlang::getText("비밀번호는 {$GLOBALS['_varsBaseCode']['pw_len']}자 이상이어야 합니다.");
    }else if( !preg_match("/[^0-9a-z ]/ims", $_REQUEST['admin_pw']) ){
      $retval['mesg'] = cUtil\Mlang::getText("비밀번호는 {$GLOBALS['_varsBaseCode']['pw_len']}자 이상, 특수문자를 포함하여야 합니다.");
    }else if( $_REQUEST['admin_pw'] != $_REQUEST['admin_pwf'] ){
      $retval['mesg'] = cUtil\Mlang::getText("비밀번호가 일치하지 않습니다.");
    }else if( $admrow['member_id'] || in_array($_REQUEST['admin_id'], array("admin","root")) ){
      $retval['mesg'] = cUtil\Mlang::getText("이미 존재하는 아이디 또는 사용 불가능한 아이디 입니다.");
    }else if( !$_REQUEST['admin_name'] ){
      $retval['mesg'] = cUtil\Mlang::getText("관리자명을 입력하지 않았습니다.");
    }else{
      $ins_row = Array(
        "member_id"     => $_REQUEST['admin_id'],
        "member_pw"     => $_REQUEST['admin_pw'],
        "member_name"   => $_REQUEST['admin_name'],
        "member_auth"   => "A",
        "member_status" => 2,
      );
      $retval['code'] = $baseObj->join($ins_row);
      $retval['mesg'] = cUtil\Mlang::getText("등록에 실패하였습니다.");
    }

  break;








  case "adminLogout" :
    $apiObj && $apiObj->pushApi($GLOBALS['_Umem']['member_id'],"종료");
    $retval['code'] = $baseObj->logout();
  break;








  case "getSiteMenuList":
    $mnuObj = new Menu(TB_menu_list);
    $mnuObj->cate_area = "admin";

    $rows = $mnuObj->getTreeListForTreeView("",$_REQUEST['menu_code']);
    if( $rows ){
      $retval['code'] = 1;
      $retval['data'] = $rows;
    }else{
      $retval['mesg'] = "불러오지 못하였습니다.";
    }
  break;
}


if( !$_REQUEST['no_echo'] ){
  echo json_encode($retval);
}