2011-12-07 5 views
1

何らかの理由で、ApexでEmailTemplatesまたはFoldersをクエリするたびに、Userに関係なくすべてのEmailTemplatesまたはFoldersが返されます。通常、クエリは、現在のユーザーが表示する権限を持つレコードのみを返します(最低限)。現在のユーザーがアクセスできる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"を追加する必要がありました。これは、クエリの際にユーザーの権限を考慮に入れました。