def delete(self, ref_or_id, requester_user):
        """
        Delete a policy.
        Handles requests:
            POST /policies/1?_method=delete
            DELETE /policies/1
            DELETE /policies/mypack.mypolicy
        """
        op = "DELETE /policies/%s/" % ref_or_id

        db_model = self._get_by_ref_or_id(ref_or_id=ref_or_id)
        LOG.debug("%s found object: %s", op, db_model)

        permission_type = PermissionType.POLICY_DELETE
        rbac_utils = get_rbac_backend().get_utils_class()
        rbac_utils.assert_user_has_resource_db_permission(
            user_db=requester_user,
            resource_db=db_model,
            permission_type=permission_type,
        )

        try:
            validate_not_part_of_system_pack(db_model)
        except ValueValidationException as e:
            LOG.exception("%s unable to delete object from system pack.", op)
            abort(http_client.BAD_REQUEST, six.text_type(e))

        try:
            self.access.delete(db_model)
        except Exception as e:
            LOG.exception("%s unable to delete object: %s", op, db_model)
            abort(http_client.INTERNAL_SERVER_ERROR, six.text_type(e))
            return

        LOG.debug("%s deleted object: %s", op, db_model)
        LOG.audit(
            "Policy deleted. Policy.id=%s" % (db_model.id),
            extra={"policy_db": db_model},
        )

        # return None
        return Response(status=http_client.NO_CONTENT)

        Delete a policy.
        Handles requests:
            POST /policies/1?_method=delete
            DELETE /policies/1
            DELETE /policies/mypack.mypolicy
        
st2api/st2api/controllers/v1/policies.py