Skip to content

Commit 46e48e2

Browse files
committed
Get user role from role, aliases, and access level
1 parent c60f214 commit 46e48e2

1 file changed

Lines changed: 25 additions & 12 deletions

File tree

index.js

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,8 @@ function init({
4646
userId: 'username',
4747
userName: 'name',
4848
role: 'role',
49-
roleAliases: {
50-
user: ['user', 'standard', 'basic'],
51-
dev: ['dev', 'developer'],
52-
admin: ['admin', 'administrator', 'superuser']
53-
},
54-
access: {
55-
var: 'access',
56-
user: [0],
57-
dev: [2],
58-
admin: [4, 5]
59-
},
49+
roleAliases: {},
50+
access: {},
6051
commissions: 'commissions'
6152
},
6253
handler: newHandler = null
@@ -86,14 +77,34 @@ function init({
8677
commissions: 'commissions',
8778
...newVars
8879
},
89-
returnHandler = newHandler;
80+
returnHandler = newHandler;
9081
};
9182

9283
function activate(isOn = true) {
9384
on = isOn;
9485
if (!on) user = {};
9586
};
9687

88+
function getUserRole(session) {
89+
if (!session) return null;
90+
if (vars.access && Object.keys(vars.access).length && vars.access.var) {
91+
const access = session[vars.access.var];
92+
if (access === undefined || access === null) return null;
93+
for (const [key, values] of Object.entries(vars.access)) {
94+
if (key === 'var') continue;
95+
if (values.includes(access)) return key;
96+
};
97+
} else {
98+
const role = session[vars.role];
99+
if (!role) return null;
100+
const aliases = vars.roleAliases || {};
101+
for (const [key, values] of Object.entries(aliases)) {
102+
if (values.includes(role.toLowerCase())) return key;
103+
};
104+
};
105+
return 'user';
106+
};
107+
97108
// function setUser(newUser = {}) {
98109
// if (!newUser.id) return user = {};
99110
// user = newUser;
@@ -105,6 +116,8 @@ app.get('/', async (req, res) => {
105116
if (!req.session) return res.render('session', { tenant, title: 'Session - ' });
106117
if (!tenant.slug || !tenant.name || !tenant.domain) return res.render('tenant', { tenant, title: 'Configuration - ' });
107118
if (tenant.auth && tenant.auth.enabled && vars.userId && !req.session[vars.userId]) return res.render('auth', { tenant, title: 'Authenticate - ' });
119+
console.log('User ID:', req.session[vars.userId]);
120+
console.log('Role:', getUserRole(req.session));
108121
res.send(`Hello ${req.session[vars.name] || req.session[vars.userId]}`);
109122
});
110123

0 commit comments

Comments
 (0)