Quellcode durchsuchen

initial commit

tags/v0.4.3^2
Big Bad Waffle vor 4 Jahren
Ursprung
Commit
81de6f656a
2 geänderte Dateien mit 50 neuen und 10 gelöschten Zeilen
  1. +13
    -10
      src/server/security/rest.js
  2. +37
    -0
      src/server/security/transactions.js

+ 13
- 10
src/server/security/rest.js Datei anzeigen

@@ -3,6 +3,7 @@ const connections = require('../security/connections');
const version = serverConfig.version;
const bcrypt = require('bcrypt-nodejs');
const roles = require('../config/roles');
const transactions = require('./transactions')7

module.exports = {
init: function (app) {
@@ -37,7 +38,7 @@ module.exports = {
bcrypt.compare(config.pwd, storedPassword, this.doSaveAll.bind(this, res, config));
},

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

@@ -47,16 +48,18 @@ module.exports = {
if (roleLevel < 9)
return;

await transactions.returnWhenDone();

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

connections.forceSaveAll();



+ 37
- 0
src/server/security/transactions.js Datei anzeigen

@@ -0,0 +1,37 @@
let lastId = 0;
const list = [];

const complete = id => {
list.spliceWhere(l => l === id);
};

const register = () => {
const nextId = ++lastId;
list.push(nextId);

return complete.bind(null, nextId);
};

const returnWhenDone = async () => {
if (!list.length)
return;

return new Promise(res => {
const checker = () => {
if (!list.length) {
res();

return;
}

setTimeout(checker, 100);
};

checker();
});
};

module.exports = {
register,
returnWhenDone
};

Laden…
Abbrechen
Speichern