【问题标题】:extending the security role entity扩展安全角色实体
【发布时间】:2013-06-17 01:55:43
【问题描述】:

我想扩展安全角色实体以包含一些与我的业务相关的自定义权限。
例如,我可能想添加诸如“可以批准最​​多 X $ 的订单”或“可以更新名称以 Y 开头的潜在客户”之类的内容(当然只是一些示例)。
然后,我将在我将开发的工作流、插件和 iframe 中使用这些权限。

我还没有找到一个好的方法——据我所知,security role 实体是不可自定义的,所以我不能向它添加任何字段。
我考虑过创建一个自定义实体Role exstension,它将为我保存这些数据,并将与security role 建立1:1 的关系。但是,我还没有找到与role 实体建立关系的方法。

有人有什么想法吗?

【问题讨论】:

  • 将它添加到 SystemUser 或 Team 而不是角色呢?

标签: dynamics-crm-2011


【解决方案1】:

您是对的,您不能扩展安全角色实体。我建议设置一个名为“角色扩展”的新实体(如您所述),并将其直接与用户或具有 N:N 关系类型的团队相关联。然后,您可以使用内置的 CRM 子网格或小的 Silverlight 部件来管理角色

【讨论】:

  • 因此是(你)提到的部分。
【解决方案2】:

我认为你可以用插件很好地实现这种功能。使用插件将规则嵌入到管道中,并确保如果您使用 SDK,它们将被实施。

例如强制执行规则,只有具有“我的自定义销售角色”角色的用户才能批准超过 5 个产品的订单

  • 创建在订单状态更改时运行的插件
  • 检测数量是否 > 5
  • 如果没有,继续
  • 如果是,获取执行用户 guid
  • 检索用户角色
  • 检查“我的自定义销售角色”
  • 如果存在则允许操作,如果不存在则抛出异常 'You do not have permissions blah blah'

这将您的规则保存在一个地方(一个库可以封装所有规则)。这在一定程度上取决于你有多少,但将它们保留在管道中听起来对我来说是一种合理的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    相关资源
    最近更新 更多