mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-16 01:21:20 -04:00
34 lines
625 B
JavaScript
34 lines
625 B
JavaScript
const EventEmitter = require('events');
|
|
|
|
const roleEvents = new EventEmitter();
|
|
|
|
function getRole(socket) {
|
|
return socket?.data?.role || 'user';
|
|
}
|
|
|
|
function setRole(socket, role) {
|
|
socket.data = socket.data || {};
|
|
if (socket.data.role === role) {
|
|
return;
|
|
}
|
|
socket.data.role = role;
|
|
roleEvents.emit('change', { socket, role });
|
|
}
|
|
|
|
function isAdmin(socket) {
|
|
const role = getRole(socket);
|
|
return role === 'admin' || role === 'lockdown';
|
|
}
|
|
|
|
function isLockdownAdmin(socket) {
|
|
return getRole(socket) === 'lockdown';
|
|
}
|
|
|
|
module.exports = {
|
|
getRole,
|
|
setRole,
|
|
isAdmin,
|
|
isLockdownAdmin,
|
|
roleEvents,
|
|
};
|