CRM-18139: Notification needed when using Batch Update of Participants via Profile...
[civicrm-core.git] / extern / cxn.php
index 543e385e3a71ccb770ddfcdd990f5bd3f6dd8f12..e8a975b94746213fe2458402e94a38878304650f 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.6                                                |
+ | CiviCRM version 4.7                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014                                |
+ | Copyright CiviCRM LLC (c) 2004-2016                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -30,56 +30,6 @@ $config = CRM_Core_Config::singleton();
 
 CRM_Utils_System::loadBootStrap(array(), FALSE);
 
-$apiServer = new \Civi\Cxn\Rpc\ApiServer(new CRM_Cxn_CiviCxnStore());
-$apiServer->setLog(new CRM_Utils_SystemLogger());
-$apiServer->setRouter(function ($cxn, $entity, $action, $params) {
-  $SUPER_PERM = array('administer CiviCRM');
-
-  require_once 'api/v3/utils.php';
-
-  // FIXME: Shouldn't the X-Forwarded-Proto check be part of CRM_Utils_System::isSSL()?
-  if (CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'enableSSL') &&
-    !CRM_Utils_System::isSSL() &&
-    strtolower(CRM_Utils_Array::value('X_FORWARDED_PROTO', CRM_Utils_System::getRequestHeaders())) != 'https'
-  ) {
-    return civicrm_api3_create_error('System policy requires HTTPS.');
-  }
-
-  // Note: $cxn and cxnId are authenticated before router is called.
-  $dao = new CRM_Cxn_DAO_Cxn();
-  $dao->cxn_id = $cxn['cxnId'];
-  if (empty($cxn['cxnId']) || !$dao->find(TRUE) || !$dao->cxn_id) {
-    return civicrm_api3_create_error('Failed to lookup connection authorizations.');
-  }
-  if (!$dao->is_active) {
-    return civicrm_api3_create_error('Connection is inactive.');
-  }
-  if (!is_string($entity) || !is_string($action) || !is_array($params)) {
-    return civicrm_api3_create_error('API parameters are malformed.');
-  }
-  if (
-    empty($cxn['perm']['api'])
-    || !is_array($cxn['perm']['api'])
-    || empty($cxn['perm']['grant'])
-    || !(is_array($cxn['perm']['grant']) || is_string($cxn['perm']['grant']))
-  ) {
-    return civicrm_api3_create_error('Connection has no permissions.');
-  }
-
-  $whitelist = \Civi\API\WhitelistRule::createAll($cxn['perm']['api']);
-  Civi\Core\Container::singleton()
-    ->get('dispatcher')
-    ->addSubscriber(new \Civi\API\Subscriber\WhitelistSubscriber($whitelist));
-  CRM_Core_Config::singleton()->userPermissionTemp = new CRM_Core_Permission_Temp();
-  if ($cxn['perm']['grant'] === '*') {
-    CRM_Core_Config::singleton()->userPermissionTemp->grant($SUPER_PERM);
-  }
-  else {
-    CRM_Core_Config::singleton()->userPermissionTemp->grant($cxn['perm']['grant']);
-  }
-
-  $params['check_permissions'] = 'whitelist';
-  return civicrm_api($entity, $action, $params);
-
-});
-$apiServer->handle(file_get_contents('php://input'))->send();
+CRM_Cxn_BAO_Cxn::createApiServer()
+  ->handle(file_get_contents('php://input'))
+  ->send();