generate subscriber_smtp_password on login-stage-two (for future use)
This commit is contained in:
@@ -48,18 +48,24 @@ else {
|
|||||||
var limitedLogin = ssid_sessions[socket.ssid].lockdown;
|
var limitedLogin = ssid_sessions[socket.ssid].lockdown;
|
||||||
var limitedLoginRegistered = (limitedLogin || (ssid_sessions[socket.ssid].isRegistered() && !ssid_sessions[socket.ssid].isUserLoggedIn()));
|
var limitedLoginRegistered = (limitedLogin || (ssid_sessions[socket.ssid].isRegistered() && !ssid_sessions[socket.ssid].isUserLoggedIn()));
|
||||||
var offline_user_list = null;
|
var offline_user_list = null;
|
||||||
if (ssid_sessions[socket.ssid].isRegistered() && ssid_sessions[socket.ssid].user_id == 0) {
|
if (ssid_sessions[socket.ssid].isRegistered()) {
|
||||||
var accounts = ssid_sessions[socket.ssid].listPrimaryAccountUsers();
|
// check for SMTP Password
|
||||||
var num_accounts = ssid_sessions[socket.ssid].getNumberOfUserAccounts();
|
if (ssid_sessions[socket.ssid].getSessionData("subscriber_smtp_password") === null) {
|
||||||
var offline_user_list_str = "<user-list>\n";
|
ssid_sessions[socket.ssid].setUserSMTPPassword(ssid_sessions[socket.ssid].generatePassword(16));
|
||||||
var i = 0;
|
}
|
||||||
Object.keys(accounts).forEach((k) => {
|
if (ssid_sessions[socket.ssid].user_id == 0) {
|
||||||
var account_display_name = (accounts[k].subscriber_name) ? accounts[k].subscriber_name : accounts[k].subscriber_username
|
var accounts = ssid_sessions[socket.ssid].listPrimaryAccountUsers();
|
||||||
offline_user_list_str += "\t" + '<user userid="' + i + '" user-name="' + accounts[k].subscriber_username + '" first-name="' + account_display_name + '" last-name="" passsword="" mail-enabled=true />' + "\n";
|
var num_accounts = ssid_sessions[socket.ssid].getNumberOfUserAccounts();
|
||||||
i++;
|
var offline_user_list_str = "<user-list>\n";
|
||||||
});
|
var i = 0;
|
||||||
offline_user_list_str += "</user-list>\n";
|
Object.keys(accounts).forEach((k) => {
|
||||||
offline_user_list = CryptoJS.enc.Latin1.parse(offline_user_list_str).toString(CryptoJS.enc.Base64);
|
var account_display_name = (accounts[k].subscriber_name) ? accounts[k].subscriber_name : accounts[k].subscriber_username
|
||||||
|
offline_user_list_str += "\t" + '<user userid="' + i + '" user-name="' + accounts[k].subscriber_username + '" first-name="' + account_display_name + '" last-name="" passsword="" mail-enabled=true />' + "\n";
|
||||||
|
i++;
|
||||||
|
});
|
||||||
|
offline_user_list_str += "</user-list>\n";
|
||||||
|
offline_user_list = CryptoJS.enc.Latin1.parse(offline_user_list_str).toString(CryptoJS.enc.Base64);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (limitedLoginRegistered) {
|
if (limitedLoginRegistered) {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ class WTVClientSessionData {
|
|||||||
baddisk = false;
|
baddisk = false;
|
||||||
clientAddress = null;
|
clientAddress = null;
|
||||||
user_id = 0;
|
user_id = 0;
|
||||||
|
cryptoKey = "PNa$WN7gz}!T=t6X7^=|Ii##CEB~p\EP";
|
||||||
|
|
||||||
constructor(minisrv_config, ssid) {
|
constructor(minisrv_config, ssid) {
|
||||||
if (!minisrv_config) throw ("minisrv_config required");
|
if (!minisrv_config) throw ("minisrv_config required");
|
||||||
@@ -405,17 +406,39 @@ class WTVClientSessionData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
encryptPassword(passwd) {
|
||||||
|
return CryptoJS.AES.encrypt(passwd, this.cryptoKey).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
decryptPassword(crypt) {
|
||||||
|
return CryptoJS.AES.decrypt(crypt, this.cryptoKey).toString(CryptoJS.enc.Utf8);
|
||||||
|
}
|
||||||
|
|
||||||
encodePassword(passwd) {
|
encodePassword(passwd) {
|
||||||
var encoded_passwd = CryptoJS.SHA512(passwd);
|
var encoded_passwd = CryptoJS.SHA512(passwd);
|
||||||
return encoded_passwd.toString(CryptoJS.enc.Base64);
|
return encoded_passwd.toString(CryptoJS.enc.Base64);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
generatePassword(len) {
|
||||||
|
return CryptoJS.lib.WordArray.random(len).toString(CryptoJS.enc.Hex);
|
||||||
|
}
|
||||||
|
|
||||||
setUserPassword(passwd) {
|
setUserPassword(passwd) {
|
||||||
var encoded_passwd = this.encodePassword(passwd);
|
var encoded_passwd = this.encodePassword(passwd);
|
||||||
this.setSessionData("subscriber_password", encoded_passwd);
|
this.setSessionData("subscriber_password", encoded_passwd);
|
||||||
this.saveSessionData();
|
this.saveSessionData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setUserSMTPPassword(passwd) {
|
||||||
|
var encoded_passwd = this.encryptPassword(passwd);
|
||||||
|
this.setSessionData("subscriber_smtp_password", encoded_passwd);
|
||||||
|
this.saveSessionData();
|
||||||
|
}
|
||||||
|
|
||||||
|
getUserSMTPPassword() {
|
||||||
|
return this.decryptPassword(this.setSessionData("subscriber_smtp_password"))
|
||||||
|
}
|
||||||
|
|
||||||
disableUserPassword() {
|
disableUserPassword() {
|
||||||
this.setSessionData("subscriber_password", null);
|
this.setSessionData("subscriber_password", null);
|
||||||
this.saveSessionData();
|
this.saveSessionData();
|
||||||
|
|||||||
Reference in New Issue
Block a user