620 lines
19 KiB
TypeScript
620 lines
19 KiB
TypeScript
import { _utils } from '@/base/src/utils';
|
|
|
|
import {
|
|
InformationCircleIcon,
|
|
NewspaperIcon,
|
|
} from '@heroicons/vue/24/outline';
|
|
|
|
class siteConfig {
|
|
constructor() {
|
|
_utils.log('siteConfig Instance created...');
|
|
for (const property in this.menuItems) {
|
|
this.menuItems[property]['current'] = false;
|
|
}
|
|
}
|
|
|
|
// siteLayout = 'top-navbar-and-footer';
|
|
// siteLayout = 'center';
|
|
// siteLayout = 'raw';
|
|
siteLayout = 'side-navbar-and-footer';
|
|
|
|
siteName = 'KISO Safeguard System';
|
|
|
|
copyrightName = '(사)한국인터넷자율정책기구';
|
|
|
|
snsLinks = [
|
|
{ tag: 'facebook', url: 'https://facebook.com/kiso.cast' },
|
|
{ tag: 'twitter', url: 'https://twitter.com/kiso_cast' },
|
|
{
|
|
tag: 'youtube',
|
|
url: 'https://www.youtube.com/channel/UCa4qy69Aqr4JqrMeBeUEtuA',
|
|
},
|
|
];
|
|
|
|
siteSlogan = '바른 인터넷 사용 문화';
|
|
|
|
siteLogoUrl = '/inspond_logo_in_blue_bg_white.png';
|
|
|
|
menuItems = {
|
|
support_stipulation: {
|
|
title: '서비스 이용약관',
|
|
icon: NewspaperIcon,
|
|
routeName: 'docs-stipulation',
|
|
path: '/docs/stipulation/',
|
|
},
|
|
support_privacy: {
|
|
title: '개인정보 보호',
|
|
icon: NewspaperIcon,
|
|
routeName: 'docs-privacy',
|
|
path: '/docs/privacy',
|
|
},
|
|
// 이상 익명 사용자 권한
|
|
|
|
support_notice: {
|
|
title: '공지',
|
|
icon: NewspaperIcon,
|
|
routeName: 'support-notice',
|
|
path: '/support/notice',
|
|
},
|
|
support_faq: {
|
|
title: 'FAQ',
|
|
icon: NewspaperIcon,
|
|
routeName: 'support-faq',
|
|
path: '/support/faq',
|
|
},
|
|
support_inquiry: {
|
|
title: '1:1 문의',
|
|
icon: NewspaperIcon,
|
|
routeName: 'support-inquiry',
|
|
path: '/support/inquiry',
|
|
},
|
|
user_info: {
|
|
title: '유저 정보',
|
|
icon: NewspaperIcon,
|
|
routeName: 'user-info',
|
|
path: '/user/info',
|
|
},
|
|
// 이상 로그인 사용자 권한
|
|
|
|
doc_manual: {
|
|
title: '어드민 기능 안내',
|
|
icon: NewspaperIcon,
|
|
routeName: 'doc-manual',
|
|
path: '/doc/manual',
|
|
},
|
|
|
|
doc_guide: {
|
|
title: '서비스 도입 안내',
|
|
icon: NewspaperIcon,
|
|
routeName: 'doc-guide',
|
|
path: '/doc/guide',
|
|
},
|
|
|
|
doc_document: {
|
|
title: 'API 연동 안내',
|
|
icon: NewspaperIcon,
|
|
routeName: 'doc-api_doc',
|
|
path: '/doc/api_doc',
|
|
},
|
|
|
|
key_list: {
|
|
title: 'API 키 리스트',
|
|
icon: NewspaperIcon,
|
|
routeName: 'key-list',
|
|
path: '/key/list',
|
|
},
|
|
statistics: {
|
|
title: 'API 사용량 통계',
|
|
icon: NewspaperIcon,
|
|
routeName: 'statistics',
|
|
path: '/statistics',
|
|
},
|
|
// 이상 오퍼레이터 이상 사용 권한
|
|
|
|
filter: {
|
|
title: '필터 테스트',
|
|
icon: NewspaperIcon,
|
|
routeName: 'filter',
|
|
path: '/filter',
|
|
},
|
|
|
|
board_filter: {
|
|
title: '필터 관리 게시판',
|
|
icon: NewspaperIcon,
|
|
routeName: 'board-filter',
|
|
path: '/board/filter/list',
|
|
},
|
|
|
|
// 이상 수퍼 오퍼레이터 이상 사용 권한
|
|
|
|
admin_dashboard: {
|
|
title: '서비스 대시보드',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-dashboard',
|
|
path: '/admin/dashboard',
|
|
},
|
|
|
|
admin_notice: {
|
|
title: '공지 관리',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-support-notice-list',
|
|
path: '/admin/support/notice/list',
|
|
},
|
|
|
|
admin_faq: {
|
|
title: '자주 묻는 질문 관리',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-support-faq-list',
|
|
path: '/admin/support/faq/list',
|
|
},
|
|
|
|
admin_inquiry: {
|
|
title: '1:1 문의 관리',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-support-inquiry-list',
|
|
path: '/admin/support/inquiry/list',
|
|
},
|
|
|
|
admin_user_list: {
|
|
title: '사용자 관리',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-user-list',
|
|
path: '/admin/user/list',
|
|
},
|
|
|
|
admin_white_list: {
|
|
title: '가입 허가 관리',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-user-white-list',
|
|
path: '/admin/user/white/list',
|
|
},
|
|
|
|
admin_board: {
|
|
title: '게시판 관리',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-board-list',
|
|
path: '/admin/board/list',
|
|
},
|
|
|
|
admin_key_list: {
|
|
title: '전체 API 키 관리',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-key-list',
|
|
path: '/admin/key/list',
|
|
},
|
|
|
|
admin_filter: {
|
|
title: '필터 관리 (admin)',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-filter',
|
|
path: '/admin/filter',
|
|
},
|
|
|
|
admin_statistics: {
|
|
title: '사용량 통계 (admin)',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-statistics',
|
|
path: '/admin/statistics',
|
|
},
|
|
|
|
admin_lab: {
|
|
title: '연구실',
|
|
icon: NewspaperIcon,
|
|
routeName: 'admin-lab',
|
|
path: '/admin/lab',
|
|
},
|
|
};
|
|
|
|
menuIdx = 0;
|
|
|
|
menus = {
|
|
anonym: {
|
|
main: [],
|
|
sub: [
|
|
{
|
|
...this.menuItems['support_stipulation'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_privacy'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_faq'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
},
|
|
user: {
|
|
main: [
|
|
{
|
|
title: '고객 지원',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['support_notice'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_inquiry'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
title: '유저',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['user_info'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
sub: [
|
|
{
|
|
...this.menuItems['support_stipulation'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_privacy'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_faq'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
},
|
|
op: {
|
|
main: [
|
|
{
|
|
title: '고객 지원',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['support_notice'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_inquiry'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
title: '유저',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['user_info'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
title: 'API',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['doc_guide'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['doc_document'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['doc_manual'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
...this.menuItems['key_list'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['statistics'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['filter'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
sub: [
|
|
{
|
|
...this.menuItems['support_stipulation'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_privacy'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_faq'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
},
|
|
super_op: {
|
|
main: [
|
|
{
|
|
title: '고객 지원',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['support_notice'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_inquiry'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
title: '유저',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['user_info'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
title: 'API',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['doc_guide'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['doc_document'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['doc_manual'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
...this.menuItems['key_list'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['statistics'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['filter'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['board_filter'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
sub: [
|
|
{
|
|
...this.menuItems['support_stipulation'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_privacy'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_faq'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
},
|
|
|
|
admin: {
|
|
main: [
|
|
{
|
|
title: '고객 지원',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['support_notice'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_inquiry'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
title: '유저',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['user_info'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
title: 'API',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['doc_guide'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['doc_document'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['doc_manual'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
...this.menuItems['key_list'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['statistics'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['filter'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['board_filter'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
...this.menuItems['admin_filter'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
...this.menuItems['admin_key_list'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['admin_dashboard'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
...this.menuItems['admin_lab'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['admin_statistics'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
|
|
{
|
|
title: '어드민',
|
|
icon: InformationCircleIcon,
|
|
subs: [
|
|
{
|
|
...this.menuItems['admin_notice'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['admin_faq'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['admin_inquiry'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['admin_user_list'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['admin_white_list'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['admin_board'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
sub: [
|
|
{
|
|
...this.menuItems['support_stipulation'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_privacy'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
{
|
|
...this.menuItems['support_faq'],
|
|
idx: this.menuIdx++,
|
|
},
|
|
],
|
|
},
|
|
};
|
|
|
|
userLevelInfo = {
|
|
'0': {
|
|
level: 0,
|
|
title: '일반 회원',
|
|
description: '서비스에 가입한 상태이나 아무런 권한이 없습니다.',
|
|
users: '표기 : user',
|
|
},
|
|
'1': {
|
|
level: 1,
|
|
title: '일반 회원',
|
|
description: '서비스에 가입한 상태이나 아무런 권한이 없습니다.',
|
|
users: '표기 : user',
|
|
},
|
|
'2': {
|
|
level: 2,
|
|
title: '일반 회원',
|
|
description: '서비스에 가입한 상태이나 아무런 권한이 없습니다.',
|
|
users: '표기 : user',
|
|
},
|
|
'3': {
|
|
level: 3,
|
|
title: '회원사 운영자',
|
|
description: '사이트 가입 후 어드민이 승인한 사용자입니다.',
|
|
users: '표기 : op',
|
|
},
|
|
'4': {
|
|
level: 4,
|
|
title: '수퍼 운영자',
|
|
description: '필터 단어 추가 권한이 부여되는 운영자 입니다.',
|
|
users: '표기 : super',
|
|
},
|
|
'5': {
|
|
level: 5,
|
|
title: '어드민',
|
|
description: '모든 기능을 사용할 수 있는 전체 서비스 관리자입니다.',
|
|
users: '표기 : admin',
|
|
},
|
|
};
|
|
|
|
userLevels = [
|
|
this.userLevelInfo['0'],
|
|
this.userLevelInfo['3'],
|
|
this.userLevelInfo['4'],
|
|
this.userLevelInfo['5'],
|
|
];
|
|
}
|
|
|
|
export const _siteConfig = new siteConfig();
|