summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhmhealey <harrisonmhealey@gmail.com>2015-07-14 17:07:19 -0400
committerhmhealey <harrisonmhealey@gmail.com>2015-07-17 15:22:57 -0400
commit1dba330146a10718a2fc9eac0ae7d6e1d6bc0d79 (patch)
treedaa2bb8ccaea4bc2b1e7ba7daeaf8d7785a142fe
parent098cbcdc21effeebe7e57fbd912a785e85cbfc5d (diff)
downloadchat-1dba330146a10718a2fc9eac0ae7d6e1d6bc0d79.tar.gz
chat-1dba330146a10718a2fc9eac0ae7d6e1d6bc0d79.tar.bz2
chat-1dba330146a10718a2fc9eac0ae7d6e1d6bc0d79.zip
Use a user's full name as their display name if a nickname hasn't been specified
-rw-r--r--model/user.go14
-rw-r--r--model/user_test.go32
-rw-r--r--web/react/utils/utils.jsx20
3 files changed, 64 insertions, 2 deletions
diff --git a/model/user.go b/model/user.go
index 5b603cd92..727165b8c 100644
--- a/model/user.go
+++ b/model/user.go
@@ -237,9 +237,23 @@ func (u *User) AddNotifyProp(key string, value string) {
u.NotifyProps[key] = value
}
+func (u *User) GetFullName() string {
+ if u.FirstName != "" && u.LastName != "" {
+ return u.FirstName + " " + u.LastName
+ } else if u.FirstName != "" {
+ return u.FirstName
+ } else if u.LastName != "" {
+ return u.LastName
+ } else {
+ return ""
+ }
+}
+
func (u *User) GetDisplayName() string {
if u.Nickname != "" {
return u.Nickname
+ } else if fullName := u.GetFullName(); fullName != "" {
+ return fullName
} else {
return u.Username
}
diff --git a/model/user_test.go b/model/user_test.go
index a0c62676a..a48c3f2e7 100644
--- a/model/user_test.go
+++ b/model/user_test.go
@@ -108,13 +108,43 @@ func TestUserIsValid(t *testing.T) {
}
}
+func TestUserGetFullName(t *testing.T) {
+ user := User{}
+
+ if fullName := user.GetFullName(); fullName != "" {
+ t.Fatal("Full name should be blank")
+ }
+
+ user.FirstName = "first"
+ if fullName := user.GetFullName(); fullName != "first" {
+ t.Fatal("Full name should be first name")
+ }
+
+ user.FirstName = ""
+ user.LastName = "last"
+ if fullName := user.GetFullName(); fullName != "last" {
+ t.Fatal("Full name should be last name")
+ }
+
+ user.FirstName = "first"
+ if fullName := user.GetFullName(); fullName != "first last" {
+ t.Fatal("Full name should be first name and last name")
+ }
+}
+
func TestUserGetDisplayName(t *testing.T) {
- user := User{FirstName: "first", LastName: "last", Username: "user"}
+ user := User{Username: "user"}
if displayName := user.GetDisplayName(); displayName != "user" {
t.Fatal("Display name should be username")
}
+ user.FirstName = "first"
+ user.LastName = "last"
+ if displayName := user.GetDisplayName(); displayName != "first last" {
+ t.Fatal("Display name should be full name")
+ }
+
user.Nickname = "nickname"
if displayName := user.GetDisplayName(); displayName != "nickname" {
t.Fatal("Display name should be nickname")
diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx
index 5a1a7ee73..416ea5ae4 100644
--- a/web/react/utils/utils.jsx
+++ b/web/react/utils/utils.jsx
@@ -825,10 +825,28 @@ module.exports.changeColor =function(col, amt) {
return (usePound?"#":"") + String("000000" + (g | (b << 8) | (r << 16)).toString(16)).slice(-6);
};
+module.exports.getFullName = function(user) {
+ if (user.first_name && user.last_name) {
+ return user.first_name + " " + user.last_name;
+ } else if (user.first_name) {
+ return user.first_name;
+ } else if (user.last_name) {
+ return user.last_name;
+ } else {
+ return "";
+ }
+};
+
module.exports.getDisplayName = function(user) {
if (user.nickname && user.nickname.trim().length > 0) {
return user.nickname;
} else {
- return user.username;
+ var fullName = module.exports.getFullName(user);
+
+ if (fullName) {
+ return fullName;
+ } else {
+ return user.username;
+ }
}
};