Salesforce中有一個readonly的Object:UserRecordAccess,這個Object可以幫助你判斷,某個使用者對于某條資料是否有權限。
代碼如下
SELECT
RecordId
, HasReadAccess
, HasEditAccess
, HasDeleteAccess
FROM
UserRecordAccess
WHERE
UserId=:UserInfo.getUserId()
AND
RecordId =: Account.Id];
但是這個方法一次最多隻能抽出200條資料。這個方法隻在24.0之後才支援。
30.0之後可以作為一個外鍵來使用
SELECT Id, Name, UserRecordAccess.HasReadAccess, UserRecordAccess.HasTransferAccess, UserRecordAccess.MaxAccessLevel
FROM Account
但是如果執行的人對于這條資料沒有權限,那麼就檢索不出來,如果已經有了,那麼還需要看他有沒有權限嗎?可能隻對于需要判斷編輯或者其他的一些權限的才需要用到