github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+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  				p.UI.Say("  %s", user.Username)
    45  			}
    46  		}
    47  	}
    48  }
    49  
    50  func (p *SpaceUsersUIPrinter) PrintUsers(guid string, username string) {
    51  	for _, role := range p.Roles {
    52  		displayName := p.RoleDisplayNames[role]
    53  		users, err := p.UserLister(guid, role)
    54  		if err != nil {
    55  			p.UI.Failed(T("Failed fetching space-users for role {{.SpaceRoleToDisplayName}}.\n{{.Error}}",
    56  				map[string]interface{}{
    57  					"Error":                  err.Error(),
    58  					"SpaceRoleToDisplayName": displayName,
    59  				}))
    60  			return
    61  		}
    62  		p.UI.Say("")
    63  		p.UI.Say("%s", terminal.HeaderColor(displayName))
    64  
    65  		if len(users) == 0 {
    66  			p.UI.Say("  " + T("No {{.Role}} found", map[string]interface{}{
    67  				"Role": displayName,
    68  			}))
    69  		} else {
    70  			for _, user := range users {
    71  				p.UI.Say("  %s", user.Username)
    72  			}
    73  		}
    74  	}
    75  }