2011-12-07 2 views
1

몇 가지 이유로 Apex에서 EmailTemplates 또는 Folders를 쿼리 할 때마다 User에 관계없이 모든 EmailTemplates 또는 폴더가 반환됩니다. 일반적으로 쿼리는 현재 사용자가 볼 수있는 권한이있는 레코드 만 반환합니다 (최소). 현재 사용자가 액세스 할 수있는 EmailTemplates 만 쿼리 할 수 ​​있습니까 (전자 메일 폴더에 정의 된 권한을 기반으로)?사용자/프로필 권한을 기반으로 EmailTemplates를 쿼리 할 수 ​​있습니까?

는 여기에 지금까지이 작업은 다음과 같습니다

Set<ID> FolderIds = new Set<ID>(); 
List<Folder> Folders = [Select Id, Name From Folder Where Type = 'Email']; 
for(Folder F : Folders) { FolderIds.add(F.Id); } 

List<EmailTemplate> Templates = [Select Id, Name, IsActive, Folder.Name 
    From EmailTemplate 
    Where IsActive = true 
    And Folder.Id IN :FolderIds 
    ORDER BY Folder.Name, Name]; 
+0

이제 '답변 됨'이므로 답변을 답변으로 추가하고이 질문에 답변으로 표시 할 수 있습니까? 그렇지 않으면 답이 나오지 않는 것으로 보입니다. – Born2BeMild

답변

0

내가 그것을 알아 냈어. 내 맞춤 클래스 정의에 "with sharing"을 추가해야했습니다. 이로 인해 쿼리 할 때 사용자 권한이 고려되었습니다.