MCPcopy Create free account
hub / github.com/rilldata/rill / SetProjectMemberServiceRole

Method SetProjectMemberServiceRole

admin/server/service.go:326–365  ·  view source on GitHub ↗
(ctx context.Context, req *adminv1.SetProjectMemberServiceRoleRequest)

Source from the content-addressed store, hash-verified

324}
325
326func (s *Server) SetProjectMemberServiceRole(ctx context.Context, req *adminv1.SetProjectMemberServiceRoleRequest) (*adminv1.SetProjectMemberServiceRoleResponse, error) {
327 observability.AddRequestAttributes(ctx,
328 attribute.String("args.name", req.Name),
329 attribute.String("args.organization", req.Org),
330 attribute.String("args.project", req.Project),
331 attribute.String("args.role", req.Role),
332 )
333
334 org, err := s.admin.DB.FindOrganizationByName(ctx, req.Org)
335 if err != nil {
336 return nil, err
337 }
338
339 claims := auth.GetClaims(ctx)
340 if !claims.OrganizationPermissions(ctx, org.ID).ManageOrg {
341 return nil, status.Error(codes.PermissionDenied, "not allowed to update org")
342 }
343
344 project, err := s.admin.DB.FindProjectByName(ctx, req.Org, req.Project)
345 if err != nil {
346 return nil, err
347 }
348
349 service, err := s.admin.DB.FindServiceByName(ctx, org.ID, req.Name)
350 if err != nil {
351 return nil, err
352 }
353
354 projectRole, err := s.admin.DB.FindProjectRole(ctx, req.Role)
355 if err != nil {
356 return nil, err
357 }
358
359 err = s.admin.DB.UpsertProjectMemberServiceRole(ctx, service.ID, project.ID, projectRole.ID)
360 if err != nil {
361 return nil, err
362 }
363
364 return &adminv1.SetProjectMemberServiceRoleResponse{}, nil
365}
366
367func (s *Server) RemoveProjectMemberService(ctx context.Context, req *adminv1.RemoveProjectMemberServiceRequest) (*adminv1.RemoveProjectMemberServiceResponse, error) {
368 observability.AddRequestAttributes(ctx,

Callers

nothing calls this directly

Calls 10

AddRequestAttributesFunction · 0.92
GetClaimsFunction · 0.92
StringMethod · 0.65
FindProjectByNameMethod · 0.65
FindServiceByNameMethod · 0.65
FindProjectRoleMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected