mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
package model
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
USER_AUTH_SERVICE_GOOGLE = "google"
|
|
)
|
|
|
|
type GoogleUser struct {
|
|
Id string `json:"id"`
|
|
Nickname string `json:"nickname"`
|
|
DisplayName string `json:"displayName"`
|
|
Emails []map[string]string `json:"emails"`
|
|
Names map[string]string `json:"name"`
|
|
}
|
|
|
|
func UserFromGoogleUser(gu *GoogleUser) *User {
|
|
user := &User{}
|
|
if len(gu.Nickname) > 0 {
|
|
user.Username = gu.Nickname
|
|
} else {
|
|
user.Username = strings.ToLower(strings.Replace(gu.DisplayName, " ", "", -1))
|
|
}
|
|
user.FirstName = gu.Names["givenName"]
|
|
user.LastName = gu.Names["familyName"]
|
|
user.Nickname = gu.Nickname
|
|
|
|
for _, e := range gu.Emails {
|
|
if e["type"] == "account" {
|
|
user.Email = e["value"]
|
|
}
|
|
}
|
|
|
|
user.AuthData = gu.Id
|
|
user.AuthService = USER_AUTH_SERVICE_GOOGLE
|
|
|
|
return user
|
|
}
|
|
|
|
func GoogleUserFromJson(data io.Reader) *GoogleUser {
|
|
decoder := json.NewDecoder(data)
|
|
var gu GoogleUser
|
|
err := decoder.Decode(&gu)
|
|
if err == nil {
|
|
return &gu
|
|
} else {
|
|
return nil
|
|
}
|
|
}
|
|
|
|
func (gu *GoogleUser) GetAuthData() string {
|
|
return gu.Id
|
|
}
|