diff --git a/houston/queries.go b/houston/queries.go index 5cbcb5b06..5ff3861fb 100644 --- a/houston/queries.go +++ b/houston/queries.go @@ -286,19 +286,12 @@ var ( }` WorkspaceUserUpdateRequest = ` - mutation WorkspaceUpdateUserRole($workspaceId: Uuid!, $email: String!, $role: Role!) { - workspaceUpdateUserRole(workspaceUuid: $workspaceId, email: $email, role: $role) { - id - label - description - active - users { - id - username - } - createdAt - updatedAt - } + mutation workspaceUpdateUserRole($workspaceUuid: Uuid!, $email: String!, $role: Role!) { + workspaceUpdateUserRole( + workspaceUuid: $workspaceUuid + email: $email + role: $role + ) }` WorkspaceUserRemoveRequest = ` diff --git a/houston/types.go b/houston/types.go index 432e41a0e..63da7f98e 100644 --- a/houston/types.go +++ b/houston/types.go @@ -3,24 +3,25 @@ package houston // Response wraps all houston response structs used for json marashalling type Response struct { Data struct { - AddWorkspaceUser *Workspace `json:"workspaceAddUser,omitempty"` - RemoveWorkspaceUser *Workspace `json:"workspaceRemoveUser,omitempty"` - CreateDeployment *Deployment `json:"createDeployment,omitempty"` - CreateToken *AuthUser `json:"createToken,omitempty"` - CreateServiceAccount *ServiceAccount `json:"createServiceAccount,omitempty"` - CreateUser *AuthUser `json:"createUser,omitempty"` - CreateWorkspace *Workspace `json:"createWorkspace,omitempty"` - DeleteDeployment *Deployment `json:"deleteDeployment,omitempty"` - DeleteServiceAccount *ServiceAccount `json:"deleteServiceAccount,omitempty"` - DeleteWorkspace *Workspace `json:"deleteWorkspace,omitempty"` - GetDeployments []Deployment `json:"deployments,omitempty"` - GetAuthConfig *AuthConfig `json:"authConfig,omitempty"` - GetServiceAccounts []ServiceAccount `json:"serviceAccounts,omitempty"` - GetUsers []User `json:"users,omitempty"` - GetWorkspaces []Workspace `json:"workspaces,omitempty"` - UpdateDeployment *Deployment `json:"updateDeployment,omitempty"` - UpdateWorkspace *Workspace `json:"updateWorkspace,omitempty"` - DeploymentLog []DeploymentLog `json:"logs,omitempty"` + AddWorkspaceUser *Workspace `json:"workspaceAddUser,omitempty"` + RemoveWorkspaceUser *Workspace `json:"workspaceRemoveUser,omitempty"` + CreateDeployment *Deployment `json:"createDeployment,omitempty"` + CreateToken *AuthUser `json:"createToken,omitempty"` + CreateServiceAccount *ServiceAccount `json:"createServiceAccount,omitempty"` + CreateUser *AuthUser `json:"createUser,omitempty"` + CreateWorkspace *Workspace `json:"createWorkspace,omitempty"` + DeleteDeployment *Deployment `json:"deleteDeployment,omitempty"` + DeleteServiceAccount *ServiceAccount `json:"deleteServiceAccount,omitempty"` + DeleteWorkspace *Workspace `json:"deleteWorkspace,omitempty"` + GetDeployments []Deployment `json:"deployments,omitempty"` + GetAuthConfig *AuthConfig `json:"authConfig,omitempty"` + GetServiceAccounts []ServiceAccount `json:"serviceAccounts,omitempty"` + GetUsers []User `json:"users,omitempty"` + GetWorkspaces []Workspace `json:"workspaces,omitempty"` + UpdateDeployment *Deployment `json:"updateDeployment,omitempty"` + UpdateWorkspace *Workspace `json:"updateWorkspace,omitempty"` + DeploymentLog []DeploymentLog `json:"logs,omitempty"` + WorkspaceUpdateUserRole string `json:"workspaceUpdateUserRole,omitempty"` } `json:"data"` Errors []Error `json:"errors,omitempty"` } diff --git a/workspace/user.go b/workspace/user.go index b6d75fd15..70668ee19 100644 --- a/workspace/user.go +++ b/workspace/user.go @@ -89,25 +89,15 @@ func ListRoles(workspaceId string) error { func UpdateRole(workspaceId, email, role string) error { req := houston.Request{ Query: houston.WorkspaceUserUpdateRequest, - Variables: map[string]interface{}{"workspaceId": workspaceId, "email": email, "role": role}, + Variables: map[string]interface{}{"workspaceUuid": workspaceId, "email": email, "role": role}, } r, err := req.Do() if err != nil { return err } - workspace := r.Data.GetWorkspaces[0] + newRole := r.Data.WorkspaceUpdateUserRole - tab := printutil.Table{ - Padding: []int{44, 50}, - DynamicPadding: true, - Header: []string{"USERNAME", "ID", "ROLE"}, - } - for _, role := range workspace.RoleBindings { - var color bool - tab.AddRow([]string{role.User.Username, role.User.Id, role.Role}, color) - } - - tab.Print() + fmt.Printf("Role has been changed from %s to %s for user %s", role, newRole, email) return nil }