gpt4 book ai didi

Umbraco - 防止用户编辑页面名称

转载 作者:行者123 更新时间:2023-12-02 12:17:59 25 4
gpt4 key购买 nike

有人有任何建议的策略来阻止用户编辑页面名称吗?

我正在 Umbraco 上开发一个网站,其中各个合作伙伴都有自己可以专门编辑的特定页面。对此页面的访问是通过标准 Umbraco 权限进行控制的。不过,我们发现其中一些用户一直在编辑页面标题,但我们希望限制他们只能编辑内容。

我看不出有任何明显的方法可以通过内置权限来控制它。

也许可以插入一些页面预保存代码来检查用户是否具有某些权限,如果没有,则将页面名称设置为其预编辑状态?

非常感谢任何建议/指示。

最佳答案

是的,您可以连接到 Umbraco ContentService 事件并检查名称是否已更改,以及对该特定节点执行或不执行某些操作。您还可以添加一些额外的检查来确定是否允许用户更改名称(例如,您可以通过角色或任何您需要的其他内容来控制它)。

示例代码如下所示:

public class UmbracoEvents : ApplicationEventHandler
{
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
ContentService.Saving += ContentService_Saving;
}

private void ContentService_Saving(IContentService sender, Umbraco.Core.Events.SaveEventArgs<Umbraco.Core.Models.IContent> e)
{
foreach (var changedItem in e.SavedEntities)
{
var currentVersion = sender.GetById(changedItem.Id);
if (!currentVersion.Name.InvariantEquals(changedItem.Name))
{
// Additional checks here (or in the above condition) - role / property / etc...
item.Name = currentVersion.Name;
}
}
}
}

您也可以在此处阅读有关特定事件的更多信息:https://our.umbraco.org/documentation/reference/events/contentservice-events .

关于Umbraco - 防止用户编辑页面名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40117937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com