我有几个自定义实体。有两个用户:user1
和user2
。
对于一个实体类型,我在列表中有2个项目。
我只需显示user1
的一个项目,user2
仅显示第二项。
我尝试通过共享对话框管理权限,但它只能限制写入权限,但我需要在列表视图中隐藏项目。
我该怎么做?
答案 0 :(得分:2)
CRM安全模型使用安全角色限制对记录的访问。您可以使用Local Read特权设置自定义实体,这只允许用户访问他们拥有的读取记录。
User1将拥有Record1,而User2将拥有Record2。
或者,您还可以考虑使用业务单位的层次结构,这也可以对数据的可见性进行细分。
有关详细信息,请查看How role-based security can be used to control access to entities in Microsoft Dynamics CRM和The security model of Microsoft Dynamics CRM。
答案 1 :(得分:1)
你可以用两个解决方案来完成这个功能。
解决方案1:使用现场安全配置文件,在此解决方案中,您必须在字段自定义中启用字段安全性选项,然后转到自定义&gt; <定制系统>现场安全配置文件,然后您可以在上一个会话中看到启用了字段安全性选项的字段,然后单击新按钮并选择用户1,并选择权限选项,读取更新为字段1创建,并为字段2更新和用户2.(注意:此选项仅在用户没有管理员安全角色时才有效。)
解决方案2:您可以使用Javascript并处理此操作客户端。首先,您必须转到表单自定义并添加新库并添加此代码。
function onload()
{
checkUser();
}
function checkUser()
{
var userID = Xrm.Page.context.getUserId();
if( userID == "user1 id")
{
Xrm.Page.getControl("field1").setVisible(true);
Xrm.Page.getControl("field2").setVisible(false);
}
else if( userID == "user2 id")
{
Xrm.Page.getControl("field1").setVisible(false);
Xrm.Page.getControl("field2").setVisible(true);
}
}
然后在表单上加载事件调用onload函数并且结束并且所有事情都很棒:)
我希望你的问题得到解决:)