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:
@@ -17,19 +17,25 @@ if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} el
|
||||
//default whereclause
|
||||
$whereclause = '';
|
||||
|
||||
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 = 'WHERE accounthierarchy like :condition AND u.view IN (4,5)';
|
||||
break;
|
||||
case '2':
|
||||
$condition = '__salesid___'.$partner->salesid.'___soldto___'.substr($partner->soldto, 0, strpos($partner->soldto, "-")).$soldto_search;
|
||||
$whereclause = 'WHERE accounthierarchy like :condition AND u.view IN (1,2,3)';
|
||||
break;
|
||||
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 = 'WHERE accounthierarchy like :condition AND u.view IN (1,2,3)';
|
||||
break;
|
||||
default:
|
||||
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 = 'WHERE accounthierarchy like :condition AND u.view IN (1,2,3)';
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user