Files
core/i_entrance/j_get_user_info.php
T
Hide_D f5b3b985ce feat: 시스템 권한 분리
- 부운영자를 부운영자(시스템), 부운영자(유저)로 분리
2024-12-14 04:06:03 +00:00

93 lines
2.7 KiB
PHP

<?php
namespace sammo;
require(__DIR__.'/../vendor/autoload.php');
$session = Session::requireLogin([])->setReadOnly();
$userID = Session::getUserID();
// 외부 파라미터
$db = RootDB::db();
$member = $db->queryFirstRow('SELECT `id`, `name`, `grade`, `picture`, reg_date, third_use, acl, oauth_type, token_valid_until FROM `member` WHERE `NO` = %i', $userID);
if(!$member['picture']){
$picture = ServConfig::getSharedIconPath().'/default.jpg';
}
else{
$picture = $member['picture'];
if(strlen($picture) > 11){
$picture = substr($picture, 0, -10);
}
$pictureFSPath = AppConf::getUserIconPathFS().'/'.$picture;
if(file_exists($pictureFSPath)){
$picture = AppConf::getUserIconPathWeb().'/'.$picture;
}
else{
$picture = ServConfig::getSharedIconPath().'/'.$picture;
}
}
$tokenValidUntil = $member['token_valid_until'];
if($member['grade'] == 7) {
$grade = '최고운영자';
} elseif($member['grade'] == 6) {
$grade = '부운영자(시스템)';
} elseif($member['grade'] == 5) {
$grade = '부운영자(유저)';
} elseif($member['grade'] > 1) {
$grade = '특별회원';
} elseif($member['grade'] == 1) {
$grade = '일반회원';
} elseif($member['grade'] == 0) {
$grade = '블럭회원';
}
$acl = [];
//TODO: Acl을 관리하기 위한 별도의 객체 필요
foreach(Json::decode($member['acl']??'{}') as $serverName=>$aclList){
$serverKorName = ServConfig::getServerList()[$serverName]->getKorName();
$aclTextList = array_map(function($aclName){
$aclText = "알수없음[{$aclName}]";
switch($aclName){
case 'openClose':$aclText='서버여닫기';break;
case 'reset':$aclText='서버리셋';break;
case 'update':$aclText='업데이트';break;
case 'fullUpdate':$aclText='임의업데이트';break;
case 'vote':$aclText='설문조사';break;
case 'globalNotice':$aclText='전역공지';break;
case 'notice':$aclText='공지';break;
case 'blockGeneral':$aclText='장수징계';break;
}
return $aclText;
}, $aclList);
$acl[] = sprintf("%s(%s)", $serverKorName, join(",", $aclTextList));
}
if($acl){
$acl = join(",<br>", $acl);
}
else{
$acl = "-";
}
Json::die([
'result'=>true,
'reason'=>'success',
'id'=>$member['id'],
'name'=>$member['name'],
'grade'=>$grade,
'picture'=>$picture,
'global_salt'=>RootDB::getGlobalSalt(),
'join_date'=>$member['reg_date'],
'third_use'=>($member['third_use']!=0),
'acl'=>$acl,
'oauth_type'=>$member['oauth_type'],
'token_valid_until'=>$tokenValidUntil
]);