CustomPermissionDependency

Represents the dependency between two custom permissions when one custom permission requires that you enable another custom permission. This object is available in API version 32.0 and later.

Supported Calls

describeLayout()describeSObjects()query()retrieve()

Fields

Field Name Details
CustomPermissionId
Type
reference
Properties
Filter, Group, Sort
Description
The ID of the custom permission that requires the permission that’s specified in RequiredCustomPermissionId.
RequiredCustomPermissionId
Type
reference
Properties
Filter, Group, Sort
Description
The ID of the custom permission that must be enabled when CustomPermissionId is enabled.

Usage

The following Apex class contains a method that returns the IDs of all custom permissions that are required for the given custom permission ID. To use this class, save it in your organization.
public class CustomPermissionUtil {
   public String[] getAllRequiredCustomPermissions(String customPermId) {
      return getAllRequiredHelper(new String[]{customPermId});
   }
   
   private String[] getAllRequiredHelper(String[] customPermIds) {
      CustomPermissionDependency[] requiredPerms = [SELECT RequiredCustomPermissionId
                                                    FROM CustomPermissionDependency
                                                    WHERE CustomPermissionId
                                                    IN :customPermIds];
      String[] requiredPermIds = new String[]{};
      for (CustomPermissionDependency cpd : requiredPerms) {
         requiredPermIds.add(cpd.RequiredCustomPermissionId);
      }
      if (requiredPermIds.size() > 0) {
         customPermIds.addall(getAllRequiredHelper(requiredPermIds));
         return customPermIds;
      } else {
         return customPermIds;
      }
   }
}
For more information about using Apex classes, see the Lightning Platform Apex Code Developer’s Guide.

See Also