Files
pulse-signage/src/web/lib/local-control-users.js
T
lzstealth 0a03cdd0b7
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 2m6s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 33s
Release v2.12.0
2026-09-11 17:22:31 +01:00

27 lines
1014 B
JavaScript

const crypto = require('crypto');
async function collectLocalControlUsers(pool) {
const [rows] = await pool.query(
`SELECT DISTINCT u.username, u.password_hash, u.password_salt
FROM a_users u
JOIN a_user_roles ur ON ur.user_id = u.id
JOIN a_role_permissions rp ON rp.role_id = ur.role_id
JOIN a_permissions p ON p.id = rp.permission_id
WHERE u.account_locked = 0
AND u.must_change_password = 0
AND p.permission_key = 'clients.allow'
ORDER BY u.username ASC`
);
return (rows || []).map(function (user) {
return {
username_hash: crypto.createHash('sha256').update(String(user && user.username || '').trim()).digest('hex'),
password_hash: String(user && user.password_hash || '').trim(),
password_salt: String(user && user.password_salt || '').trim()
};
}).filter(function (user) {
return Boolean(user.username_hash && user.password_hash && user.password_salt);
});
}
module.exports = { collectLocalControlUsers };