github.com/asifdxtreme/cli@v6.1.3-0.20150123051144-9ead8700b4ae+incompatible/cf/commands/user/unset_org_role.go (about) 1 package user 2 3 import ( 4 "github.com/cloudfoundry/cli/cf/api" 5 "github.com/cloudfoundry/cli/cf/command_metadata" 6 "github.com/cloudfoundry/cli/cf/configuration/core_config" 7 . "github.com/cloudfoundry/cli/cf/i18n" 8 "github.com/cloudfoundry/cli/cf/models" 9 "github.com/cloudfoundry/cli/cf/requirements" 10 "github.com/cloudfoundry/cli/cf/terminal" 11 "github.com/codegangsta/cli" 12 ) 13 14 type UnsetOrgRole struct { 15 ui terminal.UI 16 config core_config.Reader 17 userRepo api.UserRepository 18 userReq requirements.UserRequirement 19 orgReq requirements.OrganizationRequirement 20 } 21 22 func NewUnsetOrgRole(ui terminal.UI, config core_config.Reader, userRepo api.UserRepository) (cmd *UnsetOrgRole) { 23 cmd = new(UnsetOrgRole) 24 cmd.ui = ui 25 cmd.config = config 26 cmd.userRepo = userRepo 27 28 return 29 } 30 31 func (cmd *UnsetOrgRole) Metadata() command_metadata.CommandMetadata { 32 return command_metadata.CommandMetadata{ 33 Name: "unset-org-role", 34 Description: T("Remove an org role from a user"), 35 Usage: T("CF_NAME unset-org-role USERNAME ORG ROLE\n\n") + 36 T("ROLES:\n") + 37 T(" OrgManager - Invite and manage users, select and change plans, and set spending limits\n") + 38 T(" BillingManager - Create and manage the billing account and payment info\n") + 39 T(" OrgAuditor - Read-only access to org info and reports\n"), 40 } 41 } 42 43 func (cmd *UnsetOrgRole) GetRequirements(requirementsFactory requirements.Factory, c *cli.Context) (reqs []requirements.Requirement, err error) { 44 if len(c.Args()) != 3 { 45 cmd.ui.FailWithUsage(c) 46 } 47 48 cmd.userReq = requirementsFactory.NewUserRequirement(c.Args()[0]) 49 cmd.orgReq = requirementsFactory.NewOrganizationRequirement(c.Args()[1]) 50 51 reqs = []requirements.Requirement{ 52 requirementsFactory.NewLoginRequirement(), 53 cmd.userReq, 54 cmd.orgReq, 55 } 56 57 return 58 } 59 60 func (cmd *UnsetOrgRole) Run(c *cli.Context) { 61 role := models.UserInputToOrgRole[c.Args()[2]] 62 user := cmd.userReq.GetUser() 63 org := cmd.orgReq.GetOrganization() 64 65 cmd.ui.Say(T("Removing role {{.Role}} from user {{.TargetUser}} in org {{.TargetOrg}} as {{.CurrentUser}}...", 66 map[string]interface{}{ 67 "Role": terminal.EntityNameColor(role), 68 "TargetUser": terminal.EntityNameColor(c.Args()[0]), 69 "TargetOrg": terminal.EntityNameColor(c.Args()[1]), 70 "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), 71 })) 72 73 apiErr := cmd.userRepo.UnsetOrgRole(user.Guid, org.Guid, role) 74 75 if apiErr != nil { 76 cmd.ui.Failed(apiErr.Error()) 77 return 78 } 79 80 cmd.ui.Ok() 81 }