fixed error update user keycloak data lost
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m17s
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m17s
This commit is contained in:
parent
28319f443f
commit
071140d98a
1 changed files with 34 additions and 15 deletions
|
|
@ -379,6 +379,20 @@ export async function getUserCountOrg(first = "", max = "", search = "", userIds
|
||||||
export async function editUser(userId: string, opts: Record<string, any>) {
|
export async function editUser(userId: string, opts: Record<string, any>) {
|
||||||
const { password, ...rest } = opts;
|
const { password, ...rest } = opts;
|
||||||
|
|
||||||
|
// Get existing user data to preserve other fields
|
||||||
|
const existingUser = await getUser(userId);
|
||||||
|
if (!existingUser) {
|
||||||
|
console.error(`[editUser] User ${userId} not found in Keycloak`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Merge existing user data with updated fields
|
||||||
|
const updatedUser = {
|
||||||
|
...existingUser,
|
||||||
|
...rest,
|
||||||
|
credentials: (password && [{ type: "password", value: opts?.password }]) || undefined,
|
||||||
|
};
|
||||||
|
|
||||||
const res = await fetch(`${KC_URL}/admin/realms/${KC_REALMS}/users/${userId}`, {
|
const res = await fetch(`${KC_URL}/admin/realms/${KC_REALMS}/users/${userId}`, {
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
headers: {
|
headers: {
|
||||||
|
|
@ -386,11 +400,7 @@ export async function editUser(userId: string, opts: Record<string, any>) {
|
||||||
"content-type": `application/json`,
|
"content-type": `application/json`,
|
||||||
},
|
},
|
||||||
method: "PUT",
|
method: "PUT",
|
||||||
body: JSON.stringify({
|
body: JSON.stringify(updatedUser),
|
||||||
enabled: true,
|
|
||||||
credentials: (password && [{ type: "password", value: opts?.password }]) || undefined,
|
|
||||||
...rest,
|
|
||||||
}),
|
|
||||||
}).catch((e) => console.log("Keycloak Error: ", e));
|
}).catch((e) => console.log("Keycloak Error: ", e));
|
||||||
|
|
||||||
if (!res) return false;
|
if (!res) return false;
|
||||||
|
|
@ -419,6 +429,24 @@ export async function updateName(
|
||||||
) {
|
) {
|
||||||
// const { password, ...rest } = opts;
|
// const { password, ...rest } = opts;
|
||||||
|
|
||||||
|
// Get existing user data to preserve other fields
|
||||||
|
const existingUser = await getUser(userId);
|
||||||
|
if (!existingUser) {
|
||||||
|
console.error(`[updateName] User ${userId} not found in Keycloak`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Merge existing user data with updated name fields
|
||||||
|
const updatedUser = {
|
||||||
|
...existingUser,
|
||||||
|
firstName,
|
||||||
|
lastName,
|
||||||
|
attributes: {
|
||||||
|
...(existingUser.attributes || {}),
|
||||||
|
prefix,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
const res = await fetch(`${KC_URL}/admin/realms/${KC_REALMS}/users/${userId}`, {
|
const res = await fetch(`${KC_URL}/admin/realms/${KC_REALMS}/users/${userId}`, {
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
headers: {
|
headers: {
|
||||||
|
|
@ -426,16 +454,7 @@ export async function updateName(
|
||||||
"content-type": `application/json`,
|
"content-type": `application/json`,
|
||||||
},
|
},
|
||||||
method: "PUT",
|
method: "PUT",
|
||||||
body: JSON.stringify({
|
body: JSON.stringify(updatedUser),
|
||||||
enabled: true,
|
|
||||||
// credentials: (password && [{ type: "password", value: opts?.password }]) || undefined,
|
|
||||||
// ...rest,
|
|
||||||
firstName,
|
|
||||||
lastName,
|
|
||||||
attributes: {
|
|
||||||
prefix,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
}).catch((e) => console.log("Keycloak Error: ", e));
|
}).catch((e) => console.log("Keycloak Error: ", e));
|
||||||
|
|
||||||
if (!res) return false;
|
if (!res) return false;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue