From 4f7f40004361d9a63f625e5e70d0969c41d43958 Mon Sep 17 00:00:00 2001 From: Adam Young Date: Fri, 15 Oct 2010 14:06:23 -0400 Subject: password dialog added a modal dialog for resetting the password. Made the whoami varaible global, as anything dependant on the principal will require access to it. --- install/static/user.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 3 deletions(-) (limited to 'install/static/user.js') diff --git a/install/static/user.js b/install/static/user.js index e651d242..926cdf00 100644 --- a/install/static/user.js +++ b/install/static/user.js @@ -171,11 +171,68 @@ function user_status_load(container, dt, result) dt.after(dd); } -var pwd_temp = 'Reset Password'; + + +function resetpwd_on_click(){ + + function reset_password(new_password){ + var dialog = resetpwd_dialog; + + var user_pkey = $.bbq.getState('user-pkey'); + var pw_pkey; + if (user_pkey === ipa_whoami_pkey){ + pw_pkey = []; + }else{ + pw_pkey = [user_pkey]; + } + + ipa_cmd('passwd', + pw_pkey, {"password":new_password}, + function(){ + alert("Password change complete"); + dialog.dialog("close"); + }, + function(){}); + } + + + var resetpwd_dialog = + $('
'); + resetpwd_dialog.dialog( + { modal: true, + minWidth:400, + buttons: { + 'Reset Password': function(){ + var p1 = $("#password_1").val(); + var p2 = $("#password_2").val(); + if (p1 != p2){ + alert("passwords must match"); + return; + } + reset_password(p1); + }, + 'Cancel':function(){ + resetpwd_dialog.dialog('close'); + } + }}); + return false; +} + function user_password_load(container, dt, result) { - var dd = ipa_create_first_dd(this.name, pwd_temp.replace('A', 'userpassword')); - dt.after(dd); + dt.after(ipa_create_first_dd( + this.name, + $('',{ + href:"jslink", + click:resetpwd_on_click, + title:'userpassword', + text: 'reset password' + }))); } var select_temp = ''; -- cgit