0

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

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

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

4

1 回答 1

1

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

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

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();
}

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

于 2015-01-28T04:12:53.020 回答