0

두 위치와 휴일이 있습니다. 휴일은 위치와 관련됩니다. 다음과 같은 따라서, 바람에 나는 특정 위치와 관련된 휴일을 검색하는 쿼리를 작성할 수 있습니다권한이 제어 될 때 breeze 탐색 속성에 액세스

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

그러나,이 데이터 검색 기반 권한입니다. 나는. 위치 및 휴일에는 두 가지 권한이 있습니다. 사용자에게 위치에 대한 권한이 있지만 휴일에 대한 권한이 없을 수 있습니다. 어쨌든 권한을 고려하면서 동시에 휴일을 검색하기 위해 extend() 메서드를 사용할 수 있습니까? 그렇지 않으면 권한을 확인한 후 공휴일을 검색하기 위해 컨트롤러에 별도의 메서드를 표시해야합니까?

답변

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

오해의 여지가 있다면 여기에서 많은 가정을합니다. 용서하십시오.