github.com/swisscom/cloudfoundry-cli@v7.1.0+incompatible/cf/actors/userprint/ui.go (about)

     1  package userprint
     2  
     3  import (
     4  	. "code.cloudfoundry.org/cli/cf/i18n"
     5  	"code.cloudfoundry.org/cli/cf/models"
     6  	"code.cloudfoundry.org/cli/cf/terminal"
     7  )
     8  
     9  type SpaceUsersUIPrinter struct {
    10  	UI               terminal.UI
    11  	UserLister       func(spaceGUID string, role models.Role) ([]models.UserFields, error)
    12  	Roles            []models.Role
    13  	RoleDisplayNames map[models.Role]string
    14  }
    15  
    16  type OrgUsersUIPrinter struct {
    17  	Roles            []models.Role
    18  	RoleDisplayNames map[models.Role]string
    19  	UserLister       func(orgGUID string, role models.Role) ([]models.UserFields, error)
    20  	UI               terminal.UI
    21  }
    22  
    23  func (p *OrgUsersUIPrinter) PrintUsers(guid string, username string) {
    24  	for _, role := range p.Roles {
    25  		displayName := p.RoleDisplayNames[role]
    26  		users, err := p.UserLister(guid, role)
    27  		if err != nil {
    28  			p.UI.Failed(T("Failed fetching org-users for role {{.OrgRoleToDisplayName}}.\n{{.Error}}",
    29  				map[string]interface{}{
    30  					"Error":                err.Error(),
    31  					"OrgRoleToDisplayName": displayName,
    32  				}))
    33  			return
    34  		}
    35  		p.UI.Say("")
    36  		p.UI.Say("%s", terminal.HeaderColor(displayName))
    37  
    38  		if len(users) == 0 {
    39  			p.UI.Say("  " + T("No {{.Role}} found", map[string]interface{}{
    40  				"Role": displayName,
    41  			}))
    42  		} else {
    43  			for _, user := range users {
    44  				if len(user.Username) > 0 {
    45  					p.UI.Say("  %s", user.Username)
    46  				} else {
    47  					p.UI.Say("  %s (client)", user.GUID)
    48  				}
    49  			}
    50  		}
    51  	}
    52  }
    53  
    54  func (p *SpaceUsersUIPrinter) PrintUsers(guid string, username string) {
    55  	for _, role := range p.Roles {
    56  		displayName := p.RoleDisplayNames[role]
    57  		users, err := p.UserLister(guid, role)
    58  		if err != nil {
    59  			p.UI.Failed(T("Failed fetching space-users for role {{.SpaceRoleToDisplayName}}.\n{{.Error}}",
    60  				map[string]interface{}{
    61  					"Error":                  err.Error(),
    62  					"SpaceRoleToDisplayName": displayName,
    63  				}))
    64  			return
    65  		}
    66  		p.UI.Say("")
    67  		p.UI.Say("%s", terminal.HeaderColor(displayName))
    68  
    69  		if len(users) == 0 {
    70  			p.UI.Say("  " + T("No {{.Role}} found", map[string]interface{}{
    71  				"Role": displayName,
    72  			}))
    73  		} else {
    74  			for _, user := range users {
    75  				if len(user.Username) > 0 {
    76  					p.UI.Say("  %s", user.Username)
    77  				} else {
    78  					p.UI.Say("  %s (client)", user.GUID)
    79  				}
    80  			}
    81  		}
    82  	}
    83  }