87 lines
2.3 KiB
JavaScript
87 lines
2.3 KiB
JavaScript
const so = require('./storeObject');
|
|
const config = require('../config');
|
|
const fs = require('fs');
|
|
|
|
const checkPermission = (req) => {
|
|
let id = req.headers['x-auth-token'];
|
|
if (id) {
|
|
let obj = so.get(id);
|
|
if (config.uni_token.length > 0 && id == config.uni_token) return true;
|
|
if (obj != null) {
|
|
if ('user' in obj && obj.user.write_privilege == '1') return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
const checkArray = (obj) => {
|
|
if (Array.isArray(obj)) return obj;
|
|
return [];
|
|
}
|
|
|
|
const getLeoneRT = (cb) => {
|
|
if (!cb || typeof cb != 'function') return;
|
|
fs.exists(config.cmdpath.leonert, exists => {
|
|
if (!exists) return cb([]);
|
|
fs.readFile(config.cmdpath.leonert, (err, data) => {
|
|
if (err) return cb([]);
|
|
let str = data.toString();
|
|
let tmp = str.split(/\n/);
|
|
let rt = [];
|
|
for (var i in tmp) {
|
|
if (!tmp[i].trim()) continue;
|
|
let arr = tmp[i].split(' ');
|
|
if (arr.length != 5) continue;
|
|
let [ip, ts, hs, mode, mtime] = arr;
|
|
rt.push({ ip, ts, hs, mode, mtime });
|
|
}
|
|
return cb(rt);
|
|
});
|
|
});
|
|
}
|
|
|
|
const promiseQuery = (res, query, param, key = '') => {
|
|
return new Promise((resolve, reject) => {
|
|
res.db.query(query, param, (err, row) => {
|
|
if (err) return reject(err);
|
|
resolve({ data: row, key });
|
|
});
|
|
});
|
|
}
|
|
|
|
const getMode = (req) => {
|
|
let lngs = req.headers['accept-language'].split(',');
|
|
let lng = null;
|
|
if (lngs.length > 0) {
|
|
lng = lngs[0].substring(0, 2);
|
|
} else {
|
|
lng = 'zh';
|
|
}
|
|
|
|
if (!fs.existsSync(`../public/locales/${lng}.json`)) lng = 'zh';
|
|
let json = require(`../public/locales/${lng}.json`);
|
|
return json[lng].translation.leone_stats;
|
|
}
|
|
|
|
const getCmd = (req) => {
|
|
let lngs = req.headers['accept-language'].split(',');
|
|
let lng = null;
|
|
if (lngs.length > 0) {
|
|
lng = lngs[0].substring(0, 2);
|
|
} else {
|
|
lng = 'zh';
|
|
}
|
|
|
|
if (!fs.existsSync(`../public/locales/${lng}.json`)) lng = 'zh';
|
|
let json = require(`../public/locales/${lng}.json`);
|
|
return json[lng].translation.action_list;
|
|
}
|
|
|
|
module.exports = {
|
|
checkPermission,
|
|
checkArray,
|
|
getLeoneRT,
|
|
promiseQuery,
|
|
getCmd,
|
|
getMode
|
|
} |