module ZendeskAppsSupport::Validations::SecureSettings

Constants

SECURABLE_KEYWORDS
SECURABLE_KEYWORDS_REGEXP

Public Class Methods

call(package) click to toggle source
# File lib/zendesk_apps_support/validations/secure_settings.rb, line 10
def call(package)
  manifest_params = package.manifest.parameters

  insecure_params_found = manifest_params.any? { |param| insecure_param?(param) }
  package.warnings << secure_settings_warning if insecure_params_found

  secure_or_hidden_default_param_found = manifest_params.any? { |param| secure_or_hidden_default_param?(param) }
  package.warnings << hidden_default_parameter_warning if secure_or_hidden_default_param_found
end

Private Class Methods

hidden_default_parameter_warning() click to toggle source
# File lib/zendesk_apps_support/validations/secure_settings.rb, line 34
def hidden_default_parameter_warning
  I18n.t(
    'txt.apps.admin.error.app_build.translation.default_secure_or_hidden_parameter_in_manifest'
  )
end
insecure_param?(parameter) click to toggle source
# File lib/zendesk_apps_support/validations/secure_settings.rb, line 26
def insecure_param?(parameter)
  parameter.name =~ SECURABLE_KEYWORDS_REGEXP && type_password_or_text?(parameter.type) && !parameter.secure
end
secure_or_hidden_default_param?(parameter) click to toggle source
# File lib/zendesk_apps_support/validations/secure_settings.rb, line 22
def secure_or_hidden_default_param?(parameter)
  parameter.default? && (parameter.secure || parameter.type == 'hidden')
end
secure_settings_warning() click to toggle source
# File lib/zendesk_apps_support/validations/secure_settings.rb, line 40
def secure_settings_warning
  I18n.t(
    'txt.apps.admin.error.app_build.translation.insecure_token_parameter_in_manifest',
    link: 'https://developer.zendesk.com/apps/docs/developer-guide/using_sdk#using-secure-settings'
  )
end
type_password_or_text?(parameter_type) click to toggle source
# File lib/zendesk_apps_support/validations/secure_settings.rb, line 30
def type_password_or_text?(parameter_type)
  parameter_type == 'text' || parameter_type == 'password'
end