* This class contains all contact related functions that are called using AJAX (jQuery)
*/
class CRM_Contact_Page_AJAX {
+ /**
+ * When a user chooses a username, CHECK_USERNAME_TTL
+ * is the time window in which they can check usernames
+ * (without reloading the overall form).
+ */
+ const CHECK_USERNAME_TTL = 10800; // 3hr; 3*60*60
+
+ const AUTOCOMPLETE_TTL = 21600; // 6hr; 6*60*60
+
/**
* @deprecated
*/
while ($dao->fetch()) {
$results[] = array('id' => $dao->id, 'text' => $dao->data);
}
- print json_encode($results);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($results);
}
static function relationship() {
}
}
- echo json_encode($ret);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($ret);
}
/**
$values = array();
CRM_Core_DAO::commonRetrieve('CRM_Core_DAO_CustomField', $params, $values, $returnProperties);
- echo json_encode($values);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($values);
}
static function groupTree() {
CRM_Utils_Hook::enableDisable($recordBAO, $recordID, $isActive);
}
}
- echo json_encode($status);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($status);
}
}
*
*/
static public function checkUserName() {
+ $signer = new CRM_Utils_Signer(CRM_Core_Key::privateKey(), array('for', 'ts'));
+ if (
+ CRM_Utils_Time::getTimeRaw() > $_REQUEST['ts'] + self::CHECK_USERNAME_TTL
+ || $_REQUEST['for'] != 'civicrm/ajax/cmsuser'
+ || !$signer->validate($_REQUEST['sig'], $_REQUEST)
+ ) {
+ $user = array('name' => 'error');
+ echo json_encode($user);
+ CRM_Utils_System::civiExit();
+ }
+
$config = CRM_Core_Config::singleton();
$username = trim($_REQUEST['cms_name']);
static function getContactEmail() {
if (!empty($_REQUEST['contact_id'])) {
$contactID = CRM_Utils_Type::escape($_REQUEST['contact_id'], 'Positive');
+ if (!CRM_Contact_BAO_Contact_Permission::allow($contactID, CRM_Core_Permission::EDIT)) {
+ return;
+ }
list($displayName,
$userEmail
) = CRM_Contact_BAO_Contact_Location::getEmailDetails($contactID);
$subTypes = CRM_Contact_BAO_ContactType::subTypePairs($contactType, FALSE, NULL);
asort($subTypes);
- echo json_encode($subTypes);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($subTypes);
}
static function buildDedupeRules() {
$dedupeRules = CRM_Dedupe_BAO_RuleGroup::getByType($contactType);
- echo json_encode($dedupeRules);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($dedupeRules);
}
/**
CRM_Utils_System::civiExit();
}
- echo json_encode($dashlets);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($dashlets);
}
/**
);
}
- echo json_encode($signatures);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($signatures);
}
/**
$status = $exception->delete();
}
- echo json_encode(array('status' => ($status) ? $oper : $status));
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output(array('status' => ($status) ? $oper : $status));
}
static function getDedupes() {
$pdfFormat = CRM_Core_BAO_PdfFormat::getById($formatId);
- echo json_encode($pdfFormat);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($pdfFormat);
}
/**
$paperSize = CRM_Core_BAO_PaperSize::getByName($paperSizeName);
- echo json_encode($paperSize);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($paperSize);
}
static function selectUnselectContacts() {
$countSelectionCids = count($contactIds[$cacheKey]);
$arrRet = array('getCount' => $countSelectionCids);
- echo json_encode($arrRet);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($arrRet);
}
/**
$addressVal = CRM_Core_BAO_Address::getValues($entityBlock);
}
- echo json_encode($addressVal);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($addressVal);
}
/**