# UID=1000
# GID=1000
+# PAM authentication (optional)
+# PAM_ENABLED=true
+# Suffix for email address generation (nil by default)
+# PAM_DEFAULT_SUFFIX=pam
+# Name of the pam service (pam "auth" section is evaluated)
+# PAM_DEFAULT_SERVICE=rpam
+# Name of the pam service used for checking if an user can register (pam "account" section is evaluated)
+# PAM_CONTROLLED_SERVICE=rpam
+
# Optional CAS authentication (cf. omniauth-cas) :
# CAS_ENABLED=true
# CAS_URL=https://sso.myserver.com/
gem 'devise', '~> 4.4'
gem 'devise-two-factor', '~> 3.0'
-gem 'devise_pam_authenticatable2', '~> 8.0'
+gem 'devise_pam_authenticatable2', '~> 8.0', install_if: -> { ENV['PAM_ENABLED'] == 'true' }
gem 'omniauth-cas', '~> 1.1', install_if: -> { ENV['CAS_ENABLED'] == 'true' }
gem 'omniauth-saml', '~> 1.8', install_if: -> { ENV['SAML_ENABLED'] == 'true' }
gem 'omniauth', '~> 1.2'
devise :registerable, :recoverable, :rememberable, :trackable, :validatable,
:confirmable
- devise :pam_authenticatable
+ devise :pam_authenticatable if Devise.pam_authentication
devise :omniauthable
belongs_to :account, inverse_of: :user
# so you need to do it manually. For the users scope, it would be:
# config.omniauth_path_prefix = '/my_engine/users/auth'
- # PAM: only look for email field
- config.usernamefield = nil
- config.emailfield = "email"
-
- # authentication with pam possible
- # if not enabled, all pam settings are ignored
- #config.pam_authentication = true
- # check if email is actually a username
- config.check_at_sign = true
- # suffix for email address generation (warning: without pam must provide email in the pam environment)
- config.pam_default_suffix = "pam"
- # name of the pam service
- # pam "auth" section is evaluated
- config.pam_default_service = "rpam"
- # name of the pam service used for checking if an user can register
- # pam "account" section is evaluated
- # nil for allowing registration of pam names (not recommended)
- config.pam_controlled_service = "rpam"
+ if ENV['PAM_ENABLED'] == 'true'
+ config.pam_authentication = true
+ config.usernamefield = nil
+ config.emailfield = 'email'
+ config.check_at_sign = true
+ config.pam_default_suffix = ENV.fetch('PAM_DEFAULT_SUFFIX') { nil }
+ config.pam_default_service = ENV.fetch('PAM_DEFAULT_SERVICE') { 'rpam' }
+ config.pam_controlled_service = ENV.fetch('PAM_CONTROLLED_SERVICE') { 'rpam' }
+ end
end