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

Method ListProjectMemberUsers

admin/server/projects.go:1038–1089  ·  view source on GitHub ↗
(ctx context.Context, req *adminv1.ListProjectMemberUsersRequest)

Source from the content-addressed store, hash-verified

1036}
1037
1038func (s *Server) ListProjectMemberUsers(ctx context.Context, req *adminv1.ListProjectMemberUsersRequest) (*adminv1.ListProjectMemberUsersResponse, error) {
1039 observability.AddRequestAttributes(ctx,
1040 attribute.String("args.org", req.Org),
1041 attribute.String("args.project", req.Project),
1042 )
1043
1044 proj, err := s.admin.DB.FindProjectByName(ctx, req.Org, req.Project)
1045 if err != nil {
1046 return nil, err
1047 }
1048
1049 claims := auth.GetClaims(ctx)
1050 forceAccess := claims.Superuser(ctx) && req.SuperuserForceAccess
1051 if !claims.ProjectPermissions(ctx, proj.OrganizationID, proj.ID).ReadProjectMembers && !forceAccess {
1052 return nil, status.Error(codes.PermissionDenied, "not authorized to read project members")
1053 }
1054
1055 token, err := unmarshalPageToken(req.PageToken)
1056 if err != nil {
1057 return nil, err
1058 }
1059 pageSize := validPageSize(req.PageSize)
1060
1061 var roleID string
1062 if req.Role != "" {
1063 role, err := s.admin.DB.FindProjectRole(ctx, req.Role)
1064 if err != nil {
1065 return nil, err
1066 }
1067 roleID = role.ID
1068 }
1069
1070 members, err := s.admin.DB.FindProjectMemberUsers(ctx, proj.OrganizationID, proj.ID, roleID, token.Val, pageSize)
1071 if err != nil {
1072 return nil, err
1073 }
1074
1075 nextToken := ""
1076 if len(members) >= pageSize {
1077 nextToken = marshalPageToken(members[len(members)-1].Email)
1078 }
1079
1080 dtos := make([]*adminv1.ProjectMemberUser, len(members))
1081 for i, member := range members {
1082 dtos[i] = projMemberUserToPB(member)
1083 }
1084
1085 return &adminv1.ListProjectMemberUsersResponse{
1086 Members: dtos,
1087 NextPageToken: nextToken,
1088 }, nil
1089}
1090
1091func (s *Server) ListProjectInvites(ctx context.Context, req *adminv1.ListProjectInvitesRequest) (*adminv1.ListProjectInvitesResponse, error) {
1092 observability.AddRequestAttributes(ctx,

Callers

nothing calls this directly

Calls 13

AddRequestAttributesFunction · 0.92
GetClaimsFunction · 0.92
unmarshalPageTokenFunction · 0.85
validPageSizeFunction · 0.85
marshalPageTokenFunction · 0.85
projMemberUserToPBFunction · 0.85
StringMethod · 0.65
FindProjectByNameMethod · 0.65
SuperuserMethod · 0.65
ProjectPermissionsMethod · 0.65
FindProjectRoleMethod · 0.65

Tested by

no test coverage detected