浏览代码

fixes #1124

tags/v0.3.2
Big Bad Waffle 5 年前
父节点
当前提交
38eda14aa7
共有 3 个文件被更改,包括 65 次插入2 次删除
  1. +1
    -1
      src/client/ui/templates/messages/messages.js
  2. +11
    -0
      src/server/security/connections.js
  3. +53
    -1
      src/server/security/rest.js

+ 1
- 1
src/client/ui/templates/messages/messages.js 查看文件

@@ -253,7 +253,7 @@ define([
messages.forEach(m => {
let message = m.message;

if (this.blockedPlayers.includes(m.source))
if (m.source && this.blockedPlayers.includes(m.source))
return;

if (m.item) {


+ 11
- 0
src/server/security/connections.js 查看文件

@@ -173,6 +173,17 @@ module.exports = {
return result;
},

forceSaveAll: function () {
this.players
.filter(p => p.zone)
.forEach(p => {
atlas.performAction(p, {
cpn: 'auth',
method: 'doSave'
});
});
},

modifyPlayerCount: function (delta) {
this.playing += delta;
}


+ 53
- 1
src/server/security/rest.js 查看文件

@@ -1,5 +1,8 @@
const serverConfig = require('../config/serverConfig');
const connections = require('../security/connections');
const version = serverConfig.version;
const bcrypt = require('bcrypt-nodejs');
const roles = require('../config/roles');

module.exports = {
init: function (app) {
@@ -7,10 +10,59 @@ module.exports = {
v: version,
p: cons.playing
}));

app.get('/adminForceSave', this.forceSaveAll.bind(this));
},

forceSaveAll: async function (req, res, next) {
let config = {};

let pars = req.originalUrl.split('?').pop().split('&');
pars.forEach(p => {
let [par, val] = p.split('=');
config[par] = val
.split('%20')
.join(' ');
});

if (['msg', 'username', 'pwd'].some(p => !config[p]))
return;

let storedPassword = await io.getAsync({
key: config.username,
table: 'login',
noParse: true
});

bcrypt.compare(config.pwd, storedPassword, this.doSaveAll.bind(this, config));
},

doSaveAll: function (config, err, compareResult) {
if (!compareResult)
return;

let roleLevel = roles.getRoleLevel({
account: config.username
});
if (roleLevel < 10)
return;

cons.emit('event', {
event: 'onGetMessages',
data: {
messages: [{
class: 'color-blueA',
message: config.msg,
type: 'chat'
}]
}
});

connections.forceSaveAll();
},

willHandle: function (url) {
if (url.includes('/info'))
if (url.includes('/info') || url.includes('/adminForceSave'))
return true;
}
};

正在加载...
取消
保存