ListServices lists all service accounts in an organization.
(ctx context.Context, req *adminv1.ListServicesRequest)
| 149 | |
| 150 | // ListServices lists all service accounts in an organization. |
| 151 | func (s *Server) ListServices(ctx context.Context, req *adminv1.ListServicesRequest) (*adminv1.ListServicesResponse, error) { |
| 152 | observability.AddRequestAttributes(ctx, |
| 153 | attribute.String("args.organization", req.Org), |
| 154 | ) |
| 155 | |
| 156 | org, err := s.admin.DB.FindOrganizationByName(ctx, req.Org) |
| 157 | if err != nil { |
| 158 | return nil, err |
| 159 | } |
| 160 | |
| 161 | claims := auth.GetClaims(ctx) |
| 162 | if !claims.OrganizationPermissions(ctx, org.ID).ManageOrg { |
| 163 | return nil, status.Error(codes.PermissionDenied, "not allowed to list services") |
| 164 | } |
| 165 | |
| 166 | services, err := s.admin.DB.FindOrganizationMemberServices(ctx, org.ID) |
| 167 | if err != nil { |
| 168 | return nil, err |
| 169 | } |
| 170 | |
| 171 | var servicesPB []*adminv1.OrganizationMemberService |
| 172 | for _, service := range services { |
| 173 | servicesPB = append(servicesPB, orgMemberServiceToPB(service, org.ID, org.Name)) |
| 174 | } |
| 175 | |
| 176 | return &adminv1.ListServicesResponse{ |
| 177 | Services: servicesPB, |
| 178 | }, nil |
| 179 | } |
| 180 | |
| 181 | // ListProjectMemberServices lists all service accounts for a project. |
| 182 | func (s *Server) ListProjectMemberServices(ctx context.Context, req *adminv1.ListProjectMemberServicesRequest) (*adminv1.ListProjectMemberServicesResponse, error) { |
nothing calls this directly
no test coverage detected