Browse Source

AMBARI-2657. Add a re-type new password field when changing passwords for ambari users. (Andrii Tkach via yusaku)

Yusaku Sako 12 years ago
parent
commit
fcdf751515

+ 8 - 9
ambari-web/app/controllers/main/admin/user.js

@@ -78,11 +78,13 @@ App.MainAdminUserController = Em.Controller.extend({
    * @param callback
    */
   sendCommandToServer : function(url, method, postData, callback){
-    var url =  (App.testMode) ?
-        '/data/wizard/deploy/poll_1.json' : //content is the same as ours
-        App.apiPrefix + url;
-
-    var method = App.testMode ? 'GET' : method;
+    if (App.testMode) {
+      url = '/data/users/users.json';
+      method = 'GET';
+      postData = undefined;
+    } else {
+      url = App.apiPrefix + url;
+    }
 
     $.ajax({
       type: method,
@@ -95,10 +97,7 @@ App.MainAdminUserController = Em.Controller.extend({
       },
 
       error: function (request, ajaxOptions, error) {
-        //do something
-        var message = $.parseJSON(request.responseText).message;
-        message = message.substr(message.indexOf(':') + 1); // Remove classname
-        callback(false, message);
+        callback(false, error);
         console.log('error on change component host status')
       },
 

+ 1 - 1
ambari-web/app/controllers/main/admin/user/edit.js

@@ -18,7 +18,7 @@
 
 var App = require('app');
 
-App.MainAdminUserEditController = Em.Controller.extend({
+App.MainAdminUserEditController = App.MainAdminUserController.extend({
   name:'mainAdminUserEditController',
   content:false
 })

+ 0 - 13
ambari-web/app/models/form.js

@@ -182,19 +182,6 @@ App.FormField = Em.Object.extend({ // try to realize this as view
       isError = true;
     }
 
-    if (!isError) {
-      if(this.get('validator') === 'passwordRetype'){
-        var form = this.get('form');
-        var passwordField = form.getField('password');
-        if (passwordField.get('isValid')
-          && (passwordField.get('value') != this.get('value'))
-          && passwordField.get('value') && this.get('value')
-          ) {
-          this.set('errorMessage', "Passwords are different");
-          isError = true;
-        }
-      }
-    }
     if (!isError) {
       this.set('errorMessage', '');
     }

+ 10 - 2
ambari-web/app/models/user.js

@@ -46,6 +46,7 @@ App.EditUserForm = App.Form.extend({
     { name:"userName", displayName:"Username" },
     { name:"old_password", displayName:"Current Password", displayType:"password", isRequired: false },
     { name:"new_password", displayName:"New Password", displayType:"password",  isRequired: false },
+    { name:"new_passwordRetype", displayName:"Retype New Password", displayType:"password", isRequired: false },
     { name:"admin", displayName:"Admin", displayType:"checkbox", isRequired:false },
     { name:"roles", displayName:"Role", isRequired:false, isHidden:true },
     { name:"isLdap", displayName:"Type", isRequired:false, isHidden:true }
@@ -68,14 +69,21 @@ App.EditUserForm = App.Form.extend({
   isValid:function () {
 
     var isValid = this._super();
-    thisForm = this;
+    var thisForm = this;
 
     var newPass = this.get('field.new_password');
     var oldPass = this.get('field.old_password');
+    var passRetype = this.get('field.new_passwordRetype');
 
-    if (!validator.empty(newPass.get('value')) && validator.empty(oldPass.get('value'))) {
+    if (!validator.empty(newPass.get('value'))) {
+      if(validator.empty(oldPass.get('value'))){
         oldPass.set('errorMessage', this.t('admin.users.editError.requiredField'));
         isValid = false;
+      }
+      if (newPass.get('value') != passRetype.get('value')) {
+        passRetype.set('errorMessage', this.t('admin.users.createError.passwordValidation'));
+        isValid = false;
+      }
     }
 
     return isValid;

+ 1 - 2
ambari-web/app/views/main/admin/user/edit.js

@@ -22,7 +22,6 @@ App.MainAdminUserEditView = Em.View.extend({
   templateName: require('templates/main/admin/user/edit'),
   userId: false,
   edit: function(event){
-    var parent_controller=this.get("controller").controllers.mainAdminUserController;
     var form = this.get("userForm");
     if(form.isValid()) {
       var Users={};
@@ -40,7 +39,7 @@ App.MainAdminUserEditView = Em.View.extend({
         Users.old_password = form.getField("old_password").get('value');
       }
 
-      parent_controller.sendCommandToServer('/users/' + form.getField("userName").get('value'), "PUT" , {
+      this.get("controller").sendCommandToServer('/users/' + form.getField("userName").get('value'), "PUT" , {
        Users:Users
       }, function (success, message) {
         if (!success) {