github.com/jfrog/jfrog-cli-core/v2@v2.51.0/artifactory/commands/usersmanagement/userscreate.go (about)

     1  package usersmanagement
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/jfrog/jfrog-cli-core/v2/artifactory/utils"
     7  	"github.com/jfrog/jfrog-cli-core/v2/utils/config"
     8  	"github.com/jfrog/jfrog-client-go/artifactory/services"
     9  	"github.com/jfrog/jfrog-client-go/utils/log"
    10  )
    11  
    12  type UsersCreateCommand struct {
    13  	serverDetails   *config.ServerDetails
    14  	users           []services.User
    15  	usersGroups     *[]string
    16  	replaceIfExists bool
    17  }
    18  
    19  func NewUsersCreateCommand() *UsersCreateCommand {
    20  	return &UsersCreateCommand{}
    21  }
    22  
    23  func (ucc *UsersCreateCommand) SetUsers(users []services.User) *UsersCreateCommand {
    24  	ucc.users = users
    25  	return ucc
    26  }
    27  
    28  func (ucc *UsersCreateCommand) Users() []services.User {
    29  	return ucc.users
    30  }
    31  
    32  func (ucc *UsersCreateCommand) ServerDetails() (*config.ServerDetails, error) {
    33  	return ucc.serverDetails, nil
    34  }
    35  
    36  func (ucc *UsersCreateCommand) SetServerDetails(serverDetails *config.ServerDetails) *UsersCreateCommand {
    37  	ucc.serverDetails = serverDetails
    38  	return ucc
    39  }
    40  
    41  func (ucc *UsersCreateCommand) SetUsersGroups(usersGroups *[]string) *UsersCreateCommand {
    42  	ucc.usersGroups = usersGroups
    43  	return ucc
    44  }
    45  
    46  func (ucc *UsersCreateCommand) SetReplaceIfExists(replaceIfExists bool) *UsersCreateCommand {
    47  	ucc.replaceIfExists = replaceIfExists
    48  	return ucc
    49  }
    50  
    51  func (ucc *UsersCreateCommand) ReplaceIfExists() bool {
    52  	return ucc.replaceIfExists
    53  }
    54  
    55  func (ucc *UsersCreateCommand) CommandName() string {
    56  	return "rt_users_create"
    57  }
    58  
    59  func (ucc *UsersCreateCommand) Run() error {
    60  	servicesManager, err := utils.CreateServiceManager(ucc.serverDetails, -1, 0, false)
    61  	if err != nil {
    62  		return err
    63  	}
    64  
    65  	for _, user := range ucc.users {
    66  		log.Info(fmt.Sprintf("Creating user %s...", user.Name))
    67  		user.Groups = ucc.usersGroups
    68  		params := new(services.UserParams)
    69  		params.UserDetails = user
    70  		params.ReplaceIfExists = ucc.ReplaceIfExists()
    71  		err = servicesManager.CreateUser(*params)
    72  		if err != nil {
    73  			break
    74  		}
    75  	}
    76  	return err
    77  }