summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Velikov <emil.l.velikov@gmail.com>2018-06-27 01:23:13 +0100
committerChristopher Speller <crspeller@gmail.com>2018-06-26 17:23:13 -0700
commitf17c15c9d83e42e46adb8e8c1fb9706b22fe6f50 (patch)
tree47fc7424a307efb78262526c5d795e0649964f14
parent85aa3d664c32af0532113f554002a5d3192faf29 (diff)
downloadchat-f17c15c9d83e42e46adb8e8c1fb9706b22fe6f50.tar.gz
chat-f17c15c9d83e42e46adb8e8c1fb9706b22fe6f50.tar.bz2
chat-f17c15c9d83e42e46adb8e8c1fb9706b22fe6f50.zip
Simplify oauth (#8972)
* Remove unused OauthProvider::GetIdentifier Signed-off-by: Emil Velikov <emil.velikov@collabora.com> * Reuse gitlab's getAuthData() instead of open-coding it Signed-off-by: Emil Velikov <emil.velikov@collabora.com> * Remove OauthProvider::GetAuthDataFromJson interface The data is already available via GetUserFromJson().AuthData Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
-rw-r--r--api4/oauth_test.go13
-rw-r--r--app/oauth.go8
-rw-r--r--einterfaces/oauthproviders.go2
-rw-r--r--model/gitlab/gitlab.go16
4 files changed, 11 insertions, 28 deletions
diff --git a/api4/oauth_test.go b/api4/oauth_test.go
index 8cf20ca5e..6bbd99ccc 100644
--- a/api4/oauth_test.go
+++ b/api4/oauth_test.go
@@ -1127,15 +1127,8 @@ func closeBody(r *http.Response) {
type MattermostTestProvider struct {
}
-func (m *MattermostTestProvider) GetIdentifier() string {
- return model.SERVICE_GITLAB
-}
-
func (m *MattermostTestProvider) GetUserFromJson(data io.Reader) *model.User {
- return model.UserFromJson(data)
-}
-
-func (m *MattermostTestProvider) GetAuthDataFromJson(data io.Reader) string {
- authData := model.UserFromJson(data)
- return authData.Email
+ user := model.UserFromJson(data)
+ user.AuthData = &user.Email
+ return user
}
diff --git a/app/oauth.go b/app/oauth.go
index 477c0aeaf..80fe4342e 100644
--- a/app/oauth.go
+++ b/app/oauth.go
@@ -457,7 +457,13 @@ func (a *App) LoginByOAuth(service string, userData io.Reader, teamId string) (*
return nil, model.NewAppError("LoginByOAuth", "api.user.login_by_oauth.not_available.app_error",
map[string]interface{}{"Service": strings.Title(service)}, "", http.StatusNotImplemented)
} else {
- authData = provider.GetAuthDataFromJson(bytes.NewReader(buf.Bytes()))
+ authUser := provider.GetUserFromJson(bytes.NewReader(buf.Bytes()))
+
+ if authUser.AuthData != nil {
+ authData = *authUser.AuthData
+ } else {
+ authData = ""
+ }
}
if len(authData) == 0 {
diff --git a/einterfaces/oauthproviders.go b/einterfaces/oauthproviders.go
index ed54a204a..178c17c11 100644
--- a/einterfaces/oauthproviders.go
+++ b/einterfaces/oauthproviders.go
@@ -10,9 +10,7 @@ import (
)
type OauthProvider interface {
- GetIdentifier() string
GetUserFromJson(data io.Reader) *model.User
- GetAuthDataFromJson(data io.Reader) string
}
var oauthProviders = make(map[string]OauthProvider)
diff --git a/model/gitlab/gitlab.go b/model/gitlab/gitlab.go
index 7e0cb10af..f0a388b6a 100644
--- a/model/gitlab/gitlab.go
+++ b/model/gitlab/gitlab.go
@@ -47,7 +47,7 @@ func userFromGitLabUser(glu *GitLabUser) *model.User {
user.FirstName = glu.Name
}
user.Email = glu.Email
- userId := strconv.FormatInt(glu.Id, 10)
+ userId := glu.getAuthData()
user.AuthData = &userId
user.AuthService = model.USER_AUTH_SERVICE_GITLAB
@@ -90,10 +90,6 @@ func (glu *GitLabUser) getAuthData() string {
return strconv.FormatInt(glu.Id, 10)
}
-func (m *GitLabProvider) GetIdentifier() string {
- return model.USER_AUTH_SERVICE_GITLAB
-}
-
func (m *GitLabProvider) GetUserFromJson(data io.Reader) *model.User {
glu := gitLabUserFromJson(data)
if glu.IsValid() {
@@ -102,13 +98,3 @@ func (m *GitLabProvider) GetUserFromJson(data io.Reader) *model.User {
return &model.User{}
}
-
-func (m *GitLabProvider) GetAuthDataFromJson(data io.Reader) string {
- glu := gitLabUserFromJson(data)
-
- if glu.IsValid() {
- return glu.getAuthData()
- }
-
- return ""
-}