feat: #7743 navigation
parent
e72f3e4ffe
commit
764a2b1210
@ -1,42 +1,36 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var async = require('async');
|
const nconf = require('nconf');
|
||||||
var nconf = require('nconf');
|
const admin = require('./admin');
|
||||||
|
const translator = require('../translator');
|
||||||
var admin = require('./admin');
|
|
||||||
var translator = require('../translator');
|
|
||||||
const groups = require('../groups');
|
const groups = require('../groups');
|
||||||
|
|
||||||
var navigation = module.exports;
|
const navigation = module.exports;
|
||||||
|
|
||||||
navigation.get = function (uid, callback) {
|
navigation.get = async function (uid) {
|
||||||
async.waterfall([
|
let data = await admin.get();
|
||||||
admin.get,
|
|
||||||
function (data, next) {
|
data = data.filter(item => item && item.enabled).map(function (item) {
|
||||||
data = data.filter(function (item) {
|
item.originalRoute = item.route;
|
||||||
return item && item.enabled;
|
|
||||||
}).map(function (item) {
|
if (!item.route.startsWith('http')) {
|
||||||
item.originalRoute = item.route;
|
item.route = nconf.get('relative_path') + item.route;
|
||||||
|
}
|
||||||
if (!item.route.startsWith('http')) {
|
|
||||||
item.route = nconf.get('relative_path') + item.route;
|
Object.keys(item).forEach(function (key) {
|
||||||
}
|
item[key] = translator.unescape(item[key]);
|
||||||
|
});
|
||||||
Object.keys(item).forEach(function (key) {
|
|
||||||
item[key] = translator.unescape(item[key]);
|
return item;
|
||||||
});
|
});
|
||||||
|
|
||||||
return item;
|
const pass = await Promise.all(data.map(async function (navItem) {
|
||||||
});
|
if (!navItem.groups.length) {
|
||||||
|
return true;
|
||||||
async.filter(data, function (navItem, next) {
|
}
|
||||||
if (!navItem.groups.length) {
|
return await groups.isMemberOfAny(uid, navItem.groups);
|
||||||
return setImmediate(next, null, true);
|
}));
|
||||||
}
|
return data.filter((navItem, i) => pass[i]);
|
||||||
groups.isMemberOfAny(uid, navItem.groups, next);
|
|
||||||
}, next);
|
|
||||||
},
|
|
||||||
], callback);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
require('../promisify')(navigation);
|
require('../promisify')(navigation);
|
||||||
|
Loading…
Reference in New Issue