You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2013/02/02 03:21:59 UTC

svn commit: r1441685 - in /incubator/ambari/trunk: CHANGES.txt ambari-web/app/messages.js ambari-web/app/models/user.js ambari-web/app/utils/validator.js

Author: yusaku
Date: Sat Feb  2 02:21:58 2013
New Revision: 1441685

URL: http://svn.apache.org/viewvc?rev=1441685&view=rev
Log:
AMBARI-1333. Add username validation for Ambari local users. (yusaku)

Modified:
    incubator/ambari/trunk/CHANGES.txt
    incubator/ambari/trunk/ambari-web/app/messages.js
    incubator/ambari/trunk/ambari-web/app/models/user.js
    incubator/ambari/trunk/ambari-web/app/utils/validator.js

Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1441685&r1=1441684&r2=1441685&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Sat Feb  2 02:21:58 2013
@@ -38,6 +38,8 @@ Trunk (unreleased changes):
 
  IMPROVEMENTS
 
+ AMBARI-1333. Add username validation for Ambari local users. (yusaku) 
+
  AMBARI-1329. Adjust job browser column sizing. (yusaku)
  
  AMBARI-1327. Add Hosts. Remove existig hosts display. (Alexandr Antonenko via jspeidel)

Modified: incubator/ambari/trunk/ambari-web/app/messages.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/messages.js?rev=1441685&r1=1441684&r2=1441685&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/messages.js (original)
+++ incubator/ambari/trunk/ambari-web/app/messages.js Sat Feb  2 02:21:58 2013
@@ -235,6 +235,10 @@ Em.I18n.translations = {
   'admin.users.username':'Username',
   'admin.users.createSuccess': 'User successfully created.',
   'admin.users.createError': 'Error occurred while user creating.',
+  'admin.users.createError.userNameValidation': 'User name should contains only letters and digits and start with letter',
+  'admin.users.createError.passwordValidation': 'Passwords are different',
+  'admin.users.createError.userNameExists': 'User with the same name is already exists',
+  'admin.users.editError.requiredField': 'This is required',
 
   'question.sure':'Are you sure?',
   'yes':'Yes',

Modified: incubator/ambari/trunk/ambari-web/app/models/user.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/models/user.js?rev=1441685&r1=1441684&r2=1441685&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/models/user.js (original)
+++ incubator/ambari/trunk/ambari-web/app/models/user.js Sat Feb  2 02:21:58 2013
@@ -75,7 +75,7 @@ App.EditUserForm = App.Form.extend({
     var oldPass = this.get('field.old_password');
 
     if (!validator.empty(newPass.get('value')) && validator.empty(oldPass.get('value'))) {
-        oldPass.set('errorMessage', "This is required");
+        oldPass.set('errorMessage', this.t('admin.users.editError.requiredField'));
         isValid = false;
     }
 
@@ -122,7 +122,7 @@ App.CreateUserForm = App.Form.extend({
 
     if (!validator.empty(passField.get('value'))) {
       if (passField.get('value') != passRetype.get('value')) {
-        passRetype.set('errorMessage', "Passwords are different");
+        passRetype.set('errorMessage', this.t('admin.users.createError.passwordValidation'));
         isValid = false;
       }
     }
@@ -131,10 +131,16 @@ App.CreateUserForm = App.Form.extend({
       var users = App.User.find();
       var userNameField = this.getField('userName');
       var userName = userNameField.get('value');
-        if (users.mapProperty('userName').contains(userName)) {
-          userNameField.set('errorMessage', 'User with the same name is already exists');
-          return isValid = false;
-        }
+
+      if (!validator.isValidUserName(userName)) {
+        userNameField.set('errorMessage', this.t('admin.users.createError.userNameValidation'));
+        isValid = false;
+      }
+
+      if (users.mapProperty('userName').contains(userName)) {
+        userNameField.set('errorMessage', this.t('admin.users.createError.userNameExists'));
+        return isValid = false;
+      }
     }
 
     return isValid;

Modified: incubator/ambari/trunk/ambari-web/app/utils/validator.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/utils/validator.js?rev=1441685&r1=1441684&r2=1441685&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/utils/validator.js (original)
+++ incubator/ambari/trunk/ambari-web/app/utils/validator.js Sat Feb  2 02:21:58 2013
@@ -81,6 +81,16 @@ module.exports = {
     return domainRegex.test(value);
   },
 
+  /**
+   * validate username
+   * @param value
+   * @return {Boolean}
+   */
+  isValidUserName: function(value) {
+    var usernameRegex = /^[a-z]([-a-z0-9]{0,30})\$?$/;
+    return usernameRegex.test(value);
+  },
+
   empty:function (e) {
     switch (e) {
       case "":