Code coverage report for app/models/user.js

Statements: 74.36% (29 / 39)      Branches: 78.57% (11 / 14)      Functions: 66.67% (4 / 6)      Lines: 73.68% (28 / 38)      Ignored: none     

All files » app/models/ » user.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118    1                                     1 1   1                                                   1         5         5   5 5   5 4           5 4 4 4   4 1 1       4       3 3 3 3   3 1 1   3                                       1  
'use strict';
 
;require.register("models/user", function (exports, require, module) {
  /**
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
 
  var App = require('app');
  var validator = require('utils/validator');
 
  App.User = DS.Model.extend({
    userName: DS.attr('string'),
    id: Em.computed.alias('userName'),
    userType: DS.attr('string'),
    auditItems: DS.hasMany('App.ServiceAudit'),
    admin: DS.attr('boolean'),
    operator: DS.attr('boolean'),
    clusterUser: DS.attr('boolean'),
 
    /**
     * List of permissions assigned to user
     *  Available permissions:
     *    AMBARI.ADMINISTRATOR
     *    CLUSTER.USER
     *    CLUSTER.ADMINISTRATOR
     *    VIEW.USER
     * @property {Array} permissions
     **/
    permissions: DS.attr('array'),
 
    /**
     * @type {Boolean}
     */
    isLdap: Em.computed.equal('userType', 'LDAP')
  });
 
  App.CreateUserForm = App.Form.extend({
    className: App.User,
    object: Em.computed.alias('App.router.mainAdminUserCreateController.content'),
 
    fieldsOptions: [{ name: "userName", displayName: "Username", toLowerCase: function () {
        var v = this.get('value');this.set('value', v.toLowerCase());
      }.observes('value') }, { name: "password", displayName: "Password", displayType: "password", isRequired: true }, { name: "passwordRetype", displayName: "Retype Password", displayType: "password", validator: "passwordRetype", isRequired: true }, { name: "admin", displayName: "Admin", displayType: "checkbox", isRequired: false, defaultValue: true }],
    fields: [],
 
    isValid: function isValid() {
      var isValid = this._super();
 
      var passField = this.get('field.password');
      var passRetype = this.get('field.passwordRetype');
 
      if (!validator.empty(passField.get('value'))) {
        Iif (passField.get('value') != passRetype.get('value')) {
          passRetype.set('errorMessage', this.t('admin.users.createError.passwordValidation'));
          isValid = false;
        }
      }
 
      if (isValid) {
        var users = App.User.find();
        var userNameField = this.getField('userName');
        var userName = userNameField.get('value');
 
        if (users.mapProperty('userName').contains(userName)) {
          userNameField.set('errorMessage', this.t('admin.users.createError.userNameExists'));
          return isValid = false;
        }
      }
 
      return isValid;
    },
 
    isWarn: function isWarn() {
      var isWarn = false;
      var userNameField = this.getField('userName');
      userNameField.set('warnMessage', '');
      var userName = userNameField.get('value');
 
      if (this.isValid() && !validator.isValidUserName(userName)) {
        userNameField.set('warnMessage', this.t('users.userName.validationFail'));
        isWarn = true;
      }
      return isWarn;
    },
 
    save: function save() {
 
      var object = this.get('object');
      var formValues = {};
      $.each(this.get('fields'), function () {
        formValues[Ember.String.decamelize(this.get('name'))] = this.get('value');
      });
 
      if (this.get('className')) {
        App.store.safeLoad(this.get('className'), App.dateTime(), formValues);
      }
 
      this.set('result', 1);
 
      return true;
    }
  });
  App.User.FIXTURES = [];
});