2

何らかの理由で、Apex で EmailTemplates または Folders をクエリすると、ユーザーに関係なくすべての EmailTemplates または Folders が返されます。通常、クエリは、現在のユーザーが表示する権限を (少なくとも) 持っているレコードのみを返します。現在のユーザーがアクセスできる 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]; 
4

1 に答える 1

0

私はそれを考え出した。カスタム クラス定義に「 with sharing 」を追加する必要がありました。これにより、クエリ時にユーザーのアクセス許可が考慮されました。

于 2012-05-22T13:12:03.937 に答える