Release v2.6.11
This commit is contained in:
@@ -19,6 +19,11 @@
|
||||
|
||||
const LIST_PAGE_SIZE = 25;
|
||||
|
||||
function toSortIndex(value) {
|
||||
const number = Number(value);
|
||||
return Number.isFinite(number) ? number : 999;
|
||||
}
|
||||
|
||||
function slugifyRoleKey(name) {
|
||||
const value = String(name || '').trim().toLowerCase();
|
||||
const slug = value.replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '').slice(0, ROLE_KEY_MAX_LENGTH);
|
||||
@@ -73,8 +78,11 @@
|
||||
resourceKey: definition ? definition.resourceKey : String(permission.section_name || '').trim().toLowerCase().replace(/[^a-z0-9]+/g, '-'),
|
||||
resourceName: definition ? definition.resourceName : permission.section_name,
|
||||
categoryName: definition ? definition.sectionName : permission.section_name,
|
||||
sectionIndex: definition ? toSortIndex(definition.sectionIndex) : 999,
|
||||
sectionOrder: definition ? definition.sectionOrder : 999,
|
||||
resourceIndex: definition ? toSortIndex(definition.resourceIndex) : 999,
|
||||
resourceOrder: definition ? Number(definition.resourceOrder) || 999 : 999,
|
||||
permissionIndex: definition ? toSortIndex(definition.permissionIndex) : 999,
|
||||
permissionOrder: definition ? Number(definition.permissionOrder) || 999 : 999,
|
||||
actionKey: definition ? definition.actionKey : 'read',
|
||||
actionLabel: definition ? definition.actionName : getActionLabel(permission.actionKey),
|
||||
@@ -103,7 +111,9 @@
|
||||
id: sectionKey || 'permissions',
|
||||
title: String(permission.resourceName || permission.categoryName || 'Permissions').trim(),
|
||||
categoryName: String(permission.categoryName || '').trim(),
|
||||
sectionIndex: toSortIndex(permission.sectionIndex),
|
||||
sectionOrder: Number(permission.sectionOrder) || 999,
|
||||
resourceIndex: toSortIndex(permission.resourceIndex),
|
||||
permissions: []
|
||||
};
|
||||
groupIndex.set(sectionKey, group);
|
||||
@@ -114,8 +124,13 @@
|
||||
|
||||
groups.forEach(function (group) {
|
||||
group.permissions.sort(function (left, right) {
|
||||
const leftOrder = Number(left.permissionOrder) || 999;
|
||||
const rightOrder = Number(right.permissionOrder) || 999;
|
||||
const leftIndex = toSortIndex(left.permissionIndex);
|
||||
const rightIndex = toSortIndex(right.permissionIndex);
|
||||
if (leftIndex !== rightIndex) {
|
||||
return leftIndex - rightIndex;
|
||||
}
|
||||
const leftOrder = toSortIndex(left.permissionOrder);
|
||||
const rightOrder = toSortIndex(right.permissionOrder);
|
||||
if (leftOrder !== rightOrder) {
|
||||
return leftOrder - rightOrder;
|
||||
}
|
||||
@@ -124,8 +139,13 @@
|
||||
});
|
||||
|
||||
groups.sort(function (left, right) {
|
||||
const leftOrder = Number(left.sectionOrder) || 999;
|
||||
const rightOrder = Number(right.sectionOrder) || 999;
|
||||
const leftIndex = toSortIndex(left.sectionIndex);
|
||||
const rightIndex = toSortIndex(right.sectionIndex);
|
||||
if (leftIndex !== rightIndex) {
|
||||
return leftIndex - rightIndex;
|
||||
}
|
||||
const leftOrder = toSortIndex(left.sectionOrder);
|
||||
const rightOrder = toSortIndex(right.sectionOrder);
|
||||
if (leftOrder !== rightOrder) {
|
||||
return leftOrder - rightOrder;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,11 @@ function normalizeSectionId(value) {
|
||||
return String(value || '').trim().toLowerCase().replace(/[^a-z0-9]+/g, '-');
|
||||
}
|
||||
|
||||
function toSortIndex(value) {
|
||||
const number = Number(value);
|
||||
return Number.isFinite(number) ? number : 999;
|
||||
}
|
||||
|
||||
function buildPermissionSections(permissionGroups) {
|
||||
const sections = [];
|
||||
const sectionIndex = new Map();
|
||||
@@ -23,7 +28,8 @@ function buildPermissionSections(permissionGroups) {
|
||||
sectionIndex.set(sectionKey, {
|
||||
id: sectionKey,
|
||||
title: sectionTitle,
|
||||
sectionOrder: Number(group && group.sectionOrder) || 999,
|
||||
sourceIndex: toSortIndex(group && group.sectionIndex),
|
||||
sectionOrder: toSortIndex(group && group.sectionOrder),
|
||||
groups: []
|
||||
});
|
||||
sections.push(sectionIndex.get(sectionKey));
|
||||
@@ -47,8 +53,14 @@ function buildPermissionSections(permissionGroups) {
|
||||
});
|
||||
|
||||
section.groups.sort(function (left, right) {
|
||||
const leftOrder = Number(left.resourceOrder) || 999;
|
||||
const rightOrder = Number(right.resourceOrder) || 999;
|
||||
const leftIndex = toSortIndex(left.resourceIndex);
|
||||
const rightIndex = toSortIndex(right.resourceIndex);
|
||||
if (leftIndex !== rightIndex) {
|
||||
return leftIndex - rightIndex;
|
||||
}
|
||||
|
||||
const leftOrder = toSortIndex(left.resourceOrder);
|
||||
const rightOrder = toSortIndex(right.resourceOrder);
|
||||
if (leftOrder !== rightOrder) {
|
||||
return leftOrder - rightOrder;
|
||||
}
|
||||
@@ -65,8 +77,14 @@ function buildPermissionSections(permissionGroups) {
|
||||
});
|
||||
|
||||
sections.sort(function (left, right) {
|
||||
const leftOrder = Number(left.sectionOrder) || 999;
|
||||
const rightOrder = Number(right.sectionOrder) || 999;
|
||||
const leftIndex = toSortIndex(left.sourceIndex);
|
||||
const rightIndex = toSortIndex(right.sourceIndex);
|
||||
if (leftIndex !== rightIndex) {
|
||||
return leftIndex - rightIndex;
|
||||
}
|
||||
|
||||
const leftOrder = toSortIndex(left.sectionOrder);
|
||||
const rightOrder = toSortIndex(right.sectionOrder);
|
||||
if (leftOrder !== rightOrder) {
|
||||
return leftOrder - rightOrder;
|
||||
}
|
||||
@@ -134,5 +152,6 @@ function buildRbacEditViewModel(role, message, currentUser, permissionGroups, us
|
||||
|
||||
module.exports = {
|
||||
buildRbacAddViewModel: buildRbacAddViewModel,
|
||||
buildRbacEditViewModel: buildRbacEditViewModel
|
||||
buildRbacEditViewModel: buildRbacEditViewModel,
|
||||
buildPermissionSections: buildPermissionSections
|
||||
};
|
||||
@@ -6,6 +6,7 @@
|
||||
</div>
|
||||
|
||||
<form id="{{formId}}" method="post" action="{{formAction}}" {{{formAttrs}}}>
|
||||
<input type="hidden" name="permissions_present" value="1" />
|
||||
<input type="hidden" name="users_present" value="1" />
|
||||
|
||||
<div class="row g-3">
|
||||
@@ -94,7 +95,7 @@
|
||||
<span class="fw-semibold">{{title}}</span>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="permission-section-collapse-{{id}}" class="accordion-collapse collapse {{#if @first}}show{{/if}}" aria-labelledby="permission-section-heading-{{id}}" data-bs-parent="#role-permissions-accordion">
|
||||
<div id="permission-section-collapse-{{id}}" class="accordion-collapse collapse {{#if @first}}show{{/if}}" aria-labelledby="permission-section-heading-{{id}}">
|
||||
<div class="accordion-body p-0">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped align-middle mb-0 rbac-permissions-table" style="table-layout: fixed; width: 100%;">
|
||||
|
||||
Reference in New Issue
Block a user