Refactor permission handling to utilize hierarchy levels for access control across multiple API endpoints, enhancing permission validation logic in contracts, history, application, and user management.
This commit is contained in:
@@ -27,11 +27,13 @@ if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} el
|
||||
//default whereclause
|
||||
$whereclause = 'WHERE';
|
||||
|
||||
switch ($permission) {
|
||||
case '4':
|
||||
$hierarchy_level = getHierarchyLevel($partner);
|
||||
|
||||
switch ($hierarchy_level) {
|
||||
case '0':
|
||||
$whereclause .= '';
|
||||
break;
|
||||
case '3':
|
||||
case '1':
|
||||
$condition = '__salesid___'.$partner->salesid.'___soldto___%';
|
||||
$whereclause = ' e.accounthierarchy like "'.$condition.'" AND ';
|
||||
break;
|
||||
@@ -39,7 +41,11 @@ switch ($permission) {
|
||||
$condition = '__salesid___'.$partner->salesid.'___soldto___'.substr($partner->soldto, 0, strpos($partner->soldto, "-")).$soldto_search;
|
||||
$whereclause .= ' e.accounthierarchy like "'.$condition.'" AND ';
|
||||
break;
|
||||
default:
|
||||
case '3':
|
||||
$condition = '__salesid___'.$partner->salesid.'___soldto___'.substr($partner->soldto, 0, strpos($partner->soldto, "-")).$soldto_search.'___shipto___'.substr($partner->shipto, 0, strpos($partner->shipto, "-")).'%';
|
||||
$whereclause .= ' e.accounthierarchy like "'.$condition.'" AND ';
|
||||
break;
|
||||
case '4':
|
||||
$condition = '__salesid___'.$partner->salesid.'___soldto___'.substr($partner->soldto, 0, strpos($partner->soldto, "-")).$soldto_search.'___shipto___'.substr($partner->shipto, 0, strpos($partner->shipto, "-")).'%___location___'.substr($partner->location, 0, strpos($partner->location, "-")).'%';
|
||||
$whereclause .= ' e.accounthierarchy like "'.$condition.'" AND ';
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user