diff --git a/src/i18n.js b/src/i18n.js index bfa7df4..d2aa177 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -8,7 +8,6 @@ i18n .use(LanguageDetector) .use(Backend) .init({ - debug: true, supportedLngs: ["en", "de"], fallbackLng: "en", interpolation: { diff --git a/src/utils.js b/src/utils.js index 9cf60b5..d0a99c8 100644 --- a/src/utils.js +++ b/src/utils.js @@ -141,6 +141,7 @@ let webSocketContextPreview = { Email: l, Sessions: [], Permissions: [], + RoleId: "", }, AllUsers: [], AllRoles: [], @@ -354,7 +355,7 @@ export function WebSocketProvider({ const updatedUser = { ...user }; updatedUser.Permissions = updatedUser.Permissions.filter( - (arr) => !body.RemovedPermissions.some((a) => a === arr) + (arr) => !body.RemovedPermissions.includes(arr) ); return updatedUser; @@ -366,7 +367,7 @@ export function WebSocketProvider({ newArr.forEach((role, i) => { if (role.Permissions !== null) { 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`, duration: 2, }); - break; } @@ -391,11 +391,6 @@ export function WebSocketProvider({ return newArr; }); - - notificationApi["info"]({ - message: `Group ${body.Category} reloaded`, - duration: 2, - }); break; case ReceivedMessagesCommands.UpdateUserSessions: setUser((arr) => ({ ...arr, Sessions: body })); @@ -868,6 +863,90 @@ export function WebSocketProvider({ }); break; 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; default: