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 }