MCPcopy Create free account
hub / github.com/bytebase/bytebase / GetIamPolicy

Method GetIamPolicy

backend/api/v1/project_service.go:551–578  ·  view source on GitHub ↗

GetIamPolicy returns the IAM policy for a project.

(ctx context.Context, req *connect.Request[v1pb.GetIamPolicyRequest])

Source from the content-addressed store, hash-verified

549
550// GetIamPolicy returns the IAM policy for a project.
551func (s *ProjectService) GetIamPolicy(ctx context.Context, req *connect.Request[v1pb.GetIamPolicyRequest]) (*connect.Response[v1pb.IamPolicy], error) {
552 projectID, err := common.GetProjectID(req.Msg.Resource)
553 if err != nil {
554 return nil, connect.NewError(connect.CodeInvalidArgument, err)
555 }
556 workspaceID := common.GetWorkspaceIDFromContext(ctx)
557 project, err := s.store.GetProject(ctx, &store.FindProjectMessage{
558 Workspace: workspaceID,
559 ResourceID: &projectID,
560 })
561 if err != nil {
562 return nil, connect.NewError(connect.CodeInternal, err)
563 }
564 if project == nil {
565 return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("cannot found project %s", projectID))
566 }
567
568 policy, err := s.store.GetProjectIamPolicy(ctx, workspaceID, project.ResourceID)
569 if err != nil {
570 return nil, connect.NewError(connect.CodeInternal, err)
571 }
572
573 iamPolicy, err := convertToV1IamPolicy(policy)
574 if err != nil {
575 return nil, err
576 }
577 return connect.NewResponse(iamPolicy), nil
578}
579
580// SetIamPolicy sets the IAM policy for a project.
581func (s *ProjectService) SetIamPolicy(ctx context.Context, req *connect.Request[v1pb.SetIamPolicyRequest]) (*connect.Response[v1pb.IamPolicy], error) {

Callers

nothing calls this directly

Calls 6

GetProjectIDFunction · 0.92
convertToV1IamPolicyFunction · 0.85
ErrorfMethod · 0.80
GetProjectIamPolicyMethod · 0.80
GetProjectMethod · 0.65

Tested by

no test coverage detected