github.com/sleungcy-sap/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 }