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() {
|
||||
// clear existing, if any
|
||||
if(this.idleCheck) {
|
||||
this.stopIdleMonitor();
|
||||
}
|
||||
|
||||
this.lastKeyPressMs = Date.now();
|
||||
|
||||
//
|
||||
|
@ -474,6 +479,9 @@ Client.prototype.startIdleMonitor = function() {
|
|||
idleLogoutSeconds = Config().users.preAuthIdleLogoutSeconds;
|
||||
}
|
||||
|
||||
// use override value if set
|
||||
idleLogoutSeconds = this.idleLogoutSecondsOverride || idleLogoutSeconds;
|
||||
|
||||
if(nowMs - this.lastKeyPressMs >= (idleLogoutSeconds * 1000)) {
|
||||
this.emit('idle timeout');
|
||||
}
|
||||
|
@ -481,7 +489,18 @@ Client.prototype.startIdleMonitor = 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 () {
|
||||
|
|
16
core/mrc.js
16
core/mrc.js
|
@ -158,6 +158,16 @@ exports.getModule = class mrcModule extends MenuModule {
|
|||
this.sendHeartbeat();
|
||||
this.sendServerMessage('STATS');
|
||||
}, 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
|
||||
|
@ -187,6 +197,12 @@ exports.getModule = class mrcModule extends MenuModule {
|
|||
|
||||
leave() {
|
||||
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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue