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

Method SudoGetResource

admin/server/users.go:462–509  ·  view source on GitHub ↗
(ctx context.Context, req *adminv1.SudoGetResourceRequest)

Source from the content-addressed store, hash-verified

460}
461
462func (s *Server) SudoGetResource(ctx context.Context, req *adminv1.SudoGetResourceRequest) (*adminv1.SudoGetResourceResponse, error) {
463 claims := auth.GetClaims(ctx)
464 if !claims.Superuser(ctx) {
465 return nil, status.Error(codes.PermissionDenied, "only superusers can lookup resource")
466 }
467
468 res := &adminv1.SudoGetResourceResponse{}
469 switch id := req.Id.(type) {
470 case *adminv1.SudoGetResourceRequest_UserId:
471 user, err := s.admin.DB.FindUser(ctx, id.UserId)
472 if err != nil {
473 return nil, err
474 }
475 res.Resource = &adminv1.SudoGetResourceResponse_User{User: s.userToPB(user, false)}
476 case *adminv1.SudoGetResourceRequest_OrgId:
477 org, err := s.admin.DB.FindOrganization(ctx, id.OrgId)
478 if err != nil {
479 return nil, err
480 }
481 res.Resource = &adminv1.SudoGetResourceResponse_Org{Org: s.organizationToDTO(org, true)}
482 case *adminv1.SudoGetResourceRequest_ProjectId:
483 proj, err := s.admin.DB.FindProject(ctx, id.ProjectId)
484 if err != nil {
485 return nil, err
486 }
487 org, err := s.admin.DB.FindOrganization(ctx, proj.OrganizationID)
488 if err != nil {
489 return nil, err
490 }
491 res.Resource = &adminv1.SudoGetResourceResponse_Project{Project: s.projToDTO(proj, org.Name)}
492 case *adminv1.SudoGetResourceRequest_DeploymentId:
493 depl, err := s.admin.DB.FindDeployment(ctx, id.DeploymentId)
494 if err != nil {
495 return nil, err
496 }
497 res.Resource = &adminv1.SudoGetResourceResponse_Deployment{Deployment: deploymentToDTO(depl)}
498 case *adminv1.SudoGetResourceRequest_InstanceId:
499 depl, err := s.admin.DB.FindDeploymentByInstanceID(ctx, id.InstanceId)
500 if err != nil {
501 return nil, err
502 }
503 res.Resource = &adminv1.SudoGetResourceResponse_Instance{Instance: deploymentToDTO(depl)}
504 default:
505 return nil, status.Errorf(codes.Internal, "unexpected resource type %T", id)
506 }
507
508 return res, nil
509}
510
511func (s *Server) GetUser(ctx context.Context, req *adminv1.GetUserRequest) (*adminv1.GetUserResponse, error) {
512 claims := auth.GetClaims(ctx)

Callers

nothing calls this directly

Calls 13

userToPBMethod · 0.95
organizationToDTOMethod · 0.95
projToDTOMethod · 0.95
GetClaimsFunction · 0.92
deploymentToDTOFunction · 0.85
SuperuserMethod · 0.65
FindUserMethod · 0.65
FindOrganizationMethod · 0.65
FindProjectMethod · 0.65
FindDeploymentMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected