mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-18 20:59:39 +02:00
43 lines
1,018 B
Ruby
43 lines
1,018 B
Ruby
module SelfHostable
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
helper_method :self_hosted?, :self_hosted_first_login?
|
|
|
|
prepend_before_action :verify_self_host_config
|
|
end
|
|
|
|
private
|
|
def self_hosted?
|
|
Rails.configuration.app_mode.self_hosted?
|
|
end
|
|
|
|
def self_hosted_first_login?
|
|
self_hosted? && User.count.zero?
|
|
end
|
|
|
|
def verify_self_host_config
|
|
return unless self_hosted?
|
|
|
|
# Special handling for Redis configuration error page
|
|
if controller_name == "pages" && action_name == "redis_configuration_error"
|
|
# If Redis is now working, redirect to home
|
|
if redis_connected?
|
|
redirect_to root_path, notice: "Redis is now configured properly! You can now setup your Maybe application."
|
|
end
|
|
|
|
return
|
|
end
|
|
|
|
unless redis_connected?
|
|
redirect_to redis_configuration_error_path
|
|
end
|
|
end
|
|
|
|
def redis_connected?
|
|
Redis.new.ping
|
|
true
|
|
rescue Redis::CannotConnectError
|
|
false
|
|
end
|
|
end
|