From f17c15c9d83e42e46adb8e8c1fb9706b22fe6f50 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Wed, 27 Jun 2018 01:23:13 +0100 Subject: Simplify oauth (#8972) * Remove unused OauthProvider::GetIdentifier Signed-off-by: Emil Velikov * Reuse gitlab's getAuthData() instead of open-coding it Signed-off-by: Emil Velikov * Remove OauthProvider::GetAuthDataFromJson interface The data is already available via GetUserFromJson().AuthData Signed-off-by: Emil Velikov --- api4/oauth_test.go | 13 +++---------- app/oauth.go | 8 +++++++- einterfaces/oauthproviders.go | 2 -- model/gitlab/gitlab.go | 16 +--------------- 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 "" -} -- cgit v1.2.3-1-g7c22