Name

global.PasswordPolicyUtil

Description

No description available

Script

var PasswordPolicyUtil = Class.create();
PasswordPolicyUtil.prototype = Object.extendsObject(AbstractAjaxProcessor, {
  setPasswordPolicy: function(strength) {
      var passwordPolicyGR = new GlideRecord("password_policy");
      if (passwordPolicyGR.isValid()) {
          passwordPolicyGR.get("3054afe6737a3300616ca9843cf6a735");
          if ("high" == strength) {
              this.setHighStrengthPasswordPolicy(passwordPolicyGR);
          }
          if ("medium" == strength) {
              this.setMediumStrengthPasswordPolicy(passwordPolicyGR);
          }
          passwordPolicyGR.update();
      }
  },

  setMediumStrengthPasswordPolicy: function(policyGR) {
      policyGR.setValue('minimum_uppercase_characters', PasswordPolicyDefaults.medium_defaults.minimum_uppercase_characters);
      policyGR.setValue('minimum_lowercase_characters', PasswordPolicyDefaults.medium_defaults.minimum_lowercase_characters);
      policyGR.setValue('minimum_numeric_characters', PasswordPolicyDefaults.medium_defaults.minimum_numeric_characters);
      policyGR.setValue('minimum_special_characters', PasswordPolicyDefaults.medium_defaults.minimum_special_characters);
      policyGR.setValue('password_strength', 20);
  },

  setHighStrengthPasswordPolicy: function(policyGR) {
      policyGR.setValue('minimum_uppercase_characters', PasswordPolicyDefaults.high_defaults.minimum_uppercase_characters);
      policyGR.setValue('minimum_lowercase_characters', PasswordPolicyDefaults.high_defaults.minimum_lowercase_characters);
      policyGR.setValue('minimum_numeric_characters', PasswordPolicyDefaults.high_defaults.minimum_numeric_characters);
      policyGR.setValue('minimum_special_characters', PasswordPolicyDefaults.high_defaults.minimum_special_characters);
      policyGR.setValue('password_strength', 30);

  },

  getPasswordPolicy: function() {
      var passwordPolicyGR = new GlideRecord("password_policy");
      if (passwordPolicyGR.isValid()) {
          passwordPolicyGR.get("3054afe6737a3300616ca9843cf6a735");
          var passwordStrength = passwordPolicyGR.getValue('password_strength');
          if (passwordStrength == 20) {
              return "medium";
          } else if (passwordStrength == 30) {
              return "high";
          }
      }
      return null;
  },

  getDefaultStrength: function() {
      return JSON.stringify(PasswordPolicyDefaults.default_defaults);
  },

  getDefaultStrongStrength: function() {
      return JSON.stringify(PasswordPolicyDefaults.default_strong_defaults);
  },

  getMediumStrength: function() {
      return JSON.stringify(PasswordPolicyDefaults.medium_defaults);
  },

  getHighStrength: function() {
      return JSON.stringify(PasswordPolicyDefaults.high_defaults);
  },

  generatePassword: function() {
      var userName = this.getParameter("sysparm_user");
      try {
          var password = SNC.PasswordPolicyEvaluator.generateUserPassword(userName);
      } catch (e) {
          gs.error("Error while generating new password. " + e.getMessage());
          return 'false';
      }
      return password;
  },

  setPassword: function() {
      var userName = this.getParameter("sysparm_user");
      var password = String(this.getParameter("sysparm_password"));
      var result = SNC.PasswordPolicyEvaluator.setUserPassword(userName, password);
      var parsedResult = JSON.parse(result);
      var output = this.newItem("output");
      var success = parsedResult.success;
      output.setAttribute("success", success);
      var message = "";
      if (success)
          message = gs.getMessage('Password saved succesfully.');
      else
          message = parsedResult.message;

      output.setAttribute("message", message);
  },
  type: 'PasswordPolicyUtil'
});

Sys ID

eba9be64531333009e33ddeeff7b128c

Offical Documentation

Official Docs: