Block OAuth account creation when disabled in config (#5506)

Этот коммит содержится в:
Joram Wilander
2017-02-23 03:53:33 -05:00
коммит произвёл George Goldberg
родитель 7883a515e7
Коммит 9220254f05
4 изменённых файлов: 51 добавлений и 0 удалений

Просмотреть файл

@@ -218,6 +218,10 @@ func createUser(user *model.User) (*model.User, *model.AppError) {
}
func CreateOAuthUser(service string, userData io.Reader, teamId string) (*model.User, *model.AppError) {
if !utils.Cfg.TeamSettings.EnableUserCreation {
return nil, model.NewAppError("CreateOAuthUser", "api.user.create_user.disabled.app_error", nil, "", http.StatusNotImplemented)
}
var user *model.User
provider := einterfaces.GetOauthProvider(service)
if provider == nil {

Просмотреть файл

@@ -4,7 +4,12 @@
package app
import (
"strings"
"testing"
"github.com/mattermost/platform/model"
"github.com/mattermost/platform/model/gitlab"
"github.com/mattermost/platform/utils"
)
func TestIsUsernameTaken(t *testing.T) {
@@ -51,3 +56,32 @@ func TestCheckUserDomain(t *testing.T) {
}
}
}
func TestCreateOAuthUser(t *testing.T) {
th := Setup().InitBasic()
glUser := oauthgitlab.GitLabUser{Id: 1000, Username: model.NewId(), Email: model.NewId() + "@simulator.amazonses.com", Name: "Joram Wilander"}
json := glUser.ToJson()
user, err := CreateOAuthUser(model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id)
if err != nil {
t.Fatal(err)
}
if user.Username != glUser.Username {
t.Fatal("usernames didn't match")
}
PermanentDeleteUser(user)
userCreation := utils.Cfg.TeamSettings.EnableUserCreation
defer func() {
utils.Cfg.TeamSettings.EnableUserCreation = userCreation
}()
utils.Cfg.TeamSettings.EnableUserCreation = false
_, err = CreateOAuthUser(model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id)
if err == nil {
t.Fatal("should have failed - user creation disabled")
}
}

Просмотреть файл

@@ -2371,6 +2371,10 @@
"id": "api.user.create_user.signup_email_disabled.app_error",
"translation": "User sign-up with email is disabled."
},
{
"id": "api.user.create_user.disabled.app_error",
"translation": "User creation is disabled."
},
{
"id": "api.user.create_user.signup_link_expired.app_error",
"translation": "The signup link has expired"

Просмотреть файл

@@ -65,6 +65,15 @@ func gitLabUserFromJson(data io.Reader) *GitLabUser {
}
}
func (glu *GitLabUser) ToJson() string {
b, err := json.Marshal(glu)
if err != nil {
return ""
} else {
return string(b)
}
}
func (glu *GitLabUser) IsValid() bool {
if glu.Id == 0 {
return false