(ctx context.Context, req *adminv1.ListProjectInvitesRequest)
| 1089 | } |
| 1090 | |
| 1091 | func (s *Server) ListProjectInvites(ctx context.Context, req *adminv1.ListProjectInvitesRequest) (*adminv1.ListProjectInvitesResponse, error) { |
| 1092 | observability.AddRequestAttributes(ctx, |
| 1093 | attribute.String("args.org", req.Org), |
| 1094 | attribute.String("args.project", req.Project), |
| 1095 | ) |
| 1096 | |
| 1097 | proj, err := s.admin.DB.FindProjectByName(ctx, req.Org, req.Project) |
| 1098 | if err != nil { |
| 1099 | return nil, err |
| 1100 | } |
| 1101 | |
| 1102 | claims := auth.GetClaims(ctx) |
| 1103 | if !claims.ProjectPermissions(ctx, proj.OrganizationID, proj.ID).ReadProjectMembers { |
| 1104 | return nil, status.Error(codes.PermissionDenied, "not authorized to read project members") |
| 1105 | } |
| 1106 | |
| 1107 | token, err := unmarshalPageToken(req.PageToken) |
| 1108 | if err != nil { |
| 1109 | return nil, err |
| 1110 | } |
| 1111 | pageSize := validPageSize(req.PageSize) |
| 1112 | |
| 1113 | // get pending user invites for this project |
| 1114 | userInvites, err := s.admin.DB.FindProjectInvites(ctx, proj.ID, token.Val, pageSize) |
| 1115 | if err != nil { |
| 1116 | return nil, err |
| 1117 | } |
| 1118 | |
| 1119 | nextToken := "" |
| 1120 | if len(userInvites) >= pageSize { |
| 1121 | nextToken = marshalPageToken(userInvites[len(userInvites)-1].Email) |
| 1122 | } |
| 1123 | |
| 1124 | invitesDtos := make([]*adminv1.ProjectInvite, len(userInvites)) |
| 1125 | for i, invite := range userInvites { |
| 1126 | invitesDtos[i] = projInviteToPB(invite) |
| 1127 | } |
| 1128 | |
| 1129 | return &adminv1.ListProjectInvitesResponse{ |
| 1130 | Invites: invitesDtos, |
| 1131 | NextPageToken: nextToken, |
| 1132 | }, nil |
| 1133 | } |
| 1134 | |
| 1135 | func (s *Server) AddProjectMemberUser(ctx context.Context, req *adminv1.AddProjectMemberUserRequest) (*adminv1.AddProjectMemberUserResponse, error) { |
| 1136 | observability.AddRequestAttributes(ctx, |
nothing calls this directly
no test coverage detected