github.com/loafoe/cli@v7.1.0+incompatible/command/v7/unset_space_role_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/command/flag" 5 "code.cloudfoundry.org/cli/command/translatableerror" 6 ) 7 8 type UnsetSpaceRoleCommand struct { 9 BaseCommand 10 11 Args flag.SpaceRoleArgs `positional-args:"yes"` 12 IsClient bool `long:"client" description:"Remove space role from a client-id of a (non-user) service account"` 13 Origin string `long:"origin" description:"Indicates the identity provider to be used for authentication"` 14 usage interface{} `usage:"CF_NAME unset-space-role USERNAME ORG SPACE ROLE\n CF_NAME unset-space-role USERNAME ORG SPACE ROLE [--client]\n CF_NAME unset-space-role USERNAME ORG SPACE ROLE [--origin ORIGIN]\n\nROLES:\n SpaceManager - Invite and manage users, and enable features for a given space\n SpaceDeveloper - Create and manage apps and services, and see logs and reports\n SpaceAuditor - View logs, reports, and settings on this space"` 15 relatedCommands interface{} `related_commands:"set-space-role, space-users"` 16 } 17 18 func (cmd *UnsetSpaceRoleCommand) Execute(args []string) error { 19 err := cmd.validateFlags() 20 if err != nil { 21 return err 22 } 23 24 err = cmd.SharedActor.CheckTarget(false, false) 25 if err != nil { 26 return err 27 } 28 29 currentUser, err := cmd.Config.CurrentUser() 30 if err != nil { 31 return err 32 } 33 34 cmd.UI.DisplayTextWithFlavor("Removing role {{.RoleType}} from user {{.TargetUserName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUserName}}...", map[string]interface{}{ 35 "RoleType": cmd.Args.Role.Role, 36 "TargetUserName": cmd.Args.Username, 37 "OrgName": cmd.Args.Organization, 38 "SpaceName": cmd.Args.Space, 39 "CurrentUserName": currentUser.Name, 40 }) 41 42 roleType, err := convertSpaceRoleType(cmd.Args.Role) 43 if err != nil { 44 return err 45 } 46 47 org, warnings, err := cmd.Actor.GetOrganizationByName(cmd.Args.Organization) 48 cmd.UI.DisplayWarnings(warnings) 49 if err != nil { 50 return err 51 } 52 53 space, warnings, err := cmd.Actor.GetSpaceByNameAndOrganization(cmd.Args.Space, org.GUID) 54 cmd.UI.DisplayWarnings(warnings) 55 if err != nil { 56 return err 57 } 58 59 warnings, err = cmd.Actor.DeleteSpaceRole(roleType, space.GUID, cmd.Args.Username, cmd.Origin, cmd.IsClient) 60 cmd.UI.DisplayWarnings(warnings) 61 if err != nil { 62 return err 63 } 64 65 cmd.UI.DisplayOK() 66 67 return nil 68 } 69 70 func (cmd UnsetSpaceRoleCommand) validateFlags() error { 71 if cmd.IsClient && cmd.Origin != "" { 72 return translatableerror.ArgumentCombinationError{ 73 Args: []string{"--client", "--origin"}, 74 } 75 } 76 return nil 77 }