有没有一种方法可以根据 webhook 的存在来确定在 Episerver 中发布表单的权限?

Is there a way to base the rights to publish a form in Episerver based on the presence of webhooks?

我们在 Episerver 中使用两个用户组,网络编辑器和扩展网络编辑器。通常,两者都应该能够创建和发布表单。但是,如果指定了一个或多个 webhook,则只有扩展的 Web 编辑器才能发布表单。如果可能的话,如何实现这一目标?

我最初的想法是使用 InitializationModule 并为 PublishingContent 事件添加处理程序,但我还没有找到访问 webhooks 信息的方法。

如有任何见解,我们将不胜感激。

您或许可以使用 PublishingContent 事件来查看是否满足先决条件。

如果没有,您可以通过直观的消息取消事件,让编辑知道他们不允许发布内容(即本例中的表单)。

示例:https://world.episerver.com/blogs/Janaka-Fernando/Dates/2015/4/adding-custom-logic-to-your-publishing-step/

使用 PublishingContent 事件效果很好,我得到了我需要的关于 webhooks 信息的答案:world.episerver.com/forum/developer-forum

我在尝试访问此信息时犯了这个错误:

myBlock.Property["CallWebhookAfterSubmissionActor"]

从这里我可以提取一个 webhook 列表,但它始终是空的。我没有意识到的是,由于我们使用的是自定义角色,属性 的名称必须与 class 的名称相匹配。这基本上就是我最终得到的:

myBlock.GetPropertyValue<IEnumerable<CustomWebhookActorModel>>("CustomCallWebhookAfterSubmissionActor")