Adding a Change Password option.

This commit is contained in:
Scott Idem
2025-04-11 13:04:03 -04:00
parent deef453580
commit bb84b4bbb4
3 changed files with 82 additions and 2 deletions

View File

@@ -279,3 +279,62 @@ export async function qry_ae_obj_li__user_email(
} }
return ae_promises.qry__user_email; return ae_promises.qry__user_email;
} }
// Change user password
// endpoint: PATCH /user/{user_id}/change_password
// params:
// data_kv: password (the new password)
// Updated 2025-04-11
export async function auth_ae_obj__user_id_change_password(
{
api_cfg,
account_id,
user_id,
password,
params = {},
log_lvl = 0
}: {
api_cfg: any,
account_id: string,
user_id: string,
password: string,
params?: key_val,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** auth_ae_obj__user_id_change_password() *** account_id=${account_id} user_id=${user_id}`);
}
let endpoint = `/user/${user_id}/change_password`;
params['user_id'] = user_id; // Required
if (log_lvl > 1) {
console.log(`auth_ae_obj__user_id_change_password() - params:`, params);
}
ae_promises.change_password__user_id = await api.patch_object({
api_cfg: api_cfg,
endpoint: endpoint,
params: params,
data: { password: password },
log_lvl: log_lvl
})
.then(async function (change_password_result) {
if (change_password_result) {
return change_password_result;
} else {
console.log('No results returned.');
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
});
if (log_lvl) {
console.log('ae_promises.change_password__user_id:', ae_promises.change_password__user_id);
}
return ae_promises.change_password__user_id;
}

View File

@@ -568,6 +568,24 @@ function handle_lookup_user_email({email}: {email: string}) {
<span class="text-sm text-gray-500"> <span class="text-sm text-gray-500">
{$ae_loc?.user.username ?? '-- not set --'} {$ae_loc?.user.username ?? '-- not set --'}
</span> </span>
<!-- Display change password option if the user is signed in and in Edit Mode -->
{#if $ae_loc.edit_mode}
<button
type="button"
class="btn btn-sm variant-filled-warning"
title="Change Password"
onclick={() => {
$ae_sess.show__modal_change_password = true;
}}
>
<LockKeyhole class="mx-1" />
<span class="hidden sm:inline">
Change Password
</span>
</button>
{/if}
<!-- Display sign out option if the user is signed in --> <!-- Display sign out option if the user is signed in -->
<button <button
type="button" type="button"
@@ -580,7 +598,9 @@ function handle_lookup_user_email({email}: {email: string}) {
}} }}
> >
<LogOut class="mx-1" /> <LogOut class="mx-1" />
Sign Out <span class="hidden sm:inline">
Sign Out
</span>
</button> </button>
</div> </div>

View File

@@ -204,7 +204,7 @@ async function change_journal_id() {
console.error('Error updating journal entry:', error); console.error('Error updating journal entry:', error);
alert('Failed to update journal entry.'); alert('Failed to update journal entry.');
} }
$journals_slct.journal_id = tmp_entry_obj?.journal_id;
goto(`/journals/${tmp_entry_obj?.journal_id}`); goto(`/journals/${tmp_entry_obj?.journal_id}`);
} }
</script> </script>
@@ -674,6 +674,7 @@ async function change_journal_id() {
class=" class="
flex-grow flex-grow
flex flex-col items-center justify-center flex flex-col items-center justify-center
w-full max-w-6xl
" "
> >