Module: MarkdownServer::Helpers::AdminHelpers
- Defined in:
- lib/markdown_server/helpers/admin_helpers.rb
Instance Method Summary collapse
Instance Method Details
#admin? ⇒ Boolean
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/markdown_server/helpers/admin_helpers.rb', line 24 def admin? return true if session[:admin] adm = setup_config["admin"] return false unless adm.is_a?(Hash) return true if ip_allowed?(adm["ip"], client_ip) if adm["user"] && adm["pw"] auth = request.env["HTTP_AUTHORIZATION"].to_s if auth.start_with?("Basic ") user, pw = Base64.decode64(auth[6..]).split(":", 2) return true if user == adm["user"].to_s && pw == adm["pw"].to_s end end false end |
#client_ip ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/markdown_server/helpers/admin_helpers.rb', line 15 def client_ip if settings.behind_proxy fwd = env["HTTP_X_FORWARDED_FOR"].to_s.split(",").map(&:strip).first fwd && !fwd.empty? ? fwd : env["REMOTE_ADDR"] else env["REMOTE_ADDR"] end end |
#setup_config ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/markdown_server/helpers/admin_helpers.rb', line 6 def setup_config @setup_config ||= begin path = File.join(root_dir, ".setup.yml") (File.exist?(path) && YAML.safe_load(File.read(path))) || {} rescue StandardError {} end end |