0

我正在使用 DevEx eXpressApp 框架开发项目管理类型的应用程序。我已经使用它将近一年了,但现在才开始使用它的安全模型,并且希望在定义实现需求的方法方面得到一些帮助。

我有两个课程:项目和任务。Project 包含一个子 XPCollection (Property) 的 Tasks(命名为 Tasks),这样我就可以输入 Project.Tasks.Add(Task t); 我需要做的就是想出一种方法,让用户能够查看和编辑任务集合中的特定任务。作为管理员用户,我需要一种将用户 1“分配”到项目 P1 的任务 1 和 3 以及项目 P2 的任务 4 的方法。然后我会 - 例如 - 将用户 2 分配给项目 P1 的任务 2 和 P2 的任务 1-3 将一直有新项目,所以我需要一种灵活的方式来临时分配/取消分配用户应用。

  1. 项目一

    • 任务 1 - 用户 1
    • 任务 2 - 用户 2
    • 任务 3 - 用户 1
  2. 项目 2

    • 任务 1 - 用户 2
    • 任务 2 - 用户 2
    • 任务 3 - 用户 2
    • 任务 4 - 用户 1

当用户 1 登录并单击项目 1(在 ListandDetailView 中)时,他们将只能看到分配给他们的任务。用户 2 也是如此。两个用户都不会看到任一项目的整个任务集。

我创建了一个虚拟项目,只能到达每个用户看到所有任务或看不到任何任务的地步。我认为对象权限(使用标准)方法是要走的路,但想不出要使用什么标准。

我对与安全模型相关的设计建议持开放态度。角色/组/新类等。

但请忽略此处未提及的任何可能的应用程序设计问题,例如“任务之间的依赖关系等……”我有一个非常具体的要求。

请帮忙!

额外的随机信息以防万一。

  1. 你运行的是什么版本的软件?DevExpress 12.1 (vx2)
  2. 你的操作系统是什么?视窗服务器 2008
  3. 你到底想做什么却行不通?在应用程序中设置安全性以限制登录用户查看对象子集合中特定项目的能力
  4. 问题是统一的还是不稳定的?制服
  5. 确切的错误信息是什么?还没有错误;到目前为止,我已经弄清楚如何显示集合中的所有项目或不显示
  6. 它是什么时候出现的?不适用
  7. 你究竟没有“得到”什么?如何配置安全模型以实现我的要求
  8. 您能否提供示例代码,最好是出现错误的行错误?还没有任何代码;只需选择各种读/写/导航等...复选框。
4

1 回答 1

2

你有两个选择

  • 使用此处记录的“新”安全性并使用“读取”对象权限(如您所建议的那样),其标准类似于Task.User = CurrentUserId()
  • 使用此处描述的方法处理 ViewControllers 的过滤,该方法也具有与旧(11.2 之前)安全系统一起使用的优点。

第一种方法更可取,但第二种方法为您提供更多控制权,如果您确定任务“所有权”的规则过于复杂而无法通过简单标准来描述,则可能会更好。

于 2012-08-07T09:04:14.083 回答