add option to generate deactivated users via sampledata (#12772)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
710c732349
Коммит
65dc760f01
@@ -17,9 +17,15 @@ import (
|
|||||||
|
|
||||||
"github.com/icrowley/fake"
|
"github.com/icrowley/fake"
|
||||||
"github.com/mattermost/mattermost-server/app"
|
"github.com/mattermost/mattermost-server/app"
|
||||||
|
"github.com/mattermost/mattermost-server/model"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
DEACTIVATED_USER = "deactivated"
|
||||||
|
GUEST_USER = "guest"
|
||||||
|
)
|
||||||
|
|
||||||
var SampleDataCmd = &cobra.Command{
|
var SampleDataCmd = &cobra.Command{
|
||||||
Use: "sampledata",
|
Use: "sampledata",
|
||||||
Short: "Generate sample data",
|
Short: "Generate sample data",
|
||||||
@@ -32,6 +38,7 @@ func init() {
|
|||||||
SampleDataCmd.Flags().Int("channels-per-team", 10, "The number of sample channels per team.")
|
SampleDataCmd.Flags().Int("channels-per-team", 10, "The number of sample channels per team.")
|
||||||
SampleDataCmd.Flags().IntP("users", "u", 15, "The number of sample users.")
|
SampleDataCmd.Flags().IntP("users", "u", 15, "The number of sample users.")
|
||||||
SampleDataCmd.Flags().IntP("guests", "g", 1, "The number of sample guests.")
|
SampleDataCmd.Flags().IntP("guests", "g", 1, "The number of sample guests.")
|
||||||
|
SampleDataCmd.Flags().Int("deactivated-users", 0, "The number of deactivated users.")
|
||||||
SampleDataCmd.Flags().Int("team-memberships", 2, "The number of sample team memberships per user.")
|
SampleDataCmd.Flags().Int("team-memberships", 2, "The number of sample team memberships per user.")
|
||||||
SampleDataCmd.Flags().Int("channel-memberships", 5, "The number of sample channel memberships per user in a team.")
|
SampleDataCmd.Flags().Int("channel-memberships", 5, "The number of sample channel memberships per user in a team.")
|
||||||
SampleDataCmd.Flags().Int("posts-per-channel", 100, "The number of sample post per channel.")
|
SampleDataCmd.Flags().Int("posts-per-channel", 100, "The number of sample post per channel.")
|
||||||
@@ -165,6 +172,10 @@ func sampleDataCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil || users < 0 {
|
if err != nil || users < 0 {
|
||||||
return errors.New("Invalid users parameter")
|
return errors.New("Invalid users parameter")
|
||||||
}
|
}
|
||||||
|
deactivatedUsers, err := command.Flags().GetInt("deactivated-users")
|
||||||
|
if err != nil || deactivatedUsers < 0 {
|
||||||
|
return errors.New("Invalid deactivated-users parameter")
|
||||||
|
}
|
||||||
guests, err := command.Flags().GetInt("guests")
|
guests, err := command.Flags().GetInt("guests")
|
||||||
if err != nil || guests < 0 {
|
if err != nil || guests < 0 {
|
||||||
return errors.New("Invalid guests parameter")
|
return errors.New("Invalid guests parameter")
|
||||||
@@ -283,12 +294,17 @@ func sampleDataCmdF(command *cobra.Command, args []string) error {
|
|||||||
|
|
||||||
allUsers := []string{}
|
allUsers := []string{}
|
||||||
for i := 0; i < users; i++ {
|
for i := 0; i < users; i++ {
|
||||||
userLine := createUser(i, teamMemberships, channelMemberships, teamsAndChannels, profileImages, false)
|
userLine := createUser(i, teamMemberships, channelMemberships, teamsAndChannels, profileImages, "")
|
||||||
encoder.Encode(userLine)
|
encoder.Encode(userLine)
|
||||||
allUsers = append(allUsers, *userLine.User.Username)
|
allUsers = append(allUsers, *userLine.User.Username)
|
||||||
}
|
}
|
||||||
for i := 0; i < guests; i++ {
|
for i := 0; i < guests; i++ {
|
||||||
userLine := createUser(i, teamMemberships, channelMemberships, teamsAndChannels, profileImages, true)
|
userLine := createUser(i, teamMemberships, channelMemberships, teamsAndChannels, profileImages, GUEST_USER)
|
||||||
|
encoder.Encode(userLine)
|
||||||
|
allUsers = append(allUsers, *userLine.User.Username)
|
||||||
|
}
|
||||||
|
for i := 0; i < deactivatedUsers; i++ {
|
||||||
|
userLine := createUser(i, teamMemberships, channelMemberships, teamsAndChannels, profileImages, DEACTIVATED_USER)
|
||||||
encoder.Encode(userLine)
|
encoder.Encode(userLine)
|
||||||
allUsers = append(allUsers, *userLine.User.Username)
|
allUsers = append(allUsers, *userLine.User.Username)
|
||||||
}
|
}
|
||||||
@@ -355,36 +371,44 @@ func sampleDataCmdF(command *cobra.Command, args []string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func createUser(idx int, teamMemberships int, channelMemberships int, teamsAndChannels map[string][]string, profileImages []string, guest bool) app.LineImportData {
|
func createUser(idx int, teamMemberships int, channelMemberships int, teamsAndChannels map[string][]string, profileImages []string, userType string) app.LineImportData {
|
||||||
password := fmt.Sprintf("SampleUs@r-%d", idx)
|
|
||||||
email := fmt.Sprintf("user-%d@sample.mattermost.com", idx)
|
|
||||||
if guest {
|
|
||||||
password = fmt.Sprintf("SampleGu@st-%d", idx)
|
|
||||||
email = fmt.Sprintf("guest-%d@sample.mattermost.com", idx)
|
|
||||||
}
|
|
||||||
firstName := fake.FirstName()
|
firstName := fake.FirstName()
|
||||||
lastName := fake.LastName()
|
lastName := fake.LastName()
|
||||||
|
position := fake.JobTitle()
|
||||||
|
|
||||||
username := fmt.Sprintf("%s.%s", strings.ToLower(firstName), strings.ToLower(lastName))
|
username := fmt.Sprintf("%s.%s", strings.ToLower(firstName), strings.ToLower(lastName))
|
||||||
if guest {
|
roles := "system_user"
|
||||||
|
|
||||||
|
var password string
|
||||||
|
var email string
|
||||||
|
|
||||||
|
switch userType {
|
||||||
|
case GUEST_USER:
|
||||||
|
password = fmt.Sprintf("SampleGu@st-%d", idx)
|
||||||
|
email = fmt.Sprintf("guest-%d@sample.mattermost.com", idx)
|
||||||
|
roles = "system_guest"
|
||||||
if idx == 0 {
|
if idx == 0 {
|
||||||
username = "guest"
|
username = "guest"
|
||||||
password = "SampleGu@st1"
|
password = "SampleGu@st1"
|
||||||
email = "guest@sample.mattermost.com"
|
email = "guest@sample.mattermost.com"
|
||||||
}
|
}
|
||||||
} else if idx == 0 {
|
case DEACTIVATED_USER:
|
||||||
username = "sysadmin"
|
password = fmt.Sprintf("SampleDe@ctivated-%d", idx)
|
||||||
password = "Sys@dmin-sample1"
|
email = fmt.Sprintf("deactivated-%d@sample.mattermost.com", idx)
|
||||||
email = "sysadmin@sample.mattermost.com"
|
default:
|
||||||
} else if idx == 1 {
|
password = fmt.Sprintf("SampleUs@r-%d", idx)
|
||||||
username = "user-1"
|
email = fmt.Sprintf("user-%d@sample.mattermost.com", idx)
|
||||||
}
|
if idx == 0 {
|
||||||
|
username = "sysadmin"
|
||||||
|
password = "Sys@dmin-sample1"
|
||||||
|
email = "sysadmin@sample.mattermost.com"
|
||||||
|
} else if idx == 1 {
|
||||||
|
username = "user-1"
|
||||||
|
}
|
||||||
|
|
||||||
position := fake.JobTitle()
|
if idx%5 == 0 {
|
||||||
roles := "system_user"
|
roles = "system_admin system_user"
|
||||||
if guest {
|
}
|
||||||
roles = "system_guest"
|
|
||||||
} else if idx%5 == 0 {
|
|
||||||
roles = "system_admin system_user"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// The 75% of the users have custom profile image
|
// The 75% of the users have custom profile image
|
||||||
@@ -450,10 +474,15 @@ func createUser(idx int, teamMemberships int, channelMemberships int, teamsAndCh
|
|||||||
team := possibleTeams[position]
|
team := possibleTeams[position]
|
||||||
possibleTeams = append(possibleTeams[:position], possibleTeams[position+1:]...)
|
possibleTeams = append(possibleTeams[:position], possibleTeams[position+1:]...)
|
||||||
if teamChannels, err := teamsAndChannels[team]; err {
|
if teamChannels, err := teamsAndChannels[team]; err {
|
||||||
teams = append(teams, createTeamMembership(channelMemberships, teamChannels, &team, guest))
|
teams = append(teams, createTeamMembership(channelMemberships, teamChannels, &team, userType == GUEST_USER))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var deleteAt int64
|
||||||
|
if userType == DEACTIVATED_USER {
|
||||||
|
deleteAt = model.GetMillis()
|
||||||
|
}
|
||||||
|
|
||||||
user := app.UserImportData{
|
user := app.UserImportData{
|
||||||
ProfileImage: profileImage,
|
ProfileImage: profileImage,
|
||||||
Username: &username,
|
Username: &username,
|
||||||
@@ -470,6 +499,7 @@ func createUser(idx int, teamMemberships int, channelMemberships int, teamsAndCh
|
|||||||
MessageDisplay: &messageDisplay,
|
MessageDisplay: &messageDisplay,
|
||||||
ChannelDisplayMode: &channelDisplayMode,
|
ChannelDisplayMode: &channelDisplayMode,
|
||||||
TutorialStep: &tutorialStep,
|
TutorialStep: &tutorialStep,
|
||||||
|
DeleteAt: &deleteAt,
|
||||||
}
|
}
|
||||||
return app.LineImportData{
|
return app.LineImportData{
|
||||||
Type: "user",
|
Type: "user",
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user