MCPcopy Index your code
hub / github.com/rilldata/rill / ListProjectMemberUsergroups

Method ListProjectMemberUsergroups

admin/server/usergroups.go:207–257  ·  view source on GitHub ↗
(ctx context.Context, req *adminv1.ListProjectMemberUsergroupsRequest)

Source from the content-addressed store, hash-verified

205}
206
207func (s *Server) ListProjectMemberUsergroups(ctx context.Context, req *adminv1.ListProjectMemberUsergroupsRequest) (*adminv1.ListProjectMemberUsergroupsResponse, error) {
208 observability.AddRequestAttributes(ctx,
209 attribute.String("args.org", req.Org),
210 attribute.String("args.project", req.Project),
211 )
212
213 proj, err := s.admin.DB.FindProjectByName(ctx, req.Org, req.Project)
214 if err != nil {
215 return nil, err
216 }
217
218 claims := auth.GetClaims(ctx)
219 if !claims.ProjectPermissions(ctx, proj.OrganizationID, proj.ID).ReadProjectMembers {
220 return nil, status.Error(codes.PermissionDenied, "not allowed to list project user groups")
221 }
222
223 token, err := unmarshalPageToken(req.PageToken)
224 if err != nil {
225 return nil, err
226 }
227 pageSize := validPageSize(req.PageSize)
228
229 var roleID string
230 if req.Role != "" {
231 role, err := s.admin.DB.FindProjectRole(ctx, req.Role)
232 if err != nil {
233 return nil, err
234 }
235 roleID = role.ID
236 }
237
238 members, err := s.admin.DB.FindProjectMemberUsergroups(ctx, proj.ID, roleID, req.IncludeCounts, token.Val, pageSize)
239 if err != nil {
240 return nil, err
241 }
242
243 nextToken := ""
244 if len(members) >= pageSize {
245 nextToken = marshalPageToken(members[len(members)-1].Name)
246 }
247
248 dtos := make([]*adminv1.MemberUsergroup, len(members))
249 for i, m := range members {
250 dtos[i] = memberUsergroupToPB(m)
251 }
252
253 return &adminv1.ListProjectMemberUsergroupsResponse{
254 Members: dtos,
255 NextPageToken: nextToken,
256 }, nil
257}
258
259func (s *Server) DeleteUsergroup(ctx context.Context, req *adminv1.DeleteUsergroupRequest) (*adminv1.DeleteUsergroupResponse, error) {
260 observability.AddRequestAttributes(ctx,

Callers

nothing calls this directly

Calls 12

AddRequestAttributesFunction · 0.92
GetClaimsFunction · 0.92
unmarshalPageTokenFunction · 0.85
validPageSizeFunction · 0.85
marshalPageTokenFunction · 0.85
memberUsergroupToPBFunction · 0.85
StringMethod · 0.65
FindProjectByNameMethod · 0.65
ProjectPermissionsMethod · 0.65
FindProjectRoleMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected