[IMP]Improve code in change password.

bzr revid: vja@vja-desktop-20110823125802-c4jhe4qqjn2ra7n4
This commit is contained in:
vishmita 2011-08-23 18:28:02 +05:30
parent 9d93821bae
commit f2325382ca
3 changed files with 20 additions and 24 deletions

View File

@ -295,15 +295,18 @@ class Session(openerpweb.Controller):
} }
@openerpweb.jsonrequest @openerpweb.jsonrequest
def change_password (self,req,fields): def change_password (self,req,fields):
old_password, new_password,confirm_password = operator.itemgetter('old_pwd', 'new_pwd','confirm_pwd')( old_password, new_password,confirm_password = operator.itemgetter('old_pwd', 'new_password','confirm_pwd')(
dict(map(operator.itemgetter('name', 'value'), fields))) dict(map(operator.itemgetter('name', 'value'), fields)))
if not (old_password.strip() and new_password.strip() and confirm_password.strip()):
return {'error':'All passwords have to be filled.','title': 'Change Password'}
if new_password != confirm_password:
return {'error': 'The new password and its confirmation must be identical.','title': 'Change Password'}
try: try:
if req.session.model('res.users').change_password( if req.session.model('res.users').change_password(
old_password, new_password): old_password, new_password):
req.session.password = new_password req.session.password = new_password;
return dict(changed=True) return dict(changed=True)
raise redirect('/') except:
except xmlrpclib.Fault, e:
return {'error': 'Original password incorrect, your password was not changed.', 'title': 'Change Password'} return {'error': 'Original password incorrect, your password was not changed.', 'title': 'Change Password'}
@openerpweb.jsonrequest @openerpweb.jsonrequest

View File

@ -459,7 +459,7 @@ openerp.base.Database = openerp.base.Widget.extend({
} }
self.notification.notify("Changed Password", "Password has been changed successfully"); self.notification.notify("Changed Password", "Password has been changed successfully");
}); });
} },
}); });
} }
}); });
@ -681,22 +681,15 @@ openerp.base.Header = openerp.base.Widget.extend({
this.dialog.open(); this.dialog.open();
this.dialog.$element.html(QWeb.render("Change_Pwd", self)); this.dialog.$element.html(QWeb.render("Change_Pwd", self));
this.dialog.$element.find("form[name=change_password_form]").validate({ this.dialog.$element.find("form[name=change_password_form]").validate({
messages: {
old_password: "Please enter your previous password",
new_password: "Please enter your new password",
confirm_password: {
required: "Please confirm your new password",
equalTo: "The confirmation does not match the password"
},
},
submitHandler: function (form) { submitHandler: function (form) {
console.log('form',form)
self.rpc("/base/session/change_password",{ self.rpc("/base/session/change_password",{
'fields': $("form[name=change_password_form]").serializeArray() 'fields': $(form).serializeArray()
}, function(result) { }, function(result) {
if (result.error) { if (result.error) {
self.display_error(result); self.display_error(result);
return; return;
} };
self.notification.notify("Changed Password", "Password has been changed successfully"); self.notification.notify("Changed Password", "Password has been changed successfully");
self.dialog.close(); self.dialog.close();
}); });

View File

@ -1309,21 +1309,21 @@
</t> </t>
<t t-name="Change_Pwd"> <t t-name="Change_Pwd">
<form name="change_password_form" class="oe_forms" method="POST"> <form name="change_password_form" class="oe_forms" method="POST">
<table align="center" class="db_option_table"> <table align="center">
<tr> <tr>
<td><label for="old_pwd">Old Password:</label></td> <td><label for="old_pwd">Old Password:</label></td>
<td><input type="password" name="old_pwd" class="required" <td><input type="password" name="old_pwd"
minlength="1" autofocus="autofocus"/></td> minlength="1" autofocus="autofocus"/></td>
</tr> </tr>
<tr> <tr>
<td><label for="new_pwd">New Password:</label></td> <td><label for="new_password">New Password:</label></td>
<td><input type="password" name="new_pwd" class="required" <td><input type="password" name="new_password"
minlength="1"/></td> minlength="1" autofocus="autofocus"/></td>
</tr> </tr>
<tr> <tr>
<td><label for="confirm_pwd">Confirm Password:</label></td> <td><label for="confirm_pwd">Confirm Password:</label></td>
<td><input type="password" name="confirm_pwd" class="required" <td><input type="password" name="confirm_pwd"
equalTo="input[name=new_pwd]" minlength="1"/></td> minlength="1"/></td>
</tr> </tr>
<tr> <tr>
<td colspan="2" align="right"><input type="submit" value="Change Password"/></td> <td colspan="2" align="right"><input type="submit" value="Change Password"/></td>