projects
/
civicrm-core.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
19f13a7
)
fixed bug in the original function
author
systopia
<endres@systopia.de>
Wed, 12 Oct 2016 20:19:50 +0000
(21:19 +0100)
committer
eileenmcnaugton
<eileen@fuzion.co.nz>
Mon, 24 Oct 2016 02:17:29 +0000
(15:17 +1300)
CRM/Contact/BAO/Contact/Permission.php
patch
|
blob
|
blame
|
history
diff --git
a/CRM/Contact/BAO/Contact/Permission.php
b/CRM/Contact/BAO/Contact/Permission.php
index e4ffc92d37ac9d76914e4f3b1e32653de2e5a828..44ba8e7d37eb128c47416e955ec8e2a0a5646967 100644
(file)
--- a/
CRM/Contact/BAO/Contact/Permission.php
+++ b/
CRM/Contact/BAO/Contact/Permission.php
@@
-188,9
+188,10
@@
WHERE contact_a.id = %1 AND $permission";
* Should we force a recompute.
*/
public static function cache($userID, $type = CRM_Core_Permission::VIEW, $force = FALSE) {
* Should we force a recompute.
*/
public static function cache($userID, $type = CRM_Core_Permission::VIEW, $force = FALSE) {
- static $_processed = array();
+ static $_processed = array( CRM_Core_Permission::VIEW => array(),
+ CRM_Core_Permission::EDIT => array());
- if ($type = CRM_Core_Permission::VIEW) {
+ if ($type =
=
CRM_Core_Permission::VIEW) {
$operationClause = " operation IN ( 'Edit', 'View' ) ";
$operation = 'View';
}
$operationClause = " operation IN ( 'Edit', 'View' ) ";
$operation = 'View';
}
@@
-200,7
+201,8
@@
WHERE contact_a.id = %1 AND $permission";
}
if (!$force) {
}
if (!$force) {
- if (!empty($_processed[$userID])) {
+ // skip if already calculated
+ if (!empty($_processed[$type][$userID])) {
return;
}
return;
}
@@
-214,7
+216,7
@@
AND $operationClause
$params = array(1 => array($userID, 'Integer'));
$count = CRM_Core_DAO::singleValueQuery($sql, $params);
if ($count > 0) {
$params = array(1 => array($userID, 'Integer'));
$count = CRM_Core_DAO::singleValueQuery($sql, $params);
if ($count > 0) {
- $_processed[$userID] = 1;
+ $_processed[$
type][$
userID] = 1;
return;
}
}
return;
}
}
@@
-238,8
+240,7
@@
ON DUPLICATE KEY UPDATE
contact_id=VALUES(contact_id),
operation=VALUES(operation)"
);
contact_id=VALUES(contact_id),
operation=VALUES(operation)"
);
-
- $_processed[$userID] = 1;
+ $_processed[$type][$userID] = 1;
}
/**
}
/**