diff --git a/src/helper.js b/src/helper.js index 8625411d..d4f00fd3 100644 --- a/src/helper.js +++ b/src/helper.js @@ -31,6 +31,7 @@ const Helper = { getGitCommit, ip2hex, mergeConfig, + getDefaultNick, password: { hash: passwordHash, @@ -191,6 +192,14 @@ function passwordCompare(password, expected) { return bcrypt.compare(password, expected); } +function getDefaultNick() { + if (!this.config.defaults.nick) { + return "thelounge"; + } + + return this.config.defaults.nick.replace(/%/g, () => Math.floor(Math.random() * 10)); +} + function mergeConfig(oldConfig, newConfig) { return _.mergeWith(oldConfig, newConfig, (objValue, srcValue, key) => { // Do not override config variables if the type is incorrect (e.g. object changed into a string) diff --git a/src/models/network.js b/src/models/network.js index 70fffd21..ff7eee67 100644 --- a/src/models/network.js +++ b/src/models/network.js @@ -63,7 +63,7 @@ function Network(attr) { } Network.prototype.validate = function(client) { - this.setNick(String(this.nick || "thelounge").replace(" ", "_")); + this.setNick(String(this.nick || Helper.getDefaultNick()).replace(" ", "_")); if (!this.username) { this.username = this.nick.replace(/[^a-zA-Z0-9]/g, ""); diff --git a/src/plugins/irc-events/error.js b/src/plugins/irc-events/error.js index 9908a1fa..df1d99f5 100644 --- a/src/plugins/irc-events/error.js +++ b/src/plugins/irc-events/error.js @@ -1,6 +1,7 @@ "use strict"; const Msg = require("../../models/msg"); +const Helper = require("../../helper"); module.exports = function(irc, network) { const client = this; @@ -59,7 +60,7 @@ module.exports = function(irc, network) { lobby.pushMessage(client, msg, true); if (irc.connection.registered === false) { - irc.changeNick("thelounge" + Math.floor(Math.random() * 100)); + irc.changeNick(Helper.getDefaultNick()); } client.emit("nick", { diff --git a/src/server.js b/src/server.js index f75e56a0..201c597a 100644 --- a/src/server.js +++ b/src/server.js @@ -599,7 +599,7 @@ function getClientConfiguration(network) { config.gitCommit = Helper.getGitCommit(); config.themes = themes.getAll(); config.defaultTheme = Helper.config.theme; - config.defaults.nick = config.defaults.nick.replace(/%/g, () => Math.floor(Math.random() * 10)); + config.defaults.nick = Helper.getDefaultNick(); } return config; diff --git a/test/models/network.js b/test/models/network.js index 0b918458..9ac04e2a 100644 --- a/test/models/network.js +++ b/test/models/network.js @@ -51,6 +51,8 @@ describe("Network", function() { }); it("validate should set correct defaults", function() { + Helper.config.defaults.nick = ""; + const network = new Network({ host: "localhost", });