2011-12-14 79 views
1

有没有办法只返回当前用户有权写入的帐户(使用SOQL)?如何根据用户权限查询记录?

例如,如果我转到特定的帐户并单击[共享]按钮,我可以看到有权访问该记录的用户(和组)的列表。当作为其中一个用户登录时,我可以运行SOQL语句(通过Visualforce页面上的自定义Controller)来检索帐户记录。但是,我想确保仅当用户有权写入(或编辑)该记录时才会返回帐户记录。有任何想法吗?提前致谢!

回答

1

强制共享的方式是使用with sharing关键字。如果出于任何原因不想执行此操作,则可以将DML语句包装在try模块中,以获得DMLException。请在异常对象上调用getDmlType()以查看失败是否与权限相关。我认为状态代码将是System.StatusCode.INSUFFICIENT_ACCESS_OR_READONLY。这里有一个完整的status codes列表。

+0

我正在使用`with sharing`关键字,但我仍然收到不可写的记录。 – 2011-12-14 20:10:02