【问题标题】:CRM 2011 Field Security based on attribute value基于属性值的 CRM 2011 Field Security
【发布时间】:2013-08-19 02:55:57
【问题描述】:

我有一种情况,我想使用字段安全性,但前提是记录上的属性是某个值。实体就是联系人,有一个位属性叫做VIP。当用户打开该记录并且 VIP 值为 true 并且他们不在 VIP 团队中时,用户将看不到标记为字段安全的字段。

是否可以编写一个插件来做到这一点,或者有更好的解决方案?

【问题讨论】:

  • 如果用户打开记​​录,VIP为假怎么办?
  • 他们可以打开记录并查看所有字段。如果是真的,只有有权访问的人才能看到标记的字段。我想我可能把安全角色和团队搞混了。现场安全仅适用于 Teams,对吗?
  • 现场安全仅适用于自定义实体,不限于团队。是否只有 VIP 字段会显示或隐藏?据我了解,用户将能够根据字段是否可见来推断联系人是否为 VIP;所以在这种情况下,我没有看到现场级安全性的意义。 JavaScript 将是显示/隐藏字段的简单选项,但字段仍将“存在”仅隐藏。
  • VIP字段不是启用安全的字段,它是另一个自定义字段。如果 VIP 值为 yes,则不在 VIP 团队中的人员将无法读取或更新自定义字段。有一个 VIP 表格,他们是唯一可以修改 VIP 字段值的人。

标签: dynamics-crm-2011 dynamics-crm


【解决方案1】:

您可以连接到表单的 onLoad 事件并检查用户的团队和 VIP 字段并相应地显示其他字段。

不确定是否有更简单的方法来获取团队,可以选择 OData 请求: http://msdn.microsoft.com/en-us/library/gg334767.aspx

命令如下所示:

var userid = Xrm.Page.context.getUserId();
var cmd = "/TeamMembershipSet?$select=TeamId&$filter=SystemUserId eq guid'" + userid + "'";

要设置字段的可见性,请查看此链接: http://danielbergsten.wordpress.com/2011/02/15/crm-2011-javascript-for-hiding-a-field-based-on-another-fields-value/

【讨论】:

  • 谢谢!因此,要执行 OData 请求,我可以使用 CRM 2011 SDK 中的 SDK.REST.js,还是使用 SDK.JQuery.js?调用命令的代码是什么?
  • 查看发布的 MSDN 链接,它列出了一些示例,例如msdn.microsoft.com/en-us/library/gg985387.aspx
【解决方案2】:

这可以通过role based forms 解决。

  • 为 VIP 团队创建新表单
  • 为新表单选择安全角色
  • 如果 VIP 字段永远不应该被低权限用户访问,那么字段级别的安全性与基于角色的表单相结合是一个好主意;甚至通过报告和其他访问数据的方法。管理现场级别的安全配置文件需要更多的工作,因为它们与安全角色完全分开;它们被分配给用户或团队。

    【讨论】:

    • 这并不能解决问题。当 VIP 值为 true 且用户不属于 VIP 团队时,我想禁用对单独字段的读取访问权限(我们称其为我最喜欢的颜色)。如果 VIP 值为 false,那么任何人都可以看到我最喜欢的颜色字段的值。
    【解决方案3】:

    在我看来,您(管理员)必须是字段级别安全角色的成员。

    我还必须重新启动 IIS/CRM 站点才能让它生效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      相关资源
      最近更新 更多