gpt4 book ai didi

javascript - 当 Breeze 导航属性受权限控制时访问它们

转载 作者:行者123 更新时间:2023-12-03 10:59:07 28 4
gpt4 key购买 nike

假设我有两个实体“位置”和“假期”。假期与位置相关联。因此,在 Breeze 中,我可以编写如下查询来检索与特定位置相关的假期:

 return EntityQuery.from('GetLocationById')
.withParameters({ clientId: clientId, locationId : locationId })
.extend("Holidays")
.using(self.manager)
.execute()
.then(querySucceeded, this._queryFailed);

但是,这种数据检索是基于权限的。 IE。位置和假期有两个权​​限。可能的是,尽管用户拥有位置权限,但他可能没有假期权限。无论如何,我仍然可以使用extend()方法来检索假期,同时考虑权限?或者,在检查权限后,我是否必须在 Controller 中公开一个单独的方法来检索假期?

最佳答案

在您的示例中,您正在调用一个名为 GetLocationById 的 Controller 操作,您正在寻找的行为是让该操作返回位置(如果用户有权访问位置)以及相关假期(如果用户有权访问假期)。

一种方法是不在实体查询中使用扩展,而是让服务器根据用户权限决定是否包含假期。例如:

public Location GetLocationById(id) 
{
var query = context.Locations;
if (user can access holidays)
query = query.Include('Holidays');
return query.Where(l => l.Id == id).SingleOrDefault();
}

我在这里做了很多假设 - 如果我误解了,请原谅我。

关于javascript - 当 Breeze 导航属性受权限控制时访问它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28165271/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com