MCPcopy Index your code
hub / github.com/coder/coder / assignOrganizationRoles

Method assignOrganizationRoles

cli/organizationmembers.go:97–137  ·  view source on GitHub ↗
(orgContext *OrganizationContext)

Source from the content-addressed store, hash-verified

95}
96
97func (r *RootCmd) assignOrganizationRoles(orgContext *OrganizationContext) *serpent.Command {
98 cmd := &serpent.Command{
99 Use: "edit-roles <username | user_id> [roles...]",
100 Aliases: []string{"edit-role"},
101 Short: "Edit organization member's roles",
102 Handler: func(inv *serpent.Invocation) error {
103 client, err := r.InitClient(inv)
104 if err != nil {
105 return err
106 }
107 ctx := inv.Context()
108 organization, err := orgContext.Selected(inv, client)
109 if err != nil {
110 return err
111 }
112
113 if len(inv.Args) < 1 {
114 return xerrors.Errorf("user_id or username is required as the first argument")
115 }
116 userIdentifier := inv.Args[0]
117 roles := inv.Args[1:]
118
119 member, err := client.UpdateOrganizationMemberRoles(ctx, organization.ID, userIdentifier, codersdk.UpdateRoles{
120 Roles: roles,
121 })
122 if err != nil {
123 return xerrors.Errorf("update member roles: %w", err)
124 }
125
126 updatedTo := make([]string, 0)
127 for _, role := range member.Roles {
128 updatedTo = append(updatedTo, role.String())
129 }
130
131 _, _ = fmt.Fprintf(inv.Stdout, "Member roles updated to [%s]\n", strings.Join(updatedTo, ", "))
132 return nil
133 },
134 }
135
136 return cmd
137}
138
139func (r *RootCmd) listOrganizationMembers(orgContext *OrganizationContext) *serpent.Command {
140 formatter := cliui.NewOutputFormatter(

Callers 1

organizationMembersMethod · 0.95

Calls 6

InitClientMethod · 0.95
SelectedMethod · 0.80
ContextMethod · 0.65
ErrorfMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected