Refactor permission checks to utilize hierarchy levels for access control in equipment, partner, user, and mass update pages. Update conditions to validate permissions based on user hierarchy instead of fixed permission values.
This commit is contained in:
@@ -461,13 +461,13 @@ $shipto_id = explode("-",$partner_data->shipto) ?? '';
|
|||||||
$partner_users_id = ($shipto_id[0] != '')? $shipto_id[0] : (($soldto_id[0] != '')? $soldto_id[0] : 1);
|
$partner_users_id = ($shipto_id[0] != '')? $shipto_id[0] : (($soldto_id[0] != '')? $soldto_id[0] : 1);
|
||||||
|
|
||||||
$view_communication = '';
|
$view_communication = '';
|
||||||
if ($partner_users_id != 1 && ($_SESSION['authorization']['permission'] == 3 || $_SESSION['authorization']['permission'] == 4)){
|
if ($partner_users_id != 1 && (isAllowed('communications',$_SESSION['authorization']['permissions'],$_SESSION['authorization']['permission'],'R') === 1){
|
||||||
$view_communication = ' <a href="index.php?page=communications&partnerid='.$partner_users_id.'" class="btn">'.$button_partner_assigned_communication.'</a>';
|
$view_communication = ' <a href="index.php?page=communications&partnerid='.$partner_users_id.'" class="btn">'.$button_partner_assigned_communication.'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
//DISPLAY RELATED USERS
|
//DISPLAY RELATED USERS
|
||||||
$view_users ='';
|
$view_users ='';
|
||||||
if ($partner_users_id != 1 && ($_SESSION['authorization']['permission'] == 3 || $_SESSION['authorization']['permission'] == 4)){
|
if ($partner_users_id != 1 && (isAllowed('users',$_SESSION['authorization']['permissions'],$_SESSION['authorization']['permission'],'R') === 1)){
|
||||||
$view_users = ' <a href="index.php?page=users&partnerid='.$partner_users_id.'" class="btn">'.$button_partner_assigned_users.'</a>';
|
$view_users = ' <a href="index.php?page=users&partnerid='.$partner_users_id.'" class="btn">'.$button_partner_assigned_users.'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -202,7 +202,9 @@ $view .='<div class="content-block">
|
|||||||
<div class="form responsive-width-100" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px;">';
|
<div class="form responsive-width-100" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px;">';
|
||||||
|
|
||||||
// SHOW SALESID and SOLDTO ONLY TO ADMIN
|
// SHOW SALESID and SOLDTO ONLY TO ADMIN
|
||||||
if ($_SESSION['authorization']['permission'] == 3 || $_SESSION['authorization']['permission'] == 4){
|
$hierarchyLevel = getHierarchyLevel(json_decode($_SESSION['authorization']['partnerhierarchy']));
|
||||||
|
|
||||||
|
if ($hierarchyLevel == 0 || $hierarchyLevel == 1){
|
||||||
$view .='<div>
|
$view .='<div>
|
||||||
<label for="salesid">'.$general_salesid.'</label>
|
<label for="salesid">'.$general_salesid.'</label>
|
||||||
'.$salesid_dropdown.'
|
'.$salesid_dropdown.'
|
||||||
@@ -227,7 +229,7 @@ $view .=' <div>
|
|||||||
<div>
|
<div>
|
||||||
<label for="status">'.$equipment_label3.'</label>
|
<label for="status">'.$equipment_label3.'</label>
|
||||||
<select id="status" name="status" required>';
|
<select id="status" name="status" required>';
|
||||||
if ($_SESSION['authorization']['permission'] == 3 || $_SESSION['authorization']['permission'] == 4){
|
if ($hierarchyLevel == 0 || $hierarchyLevel == 1){
|
||||||
$view .= '<option value="0">'.$status0_text .'</option>
|
$view .= '<option value="0">'.$status0_text .'</option>
|
||||||
<option value="1">'.$status1_text .'</option>
|
<option value="1">'.$status1_text .'</option>
|
||||||
<option value="2">'.$status2_text .'</option>';
|
<option value="2">'.$status2_text .'</option>';
|
||||||
|
|||||||
@@ -123,6 +123,8 @@ $view .= '<div class="tabs">
|
|||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
//Define Service and partner enabled
|
//Define Service and partner enabled
|
||||||
|
$hierarchyLevel = getHierarchyLevel(json_decode($_SESSION['authorization']['partnerhierarchy']));
|
||||||
|
|
||||||
$view .= '<div class="content-block tab-content active">
|
$view .= '<div class="content-block tab-content active">
|
||||||
<div class="form responsive-width-100">
|
<div class="form responsive-width-100">
|
||||||
<label for="status">'.$partner_status.'</label>
|
<label for="status">'.$partner_status.'</label>
|
||||||
@@ -138,7 +140,7 @@ $view .= '<div class="content-block tab-content active">
|
|||||||
<label for="partnertype">'.$partner_partnertype.'</label>
|
<label for="partnertype">'.$partner_partnertype.'</label>
|
||||||
<select id="partnertype" name="partnertype" required>
|
<select id="partnertype" name="partnertype" required>
|
||||||
';
|
';
|
||||||
if ($_SESSION['authorization']['permission'] == 3 || $_SESSION['authorization']['permission'] == 4 ){
|
if ($hierarchyLevel == 0 || $hierarchyLevel == 1){
|
||||||
$view .= ' <option value="'.$partnertype1.'" '.($partner['partnertype']== $partnertype1?' selected':'').'>'.$partnertype1.'</option>
|
$view .= ' <option value="'.$partnertype1.'" '.($partner['partnertype']== $partnertype1?' selected':'').'>'.$partnertype1.'</option>
|
||||||
<option value="'.$partnertype2.'" '.($partner['partnertype']== $partnertype2?' selected':'').'>'.$partnertype2.'</option>';
|
<option value="'.$partnertype2.'" '.($partner['partnertype']== $partnertype2?' selected':'').'>'.$partnertype2.'</option>';
|
||||||
}
|
}
|
||||||
@@ -171,7 +173,7 @@ $view .= '<div class="tabs">
|
|||||||
$view .= '<div class="content-block tab-content">
|
$view .= '<div class="content-block tab-content">
|
||||||
<div class="form responsive-width-100">
|
<div class="form responsive-width-100">
|
||||||
';
|
';
|
||||||
if ($_SESSION['authorization']['permission'] == 3 || $_SESSION['authorization']['permission'] == 4){
|
if ($hierarchyLevel == 0 || $hierarchyLevel == 1){
|
||||||
$view .= '<label for="status">'.$general_salesid.'</label>';
|
$view .= '<label for="status">'.$general_salesid.'</label>';
|
||||||
$view .= $salesid_dropdown;
|
$view .= $salesid_dropdown;
|
||||||
}
|
}
|
||||||
|
|||||||
13
user.php
13
user.php
@@ -13,6 +13,8 @@ include_once './settings/settings_redirector.php';
|
|||||||
//SET ORIGIN FOR NAVIGATION
|
//SET ORIGIN FOR NAVIGATION
|
||||||
$_SESSION['prev_origin_user'] = $_SERVER['REQUEST_URI'];
|
$_SESSION['prev_origin_user'] = $_SERVER['REQUEST_URI'];
|
||||||
|
|
||||||
|
$hierarchyLevel = getHierarchyLevel(json_decode($_SESSION['authorization']['partnerhierarchy']));
|
||||||
|
|
||||||
$page = 'user';
|
$page = 'user';
|
||||||
//Check if allowed
|
//Check if allowed
|
||||||
if (isAllowed($page,$_SESSION['authorization']['permissions'],$_SESSION['authorization']['permission'],'R') === 0){
|
if (isAllowed($page,$_SESSION['authorization']['permissions'],$_SESSION['authorization']['permission'],'R') === 0){
|
||||||
@@ -437,10 +439,10 @@ $view .= '</span>
|
|||||||
<option value="2"'.($user->view == 2 ? ' selected' : '').'>'.($permission2 ?? 'Edit').'</option>
|
<option value="2"'.($user->view == 2 ? ' selected' : '').'>'.($permission2 ?? 'Edit').'</option>
|
||||||
<option value="1"'.($user->view == 1 ? ' selected' : '').'>'.($permission1 ?? 'View').'</option>';
|
<option value="1"'.($user->view == 1 ? ' selected' : '').'>'.($permission1 ?? 'View').'</option>';
|
||||||
|
|
||||||
if ($_SESSION['authorization']['permission'] == 3){
|
if ($hierarchyLevel == 1){
|
||||||
$view .= '<option value="4"'.($user->view == 4 ? ' selected' : '').'>'.($permission4 ?? 'Super Admin').'</option>';
|
$view .= '<option value="4"'.($user->view == 4 ? ' selected' : '').'>'.($permission4 ?? 'Super Admin').'</option>';
|
||||||
}
|
}
|
||||||
if ($_SESSION['authorization']['permission'] == 4){
|
if ($hierarchyLevel == 0){
|
||||||
$view .= '<option value="4"'.($user->view == 4 ? ' selected' : '').'>'.($permission4 ?? 'Super Admin').'</option>
|
$view .= '<option value="4"'.($user->view == 4 ? ' selected' : '').'>'.($permission4 ?? 'Super Admin').'</option>
|
||||||
<option value="5"'.($user->view == 5 ? ' selected' : '').'>'.($permission5 ?? 'System').'</option>';
|
<option value="5"'.($user->view == 5 ? ' selected' : '').'>'.($permission5 ?? 'System').'</option>';
|
||||||
}
|
}
|
||||||
@@ -453,7 +455,8 @@ $view .= ' </select>
|
|||||||
<td>
|
<td>
|
||||||
<span class="view-mode" style="'.$view_style.'">'.($user->settings ?? '-').'</span>';
|
<span class="view-mode" style="'.$view_style.'">'.($user->settings ?? '-').'</span>';
|
||||||
|
|
||||||
if ($_SESSION['authorization']['permission'] == 3 || $_SESSION['authorization']['permission'] == 4){
|
|
||||||
|
if ($hierarchyLevel == 0 || $hierarchyLevel == 1){
|
||||||
$view .= '<select class="edit-mode" name="settings" style="'.$edit_style.'">
|
$view .= '<select class="edit-mode" name="settings" style="'.$edit_style.'">
|
||||||
<option value="">-</option>';
|
<option value="">-</option>';
|
||||||
foreach ($all_profiles as $profile) {
|
foreach ($all_profiles as $profile) {
|
||||||
@@ -490,7 +493,7 @@ $view .= '<div class="content-block">
|
|||||||
<div class="table order-table">
|
<div class="table order-table">
|
||||||
<table>';
|
<table>';
|
||||||
|
|
||||||
if ($_SESSION['authorization']['permission'] == 3 || $_SESSION['authorization']['permission'] == 4){
|
if ($hierarchyLevel == 0 || $hierarchyLevel == 1){
|
||||||
$salesid_dropdown = listPartner('salesid', $_SESSION['authorization']['permission'], $partner_data->salesid ?? '', '');
|
$salesid_dropdown = listPartner('salesid', $_SESSION['authorization']['permission'], $partner_data->salesid ?? '', '');
|
||||||
$soldto_dropdown = listPartner('soldto', $_SESSION['authorization']['permission'], $partner_data->soldto ?? '', '');
|
$soldto_dropdown = listPartner('soldto', $_SESSION['authorization']['permission'], $partner_data->soldto ?? '', '');
|
||||||
|
|
||||||
@@ -560,7 +563,7 @@ if (!$is_new_user) {
|
|||||||
<td>
|
<td>
|
||||||
<span class="view-mode">'.$user->login_count.'</span>';
|
<span class="view-mode">'.$user->login_count.'</span>';
|
||||||
|
|
||||||
if ($_SESSION['authorization']['permission'] == 3 || $_SESSION['authorization']['permission'] == 4){
|
if ($hierarchyLevel == 0 || $hierarchyLevel == 1){
|
||||||
$view .= '<input type="number" class="edit-mode" name="login_count" value="'.$user->login_count.'" style="display:none; width: 80px;">';
|
$view .= '<input type="number" class="edit-mode" name="login_count" value="'.$user->login_count.'" style="display:none; width: 80px;">';
|
||||||
} else {
|
} else {
|
||||||
$view .= '<input type="hidden" name="login_count" value="'.$user->login_count.'">';
|
$view .= '<input type="hidden" name="login_count" value="'.$user->login_count.'">';
|
||||||
|
|||||||
Reference in New Issue
Block a user