ntn*_*nng 9 permissions crud salesforce apex-code
根据要求,如果用户没有对第三个对象的读访问权,我必须更改帐户的所有者.
我需要一个类似于isAccessible()描述字段结果的方法的功能,但它仅适用于当前登录的用户.
有没有其他方法可以检查用户对Apex代码中对象的CRUD权限?
我在我的博客上写了一篇关于此的文章。API 24.0 版(Spring 版本)中刚刚发布了一项功能,可让您针对当前用户逐条记录地执行此操作。
以下是该博客条目的链接,其中包含详细信息:如何判断用户是否有权访问记录
从文档中。听起来你想使用匿名执行。
\n\nApex 通常在系统上下文中运行;也就是说,在代码执行期间不会考虑当前用户的权限、字段级安全性和共享规则。\xe2\x80\x8b 此规则的唯一例外是 Apex 代码,即通过executeAnonymous 调用执行。executeAnonymous 始终使用当前用户的完全权限执行。有关executeAnonymous的更多信息,请参阅匿名块。
\n\n虽然 Apex 默认情况下不强制执行对象级和字段级权限,但您可以通过显式调用 sObject 描述结果方法(Schema.DescribeSObjectResult)和字段描述结果方法(Schema.DescribeSObjectResult)在代码中强制执行这些权限。描述字段结果),检查当前用户的访问权限级别。通过这种方式,您可以验证当前用户是否具有必要的权限,只有当他或她具有足够的权限时,您才能执行特定的DML操作或查询。
\n\n例如,您可以调用 Schema.DescribeSObjectResult 的 isAccessible、isCreateable 或 isUpdateable 方法来分别验证当前用户是否具有对 sObject 的读取、创建或更新访问权限。同样,Schema.DescribeFieldResult 公开这些访问控制方法,您可以调用这些方法来检查当前用户对字段的读取、创建或更新访问权限。此外,您还可以调用Schema.DescribeSObjectResult提供的isDeletable方法来检查当前用户是否有权删除特定的sObject。
\n\n\n