在我的应用程序中添加,更新和删除各种实体的能力通常取决于所涉及的各个用户之间定义的关系。这是一个例子:
实现这些复杂和高级规则的最佳方法是什么,这些规则处理用户与实体状态(新的,现有的)之间的关系,以及其他可能与用户定义的状态相关的事情。实体?
由于
答案 0 :(得分:3)
实现这些复杂和高级规则的最佳方法是什么,这些规则处理用户与实体状态(新的,现有的)之间的关系,以及其他可能与用户定义的状态相关的事情。实体?
您希望使用授权标准,即XACML,可扩展访问控制标记语言。 XACML是:
使用XACML,您可以轻松实现关系,例如:当且仅当交易金额<1时,员工才能批准交易。员工批准限制且交易未锁定。
从哪里开始?
答案 1 :(得分:0)
在我工作的银行,我们有一个贷款管理系统,允许整个银行层级在其报告结构中查看贷款。例如,Market exec可以立即看到他/她的所有报告的贷款组合。此外,他/她能够从所有报告(直接或间接)名称的列表中进行选择,以查看该员工的投资组合。
这很复杂,但我们必须维护报告结构的人力资源数据库。一旦我们有了这个,我们构建了用户函数(也可以作为存储过程完成,但用户函数在我们的LINQ to SQL后端中运行良好),这使我们可以检查用户x是否监督用户y。
因此,在您的示例中,只要您知道谁拥有该任务,并且可以访问可用于确定任务所有者是否向当前登录用户报告的方法,您应该能够轻松启用/禁用页面上的“锁定”按钮。
支持工作在于创建报告结构DB,并使其保持最新!