修改
This commit is contained in:
parent
ee4eb8b4a7
commit
ab5fc549b3
@ -1,6 +1,7 @@
|
|||||||
import { Router } from 'express';
|
import { Router } from 'express';
|
||||||
import testCtrl from './test';
|
import testCtrl from './test';
|
||||||
import uploadRouter from './upload'
|
import uploadRouter from './upload'
|
||||||
|
import minigameRouter from './minigame'
|
||||||
import permission from './../../middleware/permission';
|
import permission from './../../middleware/permission';
|
||||||
|
|
||||||
const router = new Router();
|
const router = new Router();
|
||||||
@ -8,6 +9,7 @@ const router = new Router();
|
|||||||
// TODO:
|
// TODO:
|
||||||
router.get('/test', permission, testCtrl);
|
router.get('/test', permission, testCtrl);
|
||||||
|
|
||||||
router.use('/common', uploadRouter);
|
router.use('/', uploadRouter);
|
||||||
|
router.use('/', minigameRouter);
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
18
src/controllers/common/minigame.js
Normal file
18
src/controllers/common/minigame.js
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import { Router } from 'express';
|
||||||
|
|
||||||
|
const router = new Router();
|
||||||
|
// 获取平台列表
|
||||||
|
router.post('/minigame', async (req, res, next) => {
|
||||||
|
const body = req.body;
|
||||||
|
try {
|
||||||
|
console.log(body);
|
||||||
|
res.send({
|
||||||
|
errcode: 0,
|
||||||
|
body
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
@ -1,6 +1,7 @@
|
|||||||
// import GameInfo from '../../models/snoopy/GameInfo';
|
// import GameInfo from '../../models/snoopy/GameInfo';
|
||||||
import GameInfo from '../../models/admin/GameInfo';
|
import GameInfo from '../../models/admin/GameInfo';
|
||||||
import { Router } from 'express';
|
import { Router } from 'express';
|
||||||
|
import { userInfo } from 'os';
|
||||||
|
|
||||||
const router = new Router();
|
const router = new Router();
|
||||||
|
|
||||||
@ -137,6 +138,45 @@ const router = new Router();
|
|||||||
// }
|
// }
|
||||||
// });
|
// });
|
||||||
|
|
||||||
|
// TODO: 权限控制
|
||||||
|
|
||||||
|
// 获取游戏列表
|
||||||
|
router.get('/list', async (req, res, next) => {
|
||||||
|
const query = req.query || {};
|
||||||
|
const userPerms = req.user.permissions
|
||||||
|
console.log(req.query)
|
||||||
|
|
||||||
|
try {
|
||||||
|
let search = [];
|
||||||
|
let result = [];
|
||||||
|
if (query.type === 'all') {
|
||||||
|
// 返回所有游戏信息(仅包含游戏_id与游戏名)
|
||||||
|
result = await GameInfo.find({ deleted: false });
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// TODO: 只返回有权限查阅的游戏
|
||||||
|
search = await GameInfo.find({ deleted: false });
|
||||||
|
result = search.filter(game => {
|
||||||
|
const uid = game._id
|
||||||
|
return userPerms.includes(`${uid}-readable`) || userPerms.includes(`${uid}-edit`) || userPerms.includes(`${uid}-publish`)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(result)
|
||||||
|
|
||||||
|
|
||||||
|
res.send({
|
||||||
|
errcode: 0,
|
||||||
|
gameList: result,
|
||||||
|
user: req.user
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 保存游戏信息
|
||||||
router.post('/save', async (req, res, next) => {
|
router.post('/save', async (req, res, next) => {
|
||||||
const body = req.body;
|
const body = req.body;
|
||||||
try {
|
try {
|
||||||
@ -147,7 +187,7 @@ router.post('/save', async (req, res, next) => {
|
|||||||
{ game_name_en: body.game_name_en }
|
{ game_name_en: body.game_name_en }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
if (search) {
|
if (search && !search.deleted) {
|
||||||
res.send({
|
res.send({
|
||||||
errcode: 1,
|
errcode: 1,
|
||||||
errmsg: '游戏已存在!'
|
errmsg: '游戏已存在!'
|
||||||
@ -155,9 +195,96 @@ router.post('/save', async (req, res, next) => {
|
|||||||
} else {
|
} else {
|
||||||
const newGameInfo = new GameInfo(body);
|
const newGameInfo = new GameInfo(body);
|
||||||
const result = await newGameInfo.save();
|
const result = await newGameInfo.save();
|
||||||
|
console.log(result);
|
||||||
|
res.send({
|
||||||
|
errcode: 0,
|
||||||
|
gameInfo: result
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 查找单个游戏信息
|
||||||
|
router.get('/info', async (req, res, next) => {
|
||||||
|
const query = req.query;
|
||||||
|
try {
|
||||||
|
const search = await GameInfo.findOne({
|
||||||
|
_id: query.uid,
|
||||||
|
deleted: false
|
||||||
|
});
|
||||||
|
if (search) {
|
||||||
|
res.send({
|
||||||
|
errcode: 0,
|
||||||
|
gameInfo: search
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.send({
|
||||||
|
errcode: 1,
|
||||||
|
errmsg: '游戏不存在或已删除!'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 更新游戏信息
|
||||||
|
router.post('/update', async (req, res, next) => {
|
||||||
|
const body = req.body;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const search = await GameInfo.findOne({
|
||||||
|
_id: body._id,
|
||||||
|
deleted: false
|
||||||
|
});
|
||||||
|
if (search) {
|
||||||
|
const result = await GameInfo.update(
|
||||||
|
{
|
||||||
|
_id: body._id,
|
||||||
|
deleted: false
|
||||||
|
},
|
||||||
|
body
|
||||||
|
);
|
||||||
res.send({
|
res.send({
|
||||||
errcode: 0
|
errcode: 0
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
res.send({
|
||||||
|
errcode: 1,
|
||||||
|
errmsg: '游戏不存在或已删除!'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 删除一个游戏
|
||||||
|
router.post('/del', async (req, res, next) => {
|
||||||
|
const body = req.body;
|
||||||
|
try {
|
||||||
|
const search = await GameInfo.findOne({
|
||||||
|
_id: body.uid,
|
||||||
|
deleted: false
|
||||||
|
});
|
||||||
|
if (search) {
|
||||||
|
const result = await GameInfo.updateOne(
|
||||||
|
{
|
||||||
|
_id: body.uid,
|
||||||
|
deleted: false
|
||||||
|
},
|
||||||
|
{ deleted: true }
|
||||||
|
);
|
||||||
|
res.send({
|
||||||
|
errcode: 0
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.send({
|
||||||
|
errcode: 1,
|
||||||
|
errmsg: '游戏不存在或已删除!'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
next(err);
|
next(err);
|
||||||
|
@ -110,4 +110,41 @@ router.post('/edit', async function userEditCtrl(req, res, next) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.post('/save', async (req, res, next) => {
|
||||||
|
const body = req.body;
|
||||||
|
const dn = `cn=${body.fullname},ou=people,dc=kingsome,dc=cn`;
|
||||||
|
const entry = {
|
||||||
|
cn: body.fullname,
|
||||||
|
sn: body.fullname,
|
||||||
|
objectClass: [
|
||||||
|
'posixAccount',
|
||||||
|
'inetOrgPerson',
|
||||||
|
'organizationalPerson',
|
||||||
|
'person'
|
||||||
|
],
|
||||||
|
uid: body.username
|
||||||
|
};
|
||||||
|
const client = ldap.createClient({
|
||||||
|
url: config.ldap.url
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
client.bind(config.ldap.user, config.ldap.password, function(err, bindRes) {
|
||||||
|
if (err) next(err);
|
||||||
|
client.add(dn, entry, function(err) {
|
||||||
|
if (err) console.log(err);
|
||||||
|
// res.send({
|
||||||
|
// errcode: 0
|
||||||
|
// })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import { Router } from 'express';
|
import { Router } from 'express';
|
||||||
import userInfoRouter from './info'
|
import permission from '../../middleware/permission';
|
||||||
import loginRouter from './login'
|
import userInfoRouter from './info';
|
||||||
import editRouter from './edit'
|
import loginRouter from './login';
|
||||||
|
import editRouter from './edit';
|
||||||
|
|
||||||
const router = new Router();
|
const router = new Router();
|
||||||
|
|
||||||
router.use('/user', userInfoRouter)
|
router.use('/user', loginRouter);
|
||||||
router.use('/user', loginRouter)
|
router.use('/user', permission, userInfoRouter);
|
||||||
router.use('/user', editRouter)
|
router.use('/user', permission, editRouter);
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
@ -70,7 +70,7 @@ router.post('/login', function(req, res, next) {
|
|||||||
},
|
},
|
||||||
config.jwtSecret,
|
config.jwtSecret,
|
||||||
{
|
{
|
||||||
expiresIn: 60 * 60 * 2
|
expiresIn: 60 * 60 * 24
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
|
@ -46,6 +46,7 @@ export default function(req, res, next) {
|
|||||||
let permissions = [...searchResult.permissions];
|
let permissions = [...searchResult.permissions];
|
||||||
permissions = combPer(permissions);
|
permissions = combPer(permissions);
|
||||||
const userInfo = JSON.parse(JSON.stringify(searchResult));
|
const userInfo = JSON.parse(JSON.stringify(searchResult));
|
||||||
|
userInfo.permissions = permissions
|
||||||
req.user = userInfo;
|
req.user = userInfo;
|
||||||
next();
|
next();
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,8 @@ const GameInfo = new mongoose.Schema(
|
|||||||
game_id: { type: String },
|
game_id: { type: String },
|
||||||
game_type: { type: String },
|
game_type: { type: String },
|
||||||
game_icon: { type: String },
|
game_icon: { type: String },
|
||||||
platforms: [{type: Object}]
|
platforms: [{type: Object}],
|
||||||
|
deleted: {type: Boolean, default: false}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
collection: 'game_info',
|
collection: 'game_info',
|
||||||
|
31
src/models/admin/OpLog.js
Normal file
31
src/models/admin/OpLog.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
'use strict';
|
||||||
|
import mongoose from 'mongoose';
|
||||||
|
|
||||||
|
const Schema = mongoose.Schema;
|
||||||
|
const ObjectId = Schema.Types.ObjectId;
|
||||||
|
/**
|
||||||
|
* 操作日志
|
||||||
|
*/
|
||||||
|
const OpLog = new mongoose.Schema({
|
||||||
|
// 游戏id
|
||||||
|
admin: {type: ObjectId, ref: 'Admin'},
|
||||||
|
username: {type: String},
|
||||||
|
method: {type: String},
|
||||||
|
show_name: {type: String},
|
||||||
|
// 请求路径
|
||||||
|
path: {type: String},
|
||||||
|
user_agent: {type: String},
|
||||||
|
referer: {type: String},
|
||||||
|
// 请求的param
|
||||||
|
params: {type: Schema.Types.Mixed},
|
||||||
|
// ip
|
||||||
|
ip: {type: String},
|
||||||
|
// 备注
|
||||||
|
comment: {type: String},
|
||||||
|
}, {
|
||||||
|
collection: 'op_logs',
|
||||||
|
timestamps: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
export default mongoose.model('OpLog', OpLog);
|
||||||
|
|
@ -9,9 +9,9 @@ import gamesRouter from './../controllers/games';
|
|||||||
const router = new Router();
|
const router = new Router();
|
||||||
|
|
||||||
// 公共接口
|
// 公共接口
|
||||||
router.use('/', commonRouter);
|
router.use('/common', permission,commonRouter);
|
||||||
// 系统管理
|
// 系统管理
|
||||||
router.use('/sys', sysRouter);
|
router.use('/sys', permission,sysRouter);
|
||||||
// 用户相关
|
// 用户相关
|
||||||
router.use('/', userRouter);
|
router.use('/', userRouter);
|
||||||
// 游戏列表
|
// 游戏列表
|
||||||
|
Loading…
x
Reference in New Issue
Block a user