0

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

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

有人有什么想法吗?

4

2 回答 2

0

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

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

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

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

于 2013-06-20T15:03:32.503 回答
0

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

于 2013-06-20T12:16:57.683 回答