*
* @throws \CRM_Core_Exception
*/
- protected static function getACLs($contact_id = NULL) {
+ protected static function getACLs(int $contact_id) {
$results = [];
- if (empty($contact_id)) {
- return $results;
- }
-
- $contact_id = CRM_Utils_Type::escape($contact_id, 'Integer');
-
$rule = new CRM_ACL_BAO_ACL();
- $acl = self::getTableName();
$contact = CRM_Contact_BAO_Contact::getTableName();
$query = " SELECT acl.*
- FROM $acl acl";
-
- if (!empty($contact_id)) {
- $query .= " WHERE acl.entity_table = '$contact'
- AND acl.entity_id = $contact_id";
- }
+ FROM civicrm_acl acl
+ WHERE acl.entity_table = '$contact'
+ AND acl.entity_id = $contact_id";
$rule->query($query);
$rule = new CRM_ACL_BAO_ACL();
- $acl = self::getTableName();
$c2g = CRM_Contact_BAO_GroupContact::getTableName();
$group = CRM_Contact_BAO_Group::getTableName();
$results = [];
if ($contact_id) {
$query = "
SELECT acl.*
- FROM $acl acl
+ FROM civicrm_acl acl
INNER JOIN $c2g group_contact
ON acl.entity_id = group_contact.group_id
WHERE acl.entity_table = '$group'
$rule = new CRM_ACL_BAO_ACL();
- $acl = self::getTableName();
$aclRole = 'civicrm_acl_role';
$aclER = CRM_ACL_DAO_EntityRole::getTableName();
$c2g = CRM_Contact_BAO_GroupContact::getTableName();
$query = " SELECT acl.*
- FROM $acl acl
+ FROM civicrm_acl acl
INNER JOIN civicrm_option_group og
ON og.name = 'acl_role'
INNER JOIN civicrm_option_value ov
$query = "
SELECT acl.*
- FROM $acl acl
+ FROM civicrm_acl acl
WHERE acl.entity_id IN ( $roles )
AND acl.entity_table = 'civicrm_acl_role'
";
$result = [];
/* First, the contact-specific ACLs, including ACL Roles */
- $result += self::getACLs($contact_id);
+ if ($contact_id) {
+ $result += self::getACLs((int) $contact_id);
+ }
/* Then, all ACLs granted through group membership */
$result += self::getGroupACLs($contact_id, TRUE);
$params = [1 => [$str, 'String']];
$count = CRM_Core_DAO::singleValueQuery($query, $params);
- return ($count) ? TRUE : FALSE;
+ return (bool) $count;
}
/**