From 1e57eb23695deb50634acb44125542de21f122a1 Mon Sep 17 00:00:00 2001 From: Carla Martinez Date: Wed, 22 Nov 2023 10:15:31 +0100 Subject: [PATCH] Add new params into 'User' data type The 'User' data type needs the following variables: - `krbextradata` - `krblastadminunlock` - `krblastfailedauth` - `krblastpwdchange` - `krbloginfailedcount` The Redux files related to the three types of users ('Active', 'Stage', and 'Preserved') needs to be adapted to the new values as well. Signed-off-by: Carla Martinez --- src/store/Identity/activeUsers-slice.ts | 10 +++ src/store/Identity/preservedUsers-slice.ts | 14 +++- src/store/Identity/preservedUsers.json | 77 ++++++++++++++++++---- src/store/Identity/stageUsers-slice.ts | 14 +++- src/utils/datatypes/globalDataTypes.ts | 5 ++ 5 files changed, 104 insertions(+), 16 deletions(-) diff --git a/src/store/Identity/activeUsers-slice.ts b/src/store/Identity/activeUsers-slice.ts index 000f753f6..18ead6922 100644 --- a/src/store/Identity/activeUsers-slice.ts +++ b/src/store/Identity/activeUsers-slice.ts @@ -107,6 +107,11 @@ const activeUsersSlice = createSlice({ preserved: newUser.preserved, dn: newUser.dn, sshpubkeyfp: newUser.sshpubkeyfp, + krbextradata: newUser.krbextradata, + krblastadminunlock: newUser.krblastadminunlock, + krblastfailedauth: newUser.krblastfailedauth, + krblastpwdchange: newUser.krblastpwdchange, + krbloginfailedcount: newUser.krbloginfailedcount, }); }, removeUser: (state, action: PayloadAction) => { @@ -219,6 +224,11 @@ const activeUsersSlice = createSlice({ preserved: state.usersList[j].preserved, dn: state.usersList[j].dn, sshpubkeyfp: state.usersList[j].sshpubkeyfp, + krbextradata: state.usersList[j].krbextradata, + krblastadminunlock: state.usersList[j].krblastadminunlock, + krblastfailedauth: state.usersList[j].krblastfailedauth, + krblastpwdchange: state.usersList[j].krblastpwdchange, + krbloginfailedcount: state.usersList[j].krbloginfailedcount, }; // Replace entry state.usersList[j] = updatedUser; diff --git a/src/store/Identity/preservedUsers-slice.ts b/src/store/Identity/preservedUsers-slice.ts index 242610622..c53922df7 100644 --- a/src/store/Identity/preservedUsers-slice.ts +++ b/src/store/Identity/preservedUsers-slice.ts @@ -1,7 +1,7 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import type { RootState } from "src/store/store"; // User data (JSON file) -import preservedUsersJson from "./preservedUsers.json"; +// import preservedUsersJson from "./preservedUsers.json"; // Data types import { User } from "src/utils/datatypes/globalDataTypes"; @@ -15,7 +15,7 @@ interface ChangeStatusData { } const initialState: PreservedUsersState = { - usersList: preservedUsersJson, + usersList: [], }; const preservedUsersSlice = createSlice({ @@ -109,6 +109,11 @@ const preservedUsersSlice = createSlice({ preserved: newUser.preserved, dn: newUser.dn, sshpubkeyfp: newUser.sshpubkeyfp, + krbextradata: newUser.krbextradata, + krblastadminunlock: newUser.krblastadminunlock, + krblastfailedauth: newUser.krblastfailedauth, + krblastpwdchange: newUser.krblastpwdchange, + krbloginfailedcount: newUser.krbloginfailedcount, }); // Update json file }, @@ -222,6 +227,11 @@ const preservedUsersSlice = createSlice({ preserved: state.usersList[j].preserved, dn: state.usersList[j].dn, sshpubkeyfp: state.usersList[j].sshpubkeyfp, + krbextradata: state.usersList[j].krbextradata, + krblastadminunlock: state.usersList[j].krblastadminunlock, + krblastfailedauth: state.usersList[j].krblastfailedauth, + krblastpwdchange: state.usersList[j].krblastpwdchange, + krbloginfailedcount: state.usersList[j].krbloginfailedcount, }; // Replace entry state.usersList[j] = updatedUser; diff --git a/src/store/Identity/preservedUsers.json b/src/store/Identity/preservedUsers.json index 5e03c4b5f..99c5829e6 100644 --- a/src/store/Identity/preservedUsers.json +++ b/src/store/Identity/preservedUsers.json @@ -67,7 +67,12 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" }, { "title": "", @@ -137,7 +142,12 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother2,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" }, { "title": "", @@ -207,7 +217,12 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother3,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" }, { "title": "", @@ -277,7 +292,12 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother4,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" }, { "title": "", @@ -347,7 +367,12 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother5,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" }, { "title": "", @@ -417,7 +442,12 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother6,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" }, { "title": "", @@ -487,7 +517,12 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother7,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" }, { "title": "", @@ -557,7 +592,12 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother8,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" }, { "title": "", @@ -627,7 +667,12 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother9,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" }, { "title": "", @@ -697,7 +742,12 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother10,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" }, { "title": "", @@ -767,6 +817,11 @@ "has_keytab": false, "preserved": false, "dn": "uid=sother11,cn=users,cn=accounts,dc=ipa,dc=domain", - "sshpubkeyfp": [""] + "sshpubkeyfp": [""], + "krbextradata": "", + "krblastadminunlock": "", + "krblastfailedauth": "", + "krblastpwdchange": "", + "krbloginfailedcount": "" } ] diff --git a/src/store/Identity/stageUsers-slice.ts b/src/store/Identity/stageUsers-slice.ts index a8660d85c..21109a710 100644 --- a/src/store/Identity/stageUsers-slice.ts +++ b/src/store/Identity/stageUsers-slice.ts @@ -1,7 +1,5 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import type { RootState } from "src/store/store"; -// User data (JSON file) -import stageUsersJson from "./stageUsers.json"; // Data types import { User } from "src/utils/datatypes/globalDataTypes"; @@ -15,7 +13,7 @@ interface ChangeStatusData { } const initialState: StageUsersState = { - usersList: stageUsersJson, + usersList: [], }; const stageUsersSlice = createSlice({ @@ -109,6 +107,11 @@ const stageUsersSlice = createSlice({ preserved: newUser.preserved, dn: newUser.dn, sshpubkeyfp: newUser.sshpubkeyfp, + krbextradata: newUser.krbextradata, + krblastadminunlock: newUser.krblastadminunlock, + krblastfailedauth: newUser.krblastfailedauth, + krblastpwdchange: newUser.krblastpwdchange, + krbloginfailedcount: newUser.krbloginfailedcount, }); // Update json file }, @@ -222,6 +225,11 @@ const stageUsersSlice = createSlice({ preserved: state.usersList[j].preserved, dn: state.usersList[j].dn, sshpubkeyfp: state.usersList[j].sshpubkeyfp, + krbextradata: state.usersList[j].krbextradata, + krblastadminunlock: state.usersList[j].krblastadminunlock, + krblastfailedauth: state.usersList[j].krblastfailedauth, + krblastpwdchange: state.usersList[j].krblastpwdchange, + krbloginfailedcount: state.usersList[j].krbloginfailedcount, }; // Replace entry state.usersList[j] = updatedUser; diff --git a/src/utils/datatypes/globalDataTypes.ts b/src/utils/datatypes/globalDataTypes.ts index e7fff5f44..e0e096041 100644 --- a/src/utils/datatypes/globalDataTypes.ts +++ b/src/utils/datatypes/globalDataTypes.ts @@ -81,6 +81,11 @@ export interface User { preserved: boolean; dn: string; sshpubkeyfp: string[]; // multivalue + krbextradata: string; + krblastadminunlock: Date | string; + krblastfailedauth: Date | string; + krblastpwdchange: Date | string; + krbloginfailedcount: string; } export interface UserGroup {