diff --git a/core/achievement.js b/core/achievement.js index d73372ca..b28bb1b8 100644 --- a/core/achievement.js +++ b/core/achievement.js @@ -505,7 +505,7 @@ class Achievements { getFormatObject(info) { return { userName: info.user.username, - userRealName: info.user.properties[UserProps.RealName], + userRealName: info.user.realName(), userLocation: info.user.properties[UserProps.Location], userAffils: info.user.properties[UserProps.Affiliations], nodeId: info.client.node, diff --git a/core/client_connections.js b/core/client_connections.js index 3dbf0e45..a94f65b5 100644 --- a/core/client_connections.js +++ b/core/client_connections.js @@ -87,7 +87,7 @@ function getActiveConnectionList( // entry.text = ac.user?.username || 'N/A'; entry.userName = ac.user?.username || 'N/A'; - entry.realName = ac.user?.getProperty(UserProps.RealName) || 'N/A'; + entry.realName = ac.user?.realName() || 'N/A'; entry.location = ac.user?.getProperty(UserProps.Location) || 'N/A'; entry.affils = entry.affiliation = ac.user?.getProperty(UserProps.Affiliations) || 'N/A'; diff --git a/core/fse.js b/core/fse.js index c5413989..6d883ba8 100644 --- a/core/fse.js +++ b/core/fse.js @@ -982,11 +982,7 @@ exports.FullScreenEditorModule = const area = getMessageAreaByTag(self.messageAreaTag); if (fromView !== undefined) { if (area && area.realNames) { - fromView.setText( - self.client.user.properties[ - UserProps.RealName - ] || self.client.user.username - ); + fromView.setText(self.client.user.realName()); } else { fromView.setText(self.client.user.username); } diff --git a/core/my_messages.js b/core/my_messages.js index 50bba7ae..a50a6884 100644 --- a/core/my_messages.js +++ b/core/my_messages.js @@ -20,10 +20,7 @@ exports.getModule = class MyMessagesModule extends MenuModule { initSequence() { const filter = { - toUserName: [ - this.client.user.username, - this.client.user.getProperty(UserProps.RealName), - ], + toUserName: [this.client.user.username, this.client.user.realName()], sort: 'modTimestamp', resultType: 'messageList', limit: 1024 * 16, // we want some sort of limit... diff --git a/core/nua.js b/core/nua.js index 4f6f355d..9eabc232 100644 --- a/core/nua.js +++ b/core/nua.js @@ -13,6 +13,7 @@ const UserProps = require('./user_property.js'); // deps const _ = require('lodash'); +const moment = require('moment'); exports.moduleInfo = { name: 'NUA', @@ -95,15 +96,15 @@ exports.getModule = class NewUserAppModule extends MenuModule { areaTag = areaTag || ''; newUser.properties = { - [UserProps.RealName]: formData.value.realName, + [UserProps.RealName]: formData.value.realName || '', [UserProps.Birthdate]: getISOTimestampString( - formData.value.birthdate + formData.value.birthdate || moment() ), - [UserProps.Sex]: formData.value.sex, - [UserProps.Location]: formData.value.location, - [UserProps.Affiliations]: formData.value.affils, - [UserProps.EmailAddress]: formData.value.email, - [UserProps.WebAddress]: formData.value.web, + [UserProps.Sex]: formData.value.sex || '', + [UserProps.Location]: formData.value.location || '', + [UserProps.Affiliations]: formData.value.affils || '', + [UserProps.EmailAddress]: formData.value.email || '', + [UserProps.WebAddress]: formData.value.web || '', [UserProps.AccountCreated]: getISOTimestampString(), [UserProps.MessageConfTag]: confTag, diff --git a/core/user.js b/core/user.js index 58cf69d9..aac33ef2 100644 --- a/core/user.js +++ b/core/user.js @@ -124,9 +124,12 @@ module.exports = class User { return isMember; } + realName() { + return this.getProperty(UserProps.RealName) || this.username; + } + getSanitizedName(type = 'username') { - const name = - 'real' === type ? this.getProperty(UserProps.RealName) : this.username; + const name = 'real' === type ? this.realName() : this.username; return sanatizeFilename(name) || `user${this.userId.toString()}`; } diff --git a/core/user_2fa_otp_web_register.js b/core/user_2fa_otp_web_register.js index edae1d5b..735b6f36 100644 --- a/core/user_2fa_otp_web_register.js +++ b/core/user_2fa_otp_web_register.js @@ -93,9 +93,9 @@ module.exports = class User2FA_OTPWebRegister { } const message = { - to: `${ - user.getProperty(UserProps.RealName) || user.username - } <${user.getProperty(UserProps.EmailAddress)}>`, + to: `${user.realName()} <${user.getProperty( + UserProps.EmailAddress + )}>`, // from will be filled in subject: '2-Factor Authentication Registration', text: textTemplate, diff --git a/core/user_config.js b/core/user_config.js index a612e95c..63bfdc16 100644 --- a/core/user_config.js +++ b/core/user_config.js @@ -115,15 +115,15 @@ exports.getModule = class UserConfigModule extends MenuModule { formData = _.clone(formData); const newProperties = { - [UserProps.RealName]: formData.value.realName, + [UserProps.RealName]: formData.value.realName || '', [UserProps.Birthdate]: getISOTimestampString( - formData.value.birthdate + formData.value.birthdate || moment() ), - [UserProps.Sex]: formData.value.sex, - [UserProps.Location]: formData.value.location, - [UserProps.Affiliations]: formData.value.affils, - [UserProps.EmailAddress]: formData.value.email, - [UserProps.WebAddress]: formData.value.web, + [UserProps.Sex]: formData.value.sex || '', + [UserProps.Location]: formData.value.location || '', + [UserProps.Affiliations]: formData.value.affils || '', + [UserProps.EmailAddress]: formData.value.email || '', + [UserProps.WebAddress]: formData.value.web || '', [UserProps.TermHeight]: formData.value.termHeight.toString(), [UserProps.ThemeId]: self.availThemeInfo[formData.value.theme].themeId, @@ -233,11 +233,7 @@ exports.getModule = class UserConfigModule extends MenuModule { function populateViews(callback) { const user = self.client.user; - self.setViewText( - 'menu', - MciCodeIds.RealName, - user.properties[UserProps.RealName] - ); + self.setViewText('menu', MciCodeIds.RealName, user.realName()); self.setViewText( 'menu', MciCodeIds.BirthDate, diff --git a/core/web_password_reset.js b/core/web_password_reset.js index dbc4f88d..757a1983 100644 --- a/core/web_password_reset.js +++ b/core/web_password_reset.js @@ -143,7 +143,7 @@ class WebPasswordReset { } const message = { - to: `${user.properties[UserProps.RealName] || user.username} <${ + to: `${user.realName()} <${ user.properties[UserProps.EmailAddress] }>`, // from will be filled in diff --git a/core/wfc.js b/core/wfc.js index 749593ab..eca853f0 100644 --- a/core/wfc.js +++ b/core/wfc.js @@ -506,9 +506,7 @@ exports.getModule = class WaitingForCallerModule extends MenuModule { // Current currentUserName: this.client.user.username, - currentUserRealName: - this.client.user.getProperty(UserProps.RealName) || - this.client.user.username, + currentUserRealName: this.client.user.realName(), availIndicator: availIndicator, visIndicator: visIndicator, lastLoginUserName: lastLoginStats.userName,