checking category for group changes

main
alex 2023-07-01 19:58:56 +02:00
parent 42fa527e72
commit 6a595238ca
2 changed files with 87 additions and 9 deletions

View File

@ -8,7 +8,6 @@ i18n
.use(LanguageDetector) .use(LanguageDetector)
.use(Backend) .use(Backend)
.init({ .init({
debug: true,
supportedLngs: ["en", "de"], supportedLngs: ["en", "de"],
fallbackLng: "en", fallbackLng: "en",
interpolation: { interpolation: {

View File

@ -141,6 +141,7 @@ let webSocketContextPreview = {
Email: l, Email: l,
Sessions: [], Sessions: [],
Permissions: [], Permissions: [],
RoleId: "",
}, },
AllUsers: [], AllUsers: [],
AllRoles: [], AllRoles: [],
@ -354,7 +355,7 @@ export function WebSocketProvider({
const updatedUser = { ...user }; const updatedUser = { ...user };
updatedUser.Permissions = updatedUser.Permissions.filter( updatedUser.Permissions = updatedUser.Permissions.filter(
(arr) => !body.RemovedPermissions.some((a) => a === arr) (arr) => !body.RemovedPermissions.includes(arr)
); );
return updatedUser; return updatedUser;
@ -366,7 +367,7 @@ export function WebSocketProvider({
newArr.forEach((role, i) => { newArr.forEach((role, i) => {
if (role.Permissions !== null) { if (role.Permissions !== null) {
newArr[i].Permissions = role.Permissions.filter( newArr[i].Permissions = role.Permissions.filter(
(b) => !body.RemovedPermissions.some((c) => c === b) (arr) => !body.RemovedPermissions.includes(arr)
); );
} }
}); });
@ -378,7 +379,6 @@ export function WebSocketProvider({
message: `Category ${body.RemovedCategory} was removed`, message: `Category ${body.RemovedCategory} was removed`,
duration: 2, duration: 2,
}); });
break; break;
} }
@ -391,11 +391,6 @@ export function WebSocketProvider({
return newArr; return newArr;
}); });
notificationApi["info"]({
message: `Group ${body.Category} reloaded`,
duration: 2,
});
break; break;
case ReceivedMessagesCommands.UpdateUserSessions: case ReceivedMessagesCommands.UpdateUserSessions:
setUser((arr) => ({ ...arr, Sessions: body })); setUser((arr) => ({ ...arr, Sessions: body }));
@ -868,6 +863,90 @@ export function WebSocketProvider({
}); });
break; break;
case ReceivedMessagesCommands.GroupTasksCategoryGroupChanges: case ReceivedMessagesCommands.GroupTasksCategoryGroupChanges:
if (
body["AddedPermissions"] !== undefined ||
body["RemovedPermissions"] !== undefined
) {
setUser((user) => {
const updatedUser = { ...user };
if (
body.AddedPermissions !== undefined &&
updatedUser.RoleId === body.MasterRoleId
) {
updatedUser.Permissions = updatedUser.Permissions.concat(
body.AddedPermissions
);
}
if (body.RemovedPermissions !== undefined) {
updatedUser.Permissions = updatedUser.Permissions.filter(
(permission) => !body.RemovedPermissions.includes(permission)
);
}
return updatedUser;
});
setAdminAreaRolesPermissions((arr) => {
let newArr = [...arr];
const roleIndex = arr.findIndex(
(item) => item.RoleId === body.MasterRoleId
);
if (roleIndex !== -1) {
if (body.AddedPermissions !== undefined) {
newArr[roleIndex].Permissions = newArr[
roleIndex
].Permissions.concat(body.AddedPermissions);
}
if (body.RemovedPermissions !== undefined) {
newArr[roleIndex].Permissions = newArr[
roleIndex
].Permissions.filter(
(permission) =>
!body.RemovedPermissions.includes(permission)
);
}
}
return newArr;
});
}
if (
body["AddedCategoryGroups"] !== undefined ||
body["RemovedCategoryGroups"] !== undefined
) {
setCategoryGroups((arr) => {
let newArr = [...arr];
if (body["RemovedCategoryGroups"] !== undefined) {
newArr = newArr.filter(
(c) => !body.RemovedCategoryGroups.includes(c.category)
);
}
if (body["AddedCategoryGroups"] !== undefined) {
newArr = newArr.concat(body.AddedCategoryGroups);
}
newArr = newArr.sort((a, b) => {
if (a.category < b.category) {
return -1; // a below b
} else if (a.category > b.category) {
return 1; // a above b
} else {
return 0; // keep the order
}
});
return newArr;
});
}
break; break;
default: default: