• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

NodeBB / NodeBB / 23305017021

19 Mar 2026 04:20PM UTC coverage: 85.425% (-0.1%) from 85.545%
23305017021

push

github

nodebb-misty
chore: update changelog for v4.10.0

13445 of 18442 branches covered (72.9%)

28384 of 33227 relevant lines covered (85.42%)

3333.35 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.88
/src/controllers/admin.js
1
'use strict';
2

3
const privileges = require('../privileges');
4✔
4
const plugins = require('../plugins');
4✔
5
const helpers = require('./helpers');
4✔
6
const apiController = require('./api');
4✔
7

8
const adminController = {
4✔
9
        dashboard: require('./admin/dashboard'),
10
        categories: require('./admin/categories'),
11
        privileges: require('./admin/privileges'),
12
        adminsMods: require('./admin/admins-mods'),
13
        tags: require('./admin/tags'),
14
        groups: require('./admin/groups'),
15
        digest: require('./admin/digest'),
16
        appearance: require('./admin/appearance'),
17
        federation: require('./admin/federation'),
18
        extend: {
19
                widgets: require('./admin/widgets'),
20
                rewards: require('./admin/rewards'),
21
        },
22
        events: require('./admin/events'),
23
        hooks: require('./admin/hooks'),
24
        logs: require('./admin/logs'),
25
        errors: require('./admin/errors'),
26
        database: require('./admin/database'),
27
        cache: require('./admin/cache'),
28
        jobs: require('./admin/jobs'),
29
        plugins: require('./admin/plugins'),
30
        settings: require('./admin/settings'),
31
        logger: require('./admin/logger'),
32
        themes: require('./admin/themes'),
33
        users: require('./admin/users'),
34
        uploads: require('./admin/uploads'),
35
        info: require('./admin/info'),
36
};
37

38
adminController.routeIndex = async (req, res) => {
4✔
39
        const privilegeSet = await privileges.admin.get(req.uid);
56✔
40

41
        if (privilegeSet.superadmin || privilegeSet['admin:dashboard']) {
56✔
42
                return adminController.dashboard.get(req, res);
16✔
43
        } else if (privilegeSet['admin:categories']) {
40✔
44
                return helpers.redirect(res, 'admin/manage/categories');
4✔
45
        } else if (privilegeSet['admin:privileges']) {
36✔
46
                return helpers.redirect(res, 'admin/manage/privileges');
4✔
47
        } else if (privilegeSet['admin:users']) {
32✔
48
                return helpers.redirect(res, 'admin/manage/users');
4✔
49
        } else if (privilegeSet['admin:groups']) {
28✔
50
                return helpers.redirect(res, 'admin/manage/groups');
4✔
51
        } else if (privilegeSet['admin:admins-mods']) {
24✔
52
                return helpers.redirect(res, 'admin/manage/admins-mods');
4✔
53
        } else if (privilegeSet['admin:tags']) {
20✔
54
                return helpers.redirect(res, 'admin/manage/tags');
8✔
55
        } else if (privilegeSet['admin:settings']) {
12!
56
                return helpers.redirect(res, 'admin/settings/general');
12✔
57
        }
58

59
        return helpers.notAllowed(req, res);
×
60
};
61

62
adminController.loadConfig = async function (req) {
4✔
63
        const config = await apiController.loadConfig(req);
72✔
64
        await plugins.hooks.fire('filter:config.get.admin', config);
72✔
65
        return config;
72✔
66
};
67

68
adminController.getConfig = async (req, res) => {
4✔
69
        const config = await adminController.loadConfig(req);
4✔
70
        res.json(config);
4✔
71
};
72

73
module.exports = adminController;
4✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc