summaryrefslogtreecommitdiffstats
path: root/install/static
diff options
context:
space:
mode:
authorAdam Young <ayoung@redhat.com>2010-10-15 14:06:23 -0400
committerAdam Young <ayoung@redhat.com>2010-10-20 10:54:51 -0400
commit4f7f40004361d9a63f625e5e70d0969c41d43958 (patch)
tree59314d10c4ae371c500491e9c740570cb08ad33b /install/static
parent2c5f3cfd60575d7c72e6be8124b34c88b90d9fb7 (diff)
downloadfreeipa-4f7f40004361d9a63f625e5e70d0969c41d43958.tar.gz
freeipa-4f7f40004361d9a63f625e5e70d0969c41d43958.tar.xz
freeipa-4f7f40004361d9a63f625e5e70d0969c41d43958.zip
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.
Diffstat (limited to 'install/static')
-rw-r--r--install/static/ipa.css23
-rw-r--r--install/static/user.js63
-rw-r--r--install/static/webui.js11
3 files changed, 90 insertions, 7 deletions
diff --git a/install/static/ipa.css b/install/static/ipa.css
index 908875b8a..940a1d57b 100644
--- a/install/static/ipa.css
+++ b/install/static/ipa.css
@@ -279,6 +279,7 @@ span.main-separator{
.strikethrough { text-decoration: line-through; }
+
.certificate-status-valid {
list-style-type: circle;
color: #008000;
@@ -297,3 +298,25 @@ span.main-separator{
.certificate-status-active {
list-style-type: disc;
}
+
+dl.modal {
+ clear: both;
+ margin-left: 15px;
+ margin-top: 18px;
+ white-space: nowrap;
+}
+
+dl.modal dt {
+ clear: left;
+ float: left;
+ padding-bottom: 0px;
+ padding-right: 0px;
+ text-align: right;
+ width: 150px;
+}
+
+dl.modal dd {
+ float: left;
+ padding-bottom: 0px;
+ margin-left: 10px;
+}
diff --git a/install/static/user.js b/install/static/user.js
index e651d242c..926cdf00a 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 = '<a href="jslink" onclick="return (resetpwd_on_click(this))" title="A">Reset Password</a>';
+
+
+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 =
+ $('<div ><dl class="modal">'+
+ '<dt>New Password</dt>'+
+ '<dd class="first" ><input id="password_1" type="password"/></dd>'+
+ '<dt>Repeat Password</dt>'+
+ '<dd class="first"><input id="password_2" type="password"/></dd>'+
+ '</dl></div>');
+ 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,
+ $('<a/>',{
+ href:"jslink",
+ click:resetpwd_on_click,
+ title:'userpassword',
+ text: 'reset password'
+ })));
}
var select_temp = '<select title="st"></select>';
diff --git a/install/static/webui.js b/install/static/webui.js
index a53824bde..60ccc25e6 100644
--- a/install/static/webui.js
+++ b/install/static/webui.js
@@ -52,19 +52,22 @@ var self_serv_tab_set =
{ name:'identity', label:'IDENTITY', children: [
{name:'user', label:'Users', setup:ipa_entity_setup}]}];
+
+var ipa_whoami_pkey;
+
+
/* main (document onready event handler) */
$(function() {
- var whoami_pkey;
function whoami_on_win(data, text_status, xhr) {
$(window).bind('hashchange', window_hashchange);
if (!data.error){
var whoami = data.result.result[0];
- whoami_pkey=whoami.uid[0];
+ ipa_whoami_pkey=whoami.uid[0];
$('#loggedinas').find('strong').text(whoami.krbprincipalname[0]);
$('#loggedinas a').fragment(
- {'user-facet':'details', 'user-pkey':whoami_pkey},2);
+ {'user-facet':'details', 'user-pkey':ipa_whoami_pkey},2);
var navigation = $('#navigation');
@@ -75,7 +78,7 @@ $(function() {
}else{
nav_create(self_serv_tab_set, navigation, 'tabs');
- var state = {'user-pkey':whoami_pkey ,
+ var state = {'user-pkey':ipa_whoami_pkey ,
'user-facet': jQuery.bbq.getState('user-facet') ||
'details'};
$.bbq.pushState(state);