Ability to override idle time and/or temporary disable from MRC
This commit is contained in:
parent
487968dac9
commit
5c978e05bf
|
@ -439,6 +439,11 @@ Client.prototype.setTermType = function(termType) {
|
||||||
};
|
};
|
||||||
|
|
||||||
Client.prototype.startIdleMonitor = function() {
|
Client.prototype.startIdleMonitor = function() {
|
||||||
|
// clear existing, if any
|
||||||
|
if(this.idleCheck) {
|
||||||
|
this.stopIdleMonitor();
|
||||||
|
}
|
||||||
|
|
||||||
this.lastKeyPressMs = Date.now();
|
this.lastKeyPressMs = Date.now();
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -474,6 +479,9 @@ Client.prototype.startIdleMonitor = function() {
|
||||||
idleLogoutSeconds = Config().users.preAuthIdleLogoutSeconds;
|
idleLogoutSeconds = Config().users.preAuthIdleLogoutSeconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// use override value if set
|
||||||
|
idleLogoutSeconds = this.idleLogoutSecondsOverride || idleLogoutSeconds;
|
||||||
|
|
||||||
if(nowMs - this.lastKeyPressMs >= (idleLogoutSeconds * 1000)) {
|
if(nowMs - this.lastKeyPressMs >= (idleLogoutSeconds * 1000)) {
|
||||||
this.emit('idle timeout');
|
this.emit('idle timeout');
|
||||||
}
|
}
|
||||||
|
@ -481,7 +489,18 @@ Client.prototype.startIdleMonitor = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
Client.prototype.stopIdleMonitor = function() {
|
Client.prototype.stopIdleMonitor = function() {
|
||||||
clearInterval(this.idleCheck);
|
if(this.idleCheck) {
|
||||||
|
clearInterval(this.idleCheck);
|
||||||
|
delete this.idleCheck;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Client.prototype.overrideIdleLogoutSeconds = function(seconds) {
|
||||||
|
this.idleLogoutSecondsOverride = seconds;
|
||||||
|
};
|
||||||
|
|
||||||
|
Client.prototype.restoreIdleLogoutSeconds = function() {
|
||||||
|
delete this.idleLogoutSecondsOverride;
|
||||||
};
|
};
|
||||||
|
|
||||||
Client.prototype.end = function () {
|
Client.prototype.end = function () {
|
||||||
|
|
16
core/mrc.js
16
core/mrc.js
|
@ -158,6 +158,16 @@ exports.getModule = class mrcModule extends MenuModule {
|
||||||
this.sendHeartbeat();
|
this.sendHeartbeat();
|
||||||
this.sendServerMessage('STATS');
|
this.sendServerMessage('STATS');
|
||||||
}, 60000);
|
}, 60000);
|
||||||
|
|
||||||
|
// override idle logout seconds if configured
|
||||||
|
const idleLogoutSeconds = parseInt(this.config.idleLogoutSeconds);
|
||||||
|
if(0 === idleLogoutSeconds) {
|
||||||
|
this.log.debug('Temporary disable idle monitor due to config');
|
||||||
|
this.client.stopIdleMonitor();
|
||||||
|
} else if (!isNaN(idleLogoutSeconds) && idleLogoutSeconds >= 60) {
|
||||||
|
this.log.debug( { idleLogoutSeconds }, 'Temporary override idle logout seconds due to config');
|
||||||
|
this.client.overrideIdleLogoutSeconds(idleLogoutSeconds);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// when we get data, process it
|
// when we get data, process it
|
||||||
|
@ -187,6 +197,12 @@ exports.getModule = class mrcModule extends MenuModule {
|
||||||
|
|
||||||
leave() {
|
leave() {
|
||||||
this.quitServer();
|
this.quitServer();
|
||||||
|
|
||||||
|
// restore idle monitor to previous state
|
||||||
|
this.log.debug('Restoring idle monitor to previous state');
|
||||||
|
this.client.restoreIdleLogoutSeconds();
|
||||||
|
this.client.startIdleMonitor();
|
||||||
|
|
||||||
return super.leave();
|
return super.leave();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue