Block OAuth account creation when disabled in config (#5506)
Этот коммит содержится в:
коммит произвёл
George Goldberg
родитель
7883a515e7
Коммит
9220254f05
@@ -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) {
|
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
|
var user *model.User
|
||||||
provider := einterfaces.GetOauthProvider(service)
|
provider := einterfaces.GetOauthProvider(service)
|
||||||
if provider == nil {
|
if provider == nil {
|
||||||
|
|||||||
@@ -4,7 +4,12 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/mattermost/platform/model"
|
||||||
|
"github.com/mattermost/platform/model/gitlab"
|
||||||
|
"github.com/mattermost/platform/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestIsUsernameTaken(t *testing.T) {
|
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",
|
"id": "api.user.create_user.signup_email_disabled.app_error",
|
||||||
"translation": "User sign-up with email is disabled."
|
"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",
|
"id": "api.user.create_user.signup_link_expired.app_error",
|
||||||
"translation": "The signup link has expired"
|
"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 {
|
func (glu *GitLabUser) IsValid() bool {
|
||||||
if glu.Id == 0 {
|
if glu.Id == 0 {
|
||||||
return false
|
return false
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user