[IMP]Improve code in change password.
authorvishmita <vja@vja-desktop>
Tue, 23 Aug 2011 12:58:02 +0000 (18:28 +0530)
committervishmita <vja@vja-desktop>
Tue, 23 Aug 2011 12:58:02 +0000 (18:28 +0530)
bzr revid: vja@vja-desktop-20110823125802-c4jhe4qqjn2ra7n4

addons/base/controllers/main.py
addons/base/static/src/js/chrome.js
addons/base/static/src/xml/base.xml

index 6a7f143..9493620 100644 (file)
@@ -295,15 +295,18 @@ class Session(openerpweb.Controller):
         }
     @openerpweb.jsonrequest
     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)))
+        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:
             if req.session.model('res.users').change_password(
                 old_password, new_password):
-                req.session.password = new_password
-            return dict(changed=True)
-            raise redirect('/')
-        except xmlrpclib.Fault, e:
+                req.session.password = new_password;
+                return dict(changed=True)
+        except:
             return {'error': 'Original password incorrect, your password was not changed.', 'title': 'Change Password'}
             
     @openerpweb.jsonrequest
index d0901e3..1a32894 100644 (file)
@@ -459,7 +459,7 @@ openerp.base.Database = openerp.base.Widget.extend({
                     }
                     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.$element.html(QWeb.render("Change_Pwd", self));
         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) {
+                console.log('form',form)
                 self.rpc("/base/session/change_password",{
-                    'fields': $("form[name=change_password_form]").serializeArray()
+                    'fields': $(form).serializeArray()
                 }, function(result) {
                     if (result.error) {
                         self.display_error(result);
                         return;
-                    }
+                    };
                     self.notification.notify("Changed Password", "Password has been changed successfully");
                     self.dialog.close();
                 });
index 31c5ac6..03257f7 100644 (file)
 </t>
 <t t-name="Change_Pwd">
     <form name="change_password_form" class="oe_forms" method="POST">
-        <table align="center" class="db_option_table">
+        <table align="center">
             <tr>
                 <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>
             </tr>
             <tr>
-            <td><label for="new_pwd">New Password:</label></td>
-            <td><input type="password" name="new_pwd" class="required"
-                       minlength="1"/></td>
+            <td><label for="new_password">New Password:</label></td>
+            <td><input type="password" name="new_password"
+                       minlength="1" autofocus="autofocus"/></td>
             </tr>
-        <tr>
+            <tr>
                 <td><label for="confirm_pwd">Confirm Password:</label></td>
-                <td><input type="password" name="confirm_pwd" class="required"
-                           equalTo="input[name=new_pwd]" minlength="1"/></td>
+                <td><input type="password" name="confirm_pwd"
+                             minlength="1"/></td>
             </tr>
             <tr>
                 <td colspan="2" align="right"><input type="submit" value="Change Password"/></td>