限制WFFM插入表单向导的特定部分的最佳方法是什么?
具体来说,我想限制某些用户从头开始创建表单,并且只允许他们复制现有表单。我可以不用代码吗?在我看不到的地方埋葬了什么环境?
答案 0 :(得分:1)
我认为没有可用的设置或权限来控制你的要求。
您可以尝试的一种方法是对Sitecore.Forms.Shell.UI.CreateFormWizard类(在Sitecore.Forms.Core程序集中)进行子类化。然后,您将覆盖OnLoad方法,执行一些逻辑以确定当前用户是否应该能够通过向导创建新表单,然后显示/隐藏单选按钮以创建新表单。
这样的事情:
public class CreateFormWizardExtended : Sitecore.Forms.Shell.UI.CreateFormWizard
{
protected override void OnLoad(EventArgs e)
{
base.CreateBlankForm.Visible = Sitecore.Context.User.IsInRole("sitecore\\AllowedToCreateForms");
base.OnLoad(e);
}
}
然后,您需要修改CreateFormWizard xml控件:
/ sitecore / shell / Applications / Modules / Web Forms For 营销/ CreateFormWizard.xml
更改此行:
<WizardForm CodeBeside="Sitecore.Forms.Shell.UI.CreateFormWizard, Sitecore.Forms.Core">
改为使用您刚创建的类,如下所示:
<WizardForm CodeBeside="MyNamespace.CreateFormWizardExtended, MyAssembly">
我没有测试过这种方法,但理论上它应该可行。
希望这有帮助!