2017-11-10 27 views
1

Umbraco 사용자 ID (현재 사용자 ID 아님)와 게시 된 콘텐츠 ID가 있는데이 사용자가이 콘텐츠를 볼 수 있는지 확인하려면 어떻게해야합니까? 나는이 API를 발견umbraco 사용자가 게시 된 콘텐츠를 볼 수 있는지 확인합니다.

Access.HasAccess(int documentId, memberId) 

을하지만 그것은`는 사용되지 않는 것으로 표시했습니다. 이것을 달성하는 다른 방법은 없습니까? 현재 구성원에 대한

+0

는 (이하 "사용 Umbraco.Core.Services"를 기억) ApplicationContext.Current.Services.PublicAccessService.HasAccess 봤어 – Eyescream

답변

0

당신이해야 사용자

https://our.umbraco.org/documentation/reference/querying/umbracohelper/

그래서 당신이 할 수 예를 들어 현재 페이지 회원의 자식을 표시하려면이 같은 뭔가에 액세스 할 수있는 UmbracoHelper.MemberHasAccess 방법 :

var children = Model.Content.Children.Where(c => Umbraco.MemberHasAccess(c.Path)); 

하지만 현재 회원이 아니므로 질문을 확장하여 수행하려는 작업을 이해할 수 있습니까? 내가 이것을 사용하고

0

는 :

int memberId; 
int nodeId; 


var publicAccessService = ApplicationContext.Current.Services.PublicAccessService; 
var contentService = ApplicationContext.Current.Services.ContentService; 
var memberService = ApplicationContext.Current.Services.MemberService; 

var member = memberService.GetById(memberId); 
var rolesList = Roles.GetRolesForUser(member.Username); 


if(publicAccessService.HasAccess(nodeId, contentService, rolesList)) 
{ 
    // has access 
} 
{ 
    // does NOT have access 
}