This makes account signup enforcement consistent when signup is disabled at the installation level. Email signup and Google signup now stay blocked regardless of whether the config value is stored as a string or a boolean. This effectively covers the config-loader path, where `YAML.safe_load` reads `value: false` from `installation_config.yml` as a native boolean and persists it that way. - Normalized the account signup check so disabled signup is handled consistently across config value types. - Reused the same check across API signup and Google signup entry points. - Added regression coverage for the disabled-signup cases in the existing controller specs. --------- Co-authored-by: Vishnu Narayanan <iamwishnu@gmail.com>
22 lines
704 B
Ruby
22 lines
704 B
Ruby
class GlobalConfigService
|
|
def self.load(config_key, default_value)
|
|
config = GlobalConfig.get(config_key)[config_key]
|
|
return config if config.present?
|
|
|
|
# To support migrating existing instance relying on env variables
|
|
# TODO: deprecate this later down the line
|
|
config_value = ENV.fetch(config_key) { default_value }
|
|
|
|
return if config_value.blank?
|
|
|
|
i = InstallationConfig.where(name: config_key).first_or_create(value: config_value, locked: false)
|
|
# To clear a nil value that might have been cached in the previous call
|
|
GlobalConfig.clear_cache
|
|
i.value
|
|
end
|
|
|
|
def self.account_signup_enabled?
|
|
load('ENABLE_ACCOUNT_SIGNUP', 'false').to_s != 'false'
|
|
end
|
|
end
|