Mar*_*mal 1 javascript microsoft-dynamics dynamics-crm xrm dynamics-crm-365
我正在阅读Microsoft文档中的Xrm对象,但我找不到具体的东西.
我需要限制创建或编辑门户评论(活动类型)的一些角色.因此,我不能简单地修改安全角色.
我在编辑门户网站评论表单时看到有一个JavaScript页面在页面加载时执行:
编辑时,它会使用很多这个Xrm对象.
在伪代码中我应该这样做
if(ActiveUser.hasRoles(["Some role", "Some other role"]) {
Page.setReadOnly(true);
}
Run Code Online (Sandbox Code Playgroud)
我已经有一个脚本(作为一个Web资源)来检查这样的角色,但我不知道如何使表单"只读"或仅使用Xrm.任何线索如何实现这一点?
编辑1:
我可以使用以下代码执行此操作:
// Ribbon "Save" button
document.querySelector('#crmRibbonManager').style.display = "none";
// Status "Save" button
document.querySelector('#savefooter_statuscontrol').style.display = "none";
Xrm.Page.ui.controls.get().forEach(function (control) {
if(!control.getDisabled()) {
control.setDisabled(true);
}
});
Run Code Online (Sandbox Code Playgroud)
当然,由于文档尚未加载,我收到页面加载错误.但我很确定我可以使用一些技术来禁用这些属性,我必须研究它.Xrm
你走在正确的轨道上.就像你说的那样,创建/修改你的js库web资源并在表单加载时注册,而不是编辑现有的OOB adx表单脚本js文件.在您的js代码中 - 检查当前用户的安全角色.
Xrm.Page.context.getUserRoles();
Run Code Online (Sandbox Code Playgroud)
Xrm.Page.getControl("myfield").setDisabled(true);
Run Code Online (Sandbox Code Playgroud)
Dynamics 365 CRM平台有两种形式,即只读和已禁用,当用户对该特定实体仅具有读取权限而后者为非活动记录呈现后,将加载前者.不幸的是,我们无法强制加载任何这些形式.