$params['values'] = ['contact_type' => $entityType];
$entityType = 'Contact';
}
- $getFields = civicrm_api4($entityType, 'getFields', $params);
- // Merge field definition data with whatever's already in the markup
+ // Merge field definition data with whatever's already in the markup.
+ // If the admin has chosen to include this field on the form, then it's OK for us to get metadata about the field - regardless of user's other permissions.
+ $getFields = civicrm_api4($entityType, 'getFields', $params + ['checkPermissions' => FALSE]);
$deep = ['input_attrs'];
foreach ($getFields as $fieldInfo) {
$existingFieldDefn = trim(pq($afField)->attr('defn') ?: '');
}
}
+/**
+ * Implements hook_civicrm_permissionList().
+ *
+ * @see CRM_Utils_Hook::permissionList()
+ */
+function afform_civicrm_permissionList(&$permissions) {
+ $scanner = Civi::service('afform_scanner');
+ foreach ($scanner->getMetas() as $name => $meta) {
+ $permissions['@afform:' . $name] = [
+ 'group' => 'afform',
+ 'title' => ts('Afform: Inherit permission of %1', [
+ 1 => $name,
+ ]),
+ ];
+ }
+}
+
/**
* Clear any local/in-memory caches based on afform data.
*/