From 6f6b7e4e97f466ee0f29c96b7fee0d9b98ce751c Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Fri, 28 Apr 2017 23:01:56 +0100 Subject: Add Password field to Bulk Importer. (#6268) --- app/import.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'app/import.go') diff --git a/app/import.go b/app/import.go index 488cb22aa..eb51fd34e 100644 --- a/app/import.go +++ b/app/import.go @@ -52,6 +52,7 @@ type UserImportData struct { Email *string `json:"email"` AuthService *string `json:"auth_service"` AuthData *string `json:"auth_data"` + Password *string `json:"password"` Nickname *string `json:"nickname"` FirstName *string `json:"first_name"` LastName *string `json:"last_name"` @@ -429,8 +430,11 @@ func ImportUser(data *UserImportData, dryRun bool) *model.AppError { if data.AuthData != nil { authData = data.AuthData password = "" + } else if data.Password != nil { + password = *data.Password + authData = nil } else { - // If no Auth Data is specified, we must generate a password. + // If no AuthData or Password is specified, we must generate a password. password = model.NewId() authData = nil } @@ -695,10 +699,22 @@ func validateUserImportData(data *UserImportData) *model.AppError { return model.NewAppError("BulkImport", "app.import.validate_user_import_data.auth_service_length.error", nil, "", http.StatusBadRequest) } + if data.AuthData != nil && data.Password != nil { + return model.NewAppError("BulkImport", "app.import.validate_user_import_data.auth_data_and_password.error", nil, "", http.StatusBadRequest) + } + if data.AuthData != nil && len(*data.AuthData) > model.USER_AUTH_DATA_MAX_LENGTH { return model.NewAppError("BulkImport", "app.import.validate_user_import_data.auth_data_length.error", nil, "", http.StatusBadRequest) } + if data.Password != nil && len(*data.Password) == 0 { + return model.NewAppError("BulkImport", "app.import.validate_user_import_data.pasword_length.error", nil, "", http.StatusBadRequest) + } + + if data.Password != nil && len(*data.Password) > model.USER_PASSWORD_MAX_LENGTH { + return model.NewAppError("BulkImport", "app.import.validate_user_import_data.password_length.error", nil, "", http.StatusBadRequest) + } + if data.Nickname != nil && utf8.RuneCountInString(*data.Nickname) > model.USER_NICKNAME_MAX_RUNES { return model.NewAppError("BulkImport", "app.import.validate_user_import_data.nickname_length.error", nil, "", http.StatusBadRequest) } -- cgit v1.2.3-1-g7c22