diff options
Diffstat (limited to 'api/auto_users.go')
-rw-r--r-- | api/auto_users.go | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/api/auto_users.go b/api/auto_users.go index d1e3d494e..a23b76246 100644 --- a/api/auto_users.go +++ b/api/auto_users.go @@ -7,11 +7,13 @@ import ( "github.com/mattermost/platform/model" "github.com/mattermost/platform/store" "github.com/mattermost/platform/utils" + + l4g "github.com/alecthomas/log4go" ) type AutoUserCreator struct { client *model.Client - teamID string + team *model.Team EmailLength utils.Range EmailCharset string NameLength utils.Range @@ -19,10 +21,10 @@ type AutoUserCreator struct { Fuzzy bool } -func NewAutoUserCreator(client *model.Client, teamID string) *AutoUserCreator { +func NewAutoUserCreator(client *model.Client, team *model.Team) *AutoUserCreator { return &AutoUserCreator{ client: client, - teamID: teamID, + team: team, EmailLength: USER_EMAIL_LEN, EmailCharset: utils.LOWERCASE, NameLength: USER_NAME_LEN, @@ -33,7 +35,7 @@ func NewAutoUserCreator(client *model.Client, teamID string) *AutoUserCreator { // Basic test team and user so you always know one func CreateBasicUser(client *model.Client) *model.AppError { - result, _ := client.FindTeamByName(BTEST_TEAM_NAME, true) + result, _ := client.FindTeamByName(BTEST_TEAM_NAME) if result.Data.(bool) == false { newteam := &model.Team{DisplayName: BTEST_TEAM_DISPLAY_NAME, Name: BTEST_TEAM_NAME, Email: BTEST_TEAM_EMAIL, Type: BTEST_TEAM_TYPE} result, err := client.CreateTeam(newteam) @@ -41,12 +43,14 @@ func CreateBasicUser(client *model.Client) *model.AppError { return err } basicteam := result.Data.(*model.Team) - newuser := &model.User{TeamId: basicteam.Id, Email: BTEST_USER_EMAIL, Nickname: BTEST_USER_NAME, Password: BTEST_USER_PASSWORD} + newuser := &model.User{Email: BTEST_USER_EMAIL, Nickname: BTEST_USER_NAME, Password: BTEST_USER_PASSWORD} result, err = client.CreateUser(newuser, "") if err != nil { return err } - store.Must(Srv.Store.User().VerifyEmail(result.Data.(*model.User).Id)) + ruser := result.Data.(*model.User) + store.Must(Srv.Store.User().VerifyEmail(ruser.Id)) + store.Must(Srv.Store.Team().SaveMember(&model.TeamMember{TeamId: basicteam.Id, UserId: ruser.Id})) } return nil } @@ -55,25 +59,30 @@ func (cfg *AutoUserCreator) createRandomUser() (*model.User, bool) { var userEmail string var userName string if cfg.Fuzzy { - userEmail = utils.RandString(FUZZ_USER_EMAIL_PREFIX_LEN, utils.LOWERCASE) + "-" + utils.FuzzEmail() + userEmail = "success+" + model.NewId() + "simulator.amazonses.com" userName = utils.FuzzName() } else { - userEmail = utils.RandomEmail(cfg.EmailLength, cfg.EmailCharset) + userEmail = "success+" + model.NewId() + "simulator.amazonses.com" userName = utils.RandomName(cfg.NameLength, cfg.NameCharset) } user := &model.User{ - TeamId: cfg.teamID, Email: userEmail, Nickname: userName, Password: USER_PASSWORD} - result, err := cfg.client.CreateUser(user, "") + result, err := cfg.client.CreateUserWithInvite(user, "", "", cfg.team.InviteId) if err != nil { + err.Translate(utils.T) + l4g.Error(err.Error()) return nil, false } + + ruser := result.Data.(*model.User) + // We need to cheat to verify the user's email - store.Must(Srv.Store.User().VerifyEmail(result.Data.(*model.User).Id)) + store.Must(Srv.Store.User().VerifyEmail(ruser.Id)) + return result.Data.(*model.User), true } |