Skip to content
Snippets Groups Projects
Commit aa6263f0 authored by Seamus Lee's avatar Seamus Lee
Browse files

#1864 Revert changes to ACL test and ACL API class and update to match approved 5.28 fix

parent 3bad60ad
No related branches found
No related tags found
No related merge requests found
......@@ -88,11 +88,13 @@ class CRM_ACL_API {
// the default value which is valid for the final AND
$deleteClause = ' ( 1 ) ';
if (!$skipDeleteClause) {
if (CRM_Core_Permission::check('access deleted contacts') and $onlyDeleted) {
$deleteClause = '(contact_a.is_deleted)';
if (CRM_Core_Permission::check('access deleted contacts')) {
if ($onlyDeleted) {
$deleteClause = '(contact_a.is_deleted)';
}
}
else {
// CRM-6181
// Exclude deleted contacts due to permissions
$deleteClause = '(contact_a.is_deleted = 0)';
}
}
......
......@@ -5053,6 +5053,10 @@ civicrm_relationship.start_date > {$today}
$this->_skipDeleteClause
);
if (!$onlyDeleted && CRM_Core_Permission::check('access deleted contacts')) {
$this->_permissionWhereClause = str_replace(' ( 1 ) ', '(contact_a.is_deleted = 0)', $this->_permissionWhereClause);
}
// regenerate fromClause since permission might have added tables
if ($this->_permissionWhereClause) {
//fix for row count in qill (in contribute/membership find)
......
......@@ -1045,26 +1045,25 @@ class api_v3_ACLPermissionTest extends CiviUnitTestCase {
$this->cleanupCachedPermissions();
$vals = CustomValue::get($group)->execute();
//This is dependent on PR 17379 which is being reverted just for 5.28/5.27, so commenting this out for same.
//$this->assertCount(2, $vals);
$this->assertCount(2, $vals);
$this->allowedContactId = $c2;
$this->hookClass->setHook('civicrm_aclWhereClause', [$this, 'aclWhereOnlyOne']);
$this->cleanupCachedPermissions();
$vals = CustomValue::get($group)->addSelect('*', 'contact.first_name')->execute();
//$this->assertCount(1, $vals);
//$this->assertEquals($c2, $vals[0]['entity_id']);
//$this->assertEquals('C2', $vals[0]['contact.first_name']);
$this->assertCount(1, $vals);
$this->assertEquals($c2, $vals[0]['entity_id']);
$this->assertEquals('C2', $vals[0]['contact.first_name']);
$vals = Contact::get()
->addJoin('Custom_' . $group . ' AS cf')
->addSelect('first_name', 'cf.' . $textField)
->addWhere('is_deleted', '=', TRUE)
->execute();
//$this->assertCount(1, $vals);
//$this->assertEquals('C2', $vals[0]['first_name']);
//$this->assertEquals('2', $vals[0]['cf.' . $textField]);
$this->assertCount(1, $vals);
$this->assertEquals('C2', $vals[0]['first_name']);
$this->assertEquals('2', $vals[0]['cf.' . $textField]);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment