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
但是如果执行的人对于这条数据没有权限,那么就检索不出来,如果已经有了,那么还需要看他有没有权限吗?可能只对于需要判断编辑或者其他的一些权限的才需要用到