(ctx context.Context, req *adminv1.ListUsergroupMemberUsersRequest)
| 654 | } |
| 655 | |
| 656 | func (s *Server) ListUsergroupMemberUsers(ctx context.Context, req *adminv1.ListUsergroupMemberUsersRequest) (*adminv1.ListUsergroupMemberUsersResponse, error) { |
| 657 | observability.AddRequestAttributes(ctx, |
| 658 | attribute.String("args.org", req.Org), |
| 659 | attribute.String("args.usergroup", req.Usergroup), |
| 660 | ) |
| 661 | |
| 662 | group, err := s.admin.DB.FindUsergroupByName(ctx, req.Org, req.Usergroup) |
| 663 | if err != nil { |
| 664 | return nil, err |
| 665 | } |
| 666 | |
| 667 | claims := auth.GetClaims(ctx) |
| 668 | if !claims.OrganizationPermissions(ctx, group.OrgID).ReadOrgMembers { |
| 669 | return nil, status.Error(codes.PermissionDenied, "not allowed to list user group members") |
| 670 | } |
| 671 | |
| 672 | token, err := unmarshalPageToken(req.PageToken) |
| 673 | if err != nil { |
| 674 | return nil, err |
| 675 | } |
| 676 | pageSize := validPageSize(req.PageSize) |
| 677 | |
| 678 | members, err := s.admin.DB.FindUsergroupMemberUsers(ctx, group.ID, token.Val, pageSize) |
| 679 | if err != nil { |
| 680 | return nil, err |
| 681 | } |
| 682 | |
| 683 | nextToken := "" |
| 684 | if len(members) >= pageSize { |
| 685 | nextToken = marshalPageToken(members[len(members)-1].Email) |
| 686 | } |
| 687 | |
| 688 | dtos := make([]*adminv1.UsergroupMemberUser, len(members)) |
| 689 | for i, member := range members { |
| 690 | dtos[i] = usergroupMemberUserToPB(member) |
| 691 | } |
| 692 | |
| 693 | return &adminv1.ListUsergroupMemberUsersResponse{ |
| 694 | Members: dtos, |
| 695 | NextPageToken: nextToken, |
| 696 | }, nil |
| 697 | } |
| 698 | |
| 699 | func (s *Server) ListUsergroupsForProjectAndUser(ctx context.Context, req *adminv1.ListUsergroupsForProjectAndUserRequest) (*adminv1.ListUsergroupsForProjectAndUserResponse, error) { |
| 700 | observability.AddRequestAttributes(ctx, |
nothing calls this directly
no test coverage detected