Module: Decidim::Suomifi

Includes:
ActiveSupport::Configurable
Defined in:
lib/decidim/suomifi.rb,
lib/decidim/suomifi/engine.rb,
lib/decidim/suomifi/version.rb,
lib/decidim/suomifi/test/runtime.rb,
lib/decidim/suomifi/test/cert_store.rb,
lib/decidim/suomifi/mail_interceptors.rb,
lib/decidim/suomifi/verification/engine.rb,
lib/decidim/suomifi/verification/manager.rb,
lib/decidim/suomifi/authentication/errors.rb,
lib/decidim/suomifi/authentication/authenticator.rb,
lib/generators/decidim/suomifi/install_generator.rb,
app/controllers/decidim/suomifi/sessions_controller.rb,
lib/decidim/suomifi/verification/metadata_collector.rb,
app/controllers/decidim/suomifi/omniauth_callbacks_controller.rb,
app/controllers/decidim/suomifi/verification/authorizations_controller.rb,
lib/decidim/suomifi/mail_interceptors/generated_recipients_interceptor.rb

Defined Under Namespace

Modules: Authentication, Generators, MailInterceptors, Test, Verification Classes: Engine, OmniauthCallbacksController, SessionsController

Constant Summary collapse

VERSION =
"0.18.1"
DECIDIM_VERSION =
"~> 0.18.0"

Class Method Summary collapse

Class Method Details

.application_hostObject

Used to determine the default service provider entity ID in case not specifically set by the ‘sp_entity_id` configuration option.



146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/decidim/suomifi.rb', line 146

def self.application_host
  conf = Rails.application.config
  url_options = conf.action_controller.default_url_options
  url_options = conf.action_mailer.default_url_options if !url_options || !url_options[:host]
  url_options ||= {}

  host = url_options[:host]
  port = url_options[:port]
  if host.blank?
    # Default to local development environment
    host = "http://localhost"
    port ||= 3000
  end

  return "#{host}:#{port}" if port && ![80, 443].include?(port.to_i)

  host
end

.authenticator_for(organization, oauth_hash) ⇒ Object



99
100
101
# File 'lib/decidim/suomifi.rb', line 99

def self.authenticator_for(organization, oauth_hash)
  authenticator_class.new(organization, oauth_hash)
end

.certificateObject



119
120
121
122
123
# File 'lib/decidim/suomifi.rb', line 119

def self.certificate
  return File.read(certificate_file) if certificate_file

  config.certificate
end

.configureObject



94
95
96
97
# File 'lib/decidim/suomifi.rb', line 94

def self.configure
  @configured = true
  super
end

.configured?Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/decidim/suomifi.rb', line 90

def self.configured?
  @configured
end

.modeObject



103
104
105
106
107
108
109
110
111
# File 'lib/decidim/suomifi.rb', line 103

def self.mode
  return config.mode if config.mode
  return :production unless Rails.application.secrets.omniauth
  return :production unless Rails.application.secrets.omniauth[:suomifi]

  # Read the mode from the secrets
  secrets = Rails.application.secrets.omniauth[:suomifi]
  secrets[:mode] == "test" ? :test : :production
end

.omniauth_settingsObject



131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/decidim/suomifi.rb', line 131

def self.omniauth_settings
  settings = {
    mode: mode,
    scope_of_data: scope_of_data,
    sp_entity_id: sp_entity_id,
    certificate: certificate,
    private_key: private_key,
    idp_slo_session_destroy: idp_slo_session_destroy
  }
  settings.merge!(config.extra) if config.extra.is_a?(Hash)
  settings
end

.private_keyObject



125
126
127
128
129
# File 'lib/decidim/suomifi.rb', line 125

def self.private_key
  return File.read(private_key_file) if private_key_file

  config.private_key
end

.sp_entity_idObject



113
114
115
116
117
# File 'lib/decidim/suomifi.rb', line 113

def self.sp_entity_id
  return config.sp_entity_id if config.sp_entity_id

  "#{application_host}/users/auth/suomifi/metadata"
end