github.com/elopio/cli@v6.21.2-0.20160902224010-ea909d1fdb2f+incompatible/cf/actors/userprint/ui.go (about)

     1  package userprint
     2  
     3  import (
     4  	"fmt"
     5  
     6  	. "code.cloudfoundry.org/cli/cf/i18n"
     7  	"code.cloudfoundry.org/cli/cf/models"
     8  	"code.cloudfoundry.org/cli/cf/terminal"
     9  )
    10  
    11  type SpaceUsersUIPrinter struct {
    12  	UI               terminal.UI
    13  	UserLister       func(spaceGUID string, role models.Role) ([]models.UserFields, error)
    14  	Roles            []models.Role
    15  	RoleDisplayNames map[models.Role]string
    16  }
    17  
    18  type OrgUsersUIPrinter struct {
    19  	Roles            []models.Role
    20  	RoleDisplayNames map[models.Role]string
    21  	UserLister       func(orgGUID string, role models.Role) ([]models.UserFields, error)
    22  	UI               terminal.UI
    23  }
    24  
    25  func (p *OrgUsersUIPrinter) PrintUsers(guid string, username string) {
    26  	for _, role := range p.Roles {
    27  		displayName := p.RoleDisplayNames[role]
    28  		users, err := p.UserLister(guid, role)
    29  		if err != nil {
    30  			p.UI.Failed(T("Failed fetching org-users for role {{.OrgRoleToDisplayName}}.\n{{.Error}}",
    31  				map[string]interface{}{
    32  					"Error":                err.Error(),
    33  					"OrgRoleToDisplayName": displayName,
    34  				}))
    35  			return
    36  		}
    37  		p.UI.Say("")
    38  		p.UI.Say("%s", terminal.HeaderColor(displayName))
    39  
    40  		if len(users) == 0 {
    41  			p.UI.Say(fmt.Sprintf("  "+T("No %s found"), displayName))
    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(fmt.Sprintf("  "+T("No %s found"), displayName))
    67  		} else {
    68  			for _, user := range users {
    69  				p.UI.Say("  %s", user.Username)
    70  			}
    71  		}
    72  	}
    73  }