diff options
Diffstat (limited to 'www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Action/Contact')
2 files changed, 41 insertions, 0 deletions
diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Action/Contact/Create.php b/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Action/Contact/Create.php new file mode 100644 index 00000000..1bd0bcec --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Action/Contact/Create.php @@ -0,0 +1,22 @@ +<?php + +namespace Civi\Api4\Action\Contact; + +/** + * @inheritDoc + */ +class Create extends \Civi\Api4\Generic\DAOCreateAction { + + protected function fillDefaults(&$params) { + // Guess which type of contact is being created + if (empty($params['contact_type']) && !empty($params['organization_name'])) { + $params['contact_type'] = 'Organization'; + } + if (empty($params['contact_type']) && !empty($params['household_name'])) { + $params['contact_type'] = 'Household'; + } + // Will default to Individual per fieldSpec + parent::fillDefaults($params); + } + +} diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Action/Contact/GetFields.php b/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Action/Contact/GetFields.php new file mode 100644 index 00000000..1d6ddf66 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Action/Contact/GetFields.php @@ -0,0 +1,19 @@ +<?php +namespace Civi\Api4\Action\Contact; + +use Civi\Api4\Generic\DAOGetFieldsAction; + +class GetFields extends DAOGetFieldsAction { + + protected function getRecords() { + $fields = parent::getRecords(); + + $apiKeyPerms = ['edit api keys', 'administer CiviCRM']; + if ($this->checkPermissions && !\CRM_Core_Permission::check([$apiKeyPerms])) { + unset($fields['api_key']); + } + + return $fields; + } + +} |