summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
author=Corey Hulen <corey@hulen.com>2015-07-21 12:26:27 -0800
committer=Corey Hulen <corey@hulen.com>2015-07-21 12:26:27 -0800
commit848eeeeef4ed277ceb00d3fc6c8a0303c0e72d09 (patch)
tree98390442e8052b8e02469e5ccf7596e22b7ea07f /model
parente87adce4a059b97a65198b326be6304abdf4e657 (diff)
parentbee26e3f2654ce7acce647818847480569236343 (diff)
downloadchat-848eeeeef4ed277ceb00d3fc6c8a0303c0e72d09.tar.gz
chat-848eeeeef4ed277ceb00d3fc6c8a0303c0e72d09.tar.bz2
chat-848eeeeef4ed277ceb00d3fc6c8a0303c0e72d09.zip
fixing merge conflicts
Diffstat (limited to 'model')
-rw-r--r--model/channel_extra.go5
-rw-r--r--model/client.go20
-rw-r--r--model/team.go14
-rw-r--r--model/team_signup_test.go2
-rw-r--r--model/team_test.go14
-rw-r--r--model/user.go44
-rw-r--r--model/user_test.go64
-rw-r--r--model/utils.go8
-rw-r--r--model/utils_test.go8
9 files changed, 135 insertions, 44 deletions
diff --git a/model/channel_extra.go b/model/channel_extra.go
index a5c9acf71..3a918b524 100644
--- a/model/channel_extra.go
+++ b/model/channel_extra.go
@@ -10,7 +10,7 @@ import (
type ExtraMember struct {
Id string `json:"id"`
- FullName string `json:"full_name"`
+ Nickname string `json:"nickname"`
Email string `json:"email"`
Roles string `json:"roles"`
Username string `json:"username"`
@@ -20,9 +20,6 @@ func (o *ExtraMember) Sanitize(options map[string]bool) {
if len(options) == 0 || !options["email"] {
o.Email = ""
}
- if len(options) == 0 || !options["fullname"] {
- o.FullName = ""
- }
}
type ChannelExtra struct {
diff --git a/model/client.go b/model/client.go
index e22f2308e..ad1e4b5f1 100644
--- a/model/client.go
+++ b/model/client.go
@@ -100,10 +100,10 @@ func (c *Client) Must(result *Result, err *AppError) *Result {
return result
}
-func (c *Client) SignupTeam(email string, name string) (*Result, *AppError) {
+func (c *Client) SignupTeam(email string, displayName string) (*Result, *AppError) {
m := make(map[string]string)
m["email"] = email
- m["name"] = name
+ m["display_name"] = displayName
if r, err := c.DoPost("/teams/signup", MapToJson(m)); err != nil {
return nil, err
} else {
@@ -130,11 +130,11 @@ func (c *Client) CreateTeam(team *Team) (*Result, *AppError) {
}
}
-func (c *Client) FindTeamByDomain(domain string, allServers bool) (*Result, *AppError) {
+func (c *Client) FindTeamByName(name string, allServers bool) (*Result, *AppError) {
m := make(map[string]string)
- m["domain"] = domain
+ m["name"] = name
m["all"] = fmt.Sprintf("%v", allServers)
- if r, err := c.DoPost("/teams/find_team_by_domain", MapToJson(m)); err != nil {
+ if r, err := c.DoPost("/teams/find_team_by_name", MapToJson(m)); err != nil {
return nil, err
} else {
val := false
@@ -179,7 +179,7 @@ func (c *Client) InviteMembers(invites *Invites) (*Result, *AppError) {
}
}
-func (c *Client) UpdateTeamName(data map[string]string) (*Result, *AppError) {
+func (c *Client) UpdateTeamDisplayName(data map[string]string) (*Result, *AppError) {
if r, err := c.DoPost("/teams/update_name", MapToJson(data)); err != nil {
return nil, err
} else {
@@ -249,17 +249,17 @@ func (c *Client) LoginById(id string, password string) (*Result, *AppError) {
return c.login(m)
}
-func (c *Client) LoginByEmail(domain string, email string, password string) (*Result, *AppError) {
+func (c *Client) LoginByEmail(name string, email string, password string) (*Result, *AppError) {
m := make(map[string]string)
- m["domain"] = domain
+ m["name"] = name
m["email"] = email
m["password"] = password
return c.login(m)
}
-func (c *Client) LoginByEmailWithDevice(domain string, email string, password string, deviceId string) (*Result, *AppError) {
+func (c *Client) LoginByEmailWithDevice(name string, email string, password string, deviceId string) (*Result, *AppError) {
m := make(map[string]string)
- m["domain"] = domain
+ m["name"] = name
m["email"] = email
m["password"] = password
m["device_id"] = deviceId
diff --git a/model/team.go b/model/team.go
index 5c66f3b1f..e7005625b 100644
--- a/model/team.go
+++ b/model/team.go
@@ -18,8 +18,8 @@ type Team struct {
CreateAt int64 `json:"create_at"`
UpdateAt int64 `json:"update_at"`
DeleteAt int64 `json:"delete_at"`
+ DisplayName string `json:"display_name"`
Name string `json:"name"`
- Domain string `json:"domain"`
Email string `json:"email"`
Type string `json:"type"`
CompanyName string `json:"company_name"`
@@ -97,20 +97,20 @@ func (o *Team) IsValid() *AppError {
return NewAppError("Team.IsValid", "Invalid email", "id="+o.Id)
}
- if len(o.Name) > 64 {
+ if len(o.DisplayName) > 64 {
return NewAppError("Team.IsValid", "Invalid name", "id="+o.Id)
}
- if len(o.Domain) > 64 {
- return NewAppError("Team.IsValid", "Invalid domain", "id="+o.Id)
+ if len(o.Name) > 64 {
+ return NewAppError("Team.IsValid", "Invalid URL Identifier", "id="+o.Id)
}
- if IsReservedDomain(o.Domain) {
+ if IsReservedTeamName(o.Name) {
return NewAppError("Team.IsValid", "This URL is unavailable. Please try another.", "id="+o.Id)
}
- if !IsValidDomain(o.Domain) {
- return NewAppError("Team.IsValid", "Domain must be 4 or more lowercase alphanumeric characters", "id="+o.Id)
+ if !IsValidTeamName(o.Name) {
+ return NewAppError("Team.IsValid", "Name must be 4 or more lowercase alphanumeric characters", "id="+o.Id)
}
if !(o.Type == TEAM_OPEN || o.Type == TEAM_INVITE) {
diff --git a/model/team_signup_test.go b/model/team_signup_test.go
index f3f74470b..eb2fbc69f 100644
--- a/model/team_signup_test.go
+++ b/model/team_signup_test.go
@@ -9,7 +9,7 @@ import (
)
func TestTeamSignupJson(t *testing.T) {
- team := Team{Id: NewId(), Name: NewId()}
+ team := Team{Id: NewId(), DisplayName: NewId()}
o := TeamSignup{Team: team, Data: "data"}
json := o.ToJson()
ro := TeamSignupFromJson(strings.NewReader(json))
diff --git a/model/team_test.go b/model/team_test.go
index 6261ed6bf..071b1a2e9 100644
--- a/model/team_test.go
+++ b/model/team_test.go
@@ -9,7 +9,7 @@ import (
)
func TestTeamJson(t *testing.T) {
- o := Team{Id: NewId(), Name: NewId()}
+ o := Team{Id: NewId(), DisplayName: NewId()}
json := o.ToJson()
ro := TeamFromJson(strings.NewReader(json))
@@ -46,18 +46,18 @@ func TestTeamIsValid(t *testing.T) {
}
o.Email = "corey@hulen.com"
- o.Name = strings.Repeat("01234567890", 20)
+ o.DisplayName = strings.Repeat("01234567890", 20)
if err := o.IsValid(); err == nil {
t.Fatal("should be invalid")
}
- o.Name = "1234"
- o.Domain = "ZZZZZZZ"
+ o.DisplayName = "1234"
+ o.Name = "ZZZZZZZ"
if err := o.IsValid(); err == nil {
t.Fatal("should be invalid")
}
- o.Domain = "zzzzz"
+ o.Name = "zzzzz"
o.Type = TEAM_OPEN
if err := o.IsValid(); err != nil {
t.Fatal(err)
@@ -65,12 +65,12 @@ func TestTeamIsValid(t *testing.T) {
}
func TestTeamPreSave(t *testing.T) {
- o := Team{Name: "test"}
+ o := Team{DisplayName: "test"}
o.PreSave()
o.Etag()
}
func TestTeamPreUpdate(t *testing.T) {
- o := Team{Name: "test"}
+ o := Team{DisplayName: "test"}
o.PreUpdate()
}
diff --git a/model/user.go b/model/user.go
index b94ceb899..727165b8c 100644
--- a/model/user.go
+++ b/model/user.go
@@ -37,7 +37,9 @@ type User struct {
AuthData string `json:"auth_data"`
Email string `json:"email"`
EmailVerified bool `json:"email_verified"`
- FullName string `json:"full_name"`
+ Nickname string `json:"nickname"`
+ FirstName string `json:"first_name"`
+ LastName string `json:"last_name"`
Roles string `json:"roles"`
LastActivityAt int64 `json:"last_activity_at"`
LastPingAt int64 `json:"last_ping_at"`
@@ -45,6 +47,7 @@ type User struct {
Props StringMap `json:"props"`
NotifyProps StringMap `json:"notify_props"`
LastPasswordUpdate int64 `json:"last_password_update"`
+ LastPictureUpdate int64 `json:"last_picture_update"`
}
// IsValid validates the user and returns an error if it isn't configured
@@ -81,8 +84,16 @@ func (u *User) IsValid() *AppError {
return NewAppError("User.IsValid", "Invalid email", "user_id="+u.Id)
}
- if len(u.FullName) > 64 {
- return NewAppError("User.IsValid", "Invalid full name", "user_id="+u.Id)
+ if len(u.Nickname) > 64 {
+ return NewAppError("User.IsValid", "Invalid nickname", "user_id="+u.Id)
+ }
+
+ if len(u.FirstName) > 64 {
+ return NewAppError("User.IsValid", "Invalid first name", "user_id="+u.Id)
+ }
+
+ if len(u.LastName) > 64 {
+ return NewAppError("User.IsValid", "Invalid last name", "user_id="+u.Id)
}
return nil
@@ -151,7 +162,7 @@ func (u *User) SetDefaultNotifications() {
u.NotifyProps["first_name"] = "false"
u.NotifyProps["all"] = "true"
u.NotifyProps["channel"] = "true"
- splitName := strings.Split(u.FullName, " ")
+ splitName := strings.Split(u.Nickname, " ")
if len(splitName) > 0 && splitName[0] != "" {
u.NotifyProps["first_name"] = "true"
u.NotifyProps["mention_keys"] += "," + splitName[0]
@@ -190,7 +201,8 @@ func (u *User) Sanitize(options map[string]bool) {
u.Email = ""
}
if len(options) != 0 && !options["fullname"] {
- u.FullName = ""
+ u.FirstName = ""
+ u.LastName = ""
}
if len(options) != 0 && !options["skypeid"] {
// TODO - fill in when SkypeId is added to user model
@@ -225,6 +237,28 @@ 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
+ }
+}
+
// UserFromJson will decode the input and return a User
func UserFromJson(data io.Reader) *User {
decoder := json.NewDecoder(data)
diff --git a/model/user_test.go b/model/user_test.go
index df9ac19c2..a48c3f2e7 100644
--- a/model/user_test.go
+++ b/model/user_test.go
@@ -80,13 +80,73 @@ func TestUserIsValid(t *testing.T) {
}
user.Email = "test@nowhere.com"
- user.FullName = strings.Repeat("01234567890", 20)
+ user.Nickname = strings.Repeat("01234567890", 20)
if err := user.IsValid(); err == nil {
t.Fatal()
}
- user.FullName = ""
+ user.Nickname = ""
if err := user.IsValid(); err != nil {
t.Fatal(err)
}
+
+ user.FirstName = ""
+ user.LastName = ""
+ if err := user.IsValid(); err != nil {
+ t.Fatal(err)
+ }
+
+ user.FirstName = strings.Repeat("01234567890", 20)
+ if err := user.IsValid(); err == nil {
+ t.Fatal(err)
+ }
+
+ user.FirstName = ""
+ user.LastName = strings.Repeat("01234567890", 20)
+ if err := user.IsValid(); err == nil {
+ t.Fatal(err)
+ }
+}
+
+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{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/model/utils.go b/model/utils.go
index 465901a09..38592b984 100644
--- a/model/utils.go
+++ b/model/utils.go
@@ -148,7 +148,7 @@ func IsValidEmail(email string) bool {
return false
}
-var reservedDomains = []string{
+var reservedName = []string{
"www",
"web",
"admin",
@@ -168,10 +168,10 @@ var reservedDomains = []string{
"api",
}
-func IsReservedDomain(s string) bool {
+func IsReservedTeamName(s string) bool {
s = strings.ToLower(s)
- for _, value := range reservedDomains {
+ for _, value := range reservedName {
if strings.Index(s, value) == 0 {
return true
}
@@ -180,7 +180,7 @@ func IsReservedDomain(s string) bool {
return false
}
-func IsValidDomain(s string) bool {
+func IsValidTeamName(s string) bool {
if !IsValidAlphaNum(s) {
return false
diff --git a/model/utils_test.go b/model/utils_test.go
index a9721042d..dbb448882 100644
--- a/model/utils_test.go
+++ b/model/utils_test.go
@@ -83,9 +83,9 @@ var domains = []struct {
{"test", true},
}
-func TestValidDomain(t *testing.T) {
+func TestValidTeamName(t *testing.T) {
for _, v := range domains {
- if IsValidDomain(v.value) != v.expected {
+ if IsValidTeamName(v.value) != v.expected {
t.Errorf("expect %v as %v", v.value, v.expected)
}
}
@@ -102,9 +102,9 @@ var tReservedDomains = []struct {
{"spin-punch-admin", false},
}
-func TestReservedDomain(t *testing.T) {
+func TestReservedTeamName(t *testing.T) {
for _, v := range tReservedDomains {
- if IsReservedDomain(v.value) != v.expected {
+ if IsReservedTeamName(v.value) != v.expected {
t.Errorf("expect %v as %v", v.value, v.expected)
}
}