DeletePolicy deletes a policy for a specific resource.
(ctx context.Context, req *connect.Request[v1pb.DeletePolicyRequest])
| 277 | |
| 278 | // DeletePolicy deletes a policy for a specific resource. |
| 279 | func (s *OrgPolicyService) DeletePolicy(ctx context.Context, req *connect.Request[v1pb.DeletePolicyRequest]) (*connect.Response[emptypb.Empty], error) { |
| 280 | policy, _, err := s.findPolicyMessage(ctx, req.Msg.Name) |
| 281 | if err != nil { |
| 282 | return nil, err |
| 283 | } |
| 284 | |
| 285 | var perm permission.Permission |
| 286 | switch policy.Type { |
| 287 | case storepb.Policy_MASKING_EXEMPTION: |
| 288 | perm = permission.PoliciesDeleteMaskingExemptionPolicy |
| 289 | case storepb.Policy_MASKING_RULE: |
| 290 | perm = permission.PoliciesDeleteMaskingRulePolicy |
| 291 | default: |
| 292 | perm = permission.PoliciesDelete |
| 293 | } |
| 294 | if err := s.checkPolicyPermission(ctx, req, perm, policy); err != nil { |
| 295 | return nil, err |
| 296 | } |
| 297 | |
| 298 | if err := s.store.DeletePolicy(ctx, policy); err != nil { |
| 299 | return nil, connect.NewError(connect.CodeInternal, err) |
| 300 | } |
| 301 | |
| 302 | return connect.NewResponse(&emptypb.Empty{}), nil |
| 303 | } |
| 304 | |
| 305 | // extractPolicyTypeFromName extracts the policy type from a policy name. |
| 306 | func extractPolicyTypeFromName(policyName string) (storepb.Policy_Type, error) { |
nothing calls this directly
no test coverage detected