提交bug修复 后台权限管理
This commit is contained in:
@@ -637,8 +637,11 @@
|
||||
|
||||
// ========== 用户管理 ==========
|
||||
var userPage = 1, userPageSize = 15;
|
||||
var currentUserId = null;
|
||||
var currentUserRole = 'admin';
|
||||
var currentUserUsername = '';
|
||||
var currentUserAdminPermissionKeys = {};
|
||||
var currentUserAdminPermissionRoutes = {};
|
||||
var adminsList = [];
|
||||
function roleLabel(role) {
|
||||
if (role === 'super_admin') return '超级管理员';
|
||||
@@ -663,6 +666,7 @@
|
||||
tbody.innerHTML = '<tr><td colspan="6" class="empty-tip">加载失败: ' + (res.error || '') + '</td></tr>';
|
||||
return;
|
||||
}
|
||||
currentUserId = res.current_user_id || null;
|
||||
currentUserRole = res.current_user_role || 'admin';
|
||||
currentUserUsername = (res.current_user_username || '').trim();
|
||||
adminsList = res.admins || [];
|
||||
@@ -683,6 +687,7 @@
|
||||
updateCreateFormByRole();
|
||||
updateUserFilterByRole();
|
||||
updateDedupeTotalDataAccess();
|
||||
loadCurrentUserAdminPermissions();
|
||||
})
|
||||
.catch(function() {
|
||||
document.getElementById('userListBody').innerHTML = '<tr><td colspan="6" class="empty-tip">请求失败</td></tr>';
|
||||
@@ -722,6 +727,50 @@
|
||||
if (usersPanel) usersPanel.classList.add('active');
|
||||
}
|
||||
}
|
||||
function updateShopManageAccess() {
|
||||
var tab = document.querySelector('.tab[data-tab="shop-manage"]');
|
||||
var panel = document.getElementById('panel-shop-manage');
|
||||
if (!tab || !panel) return;
|
||||
var canUse = currentUserRole === 'super_admin' ||
|
||||
!!currentUserAdminPermissionKeys['admin_shop_manage'] ||
|
||||
!!currentUserAdminPermissionRoutes['shop-manage'];
|
||||
tab.style.display = canUse ? '' : 'none';
|
||||
panel.style.display = canUse ? '' : 'none';
|
||||
if (!canUse && tab.classList.contains('active')) {
|
||||
tab.classList.remove('active');
|
||||
panel.classList.remove('active');
|
||||
var usersTab = document.querySelector('.tab[data-tab="users"]');
|
||||
var usersPanel = document.getElementById('panel-users');
|
||||
if (usersTab) usersTab.classList.add('active');
|
||||
if (usersPanel) usersPanel.classList.add('active');
|
||||
}
|
||||
}
|
||||
function loadCurrentUserAdminPermissions() {
|
||||
currentUserAdminPermissionKeys = {};
|
||||
currentUserAdminPermissionRoutes = {};
|
||||
if (!currentUserId || currentUserRole === 'super_admin') {
|
||||
updateShopManageAccess();
|
||||
return;
|
||||
}
|
||||
fetch('/api/admin/user/' + currentUserId + '/column-permissions?menu_type=admin')
|
||||
.then(function(r) { return r.json(); })
|
||||
.then(function(res) {
|
||||
if (!res.success) {
|
||||
updateShopManageAccess();
|
||||
return;
|
||||
}
|
||||
(res.items || []).forEach(function(item) {
|
||||
var columnKey = (item.column_key || '').trim();
|
||||
var routePath = (item.route_path || '').trim();
|
||||
if (columnKey) currentUserAdminPermissionKeys[columnKey] = true;
|
||||
if (routePath) currentUserAdminPermissionRoutes[routePath] = true;
|
||||
});
|
||||
updateShopManageAccess();
|
||||
})
|
||||
.catch(function() {
|
||||
updateShopManageAccess();
|
||||
});
|
||||
}
|
||||
var allColumnsList = [];
|
||||
function loadColumnsForPermission() {
|
||||
fetch('/api/admin/columns')
|
||||
|
||||
Reference in New Issue
Block a user