Detailed Object and Field-Level Security using Apex Describe Information

DEX602 - Unit 2 Introducing Lightning Web Components

📄 第 160 页 🎬 视频课程

课程章节介绍

今天我们来聊聊如何在Salesforce中使用Apex代码来确保对象和字段级别的安全性。这个话题非常重要,因为它关系到我们如何保护数据不被未授权的用户访问或修改。 首先,我们来看一个简单的Apex方法示例,这个方法叫做`createContact`,它的目的是创建一个新的联系人记录。在这个方法中,我们首先定义了一个集合`fieldsToCheck`,这个集合包含了我们需要检查权限的字段,比如联系人的名字、姓氏、电话和关联的账户ID。 接下来,我们创建了一个`NoAccessException`的实例,这是一个自定义的异常类,用来在用户没有权限时抛出异常。 然后,我们使用`Contact.sobjectType.getDescribe().isCreateable()`来检查当前用户是否有权限创建联系人记录。如果没有权限,我们就设置异常信息并抛出异常。 之后,我们遍历`fieldsToCheck`集合中的每一个字段,使用`field.getDescribe().isCreateable()`来检查用户是否有权限创建这些字段。如果用户没有权限,我们同样设置异常信息并抛出异常。 如果所有的检查都通过了,那么我们就可以安全地插入新的联系人记录了。 这个方法的核心思想是尊重运行用户的对象和字段访问权限。通过这种方式,我们可以确保只有具有适当权限的用户才能执行特定的操作。 最后,我还想提一下,如果你需要比`WITH_SECURITY_ENFORCED`更精细的控制,你可以选择使用Apex Describe信息来检查和强制用户访问对象或字段。这种方法可以让你在用户没有权限时,优雅地响应而不是直接抛出错误。 希望这个解释对你有帮助,如果你有任何问题,随时问我!