diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index eb290d37e..fed96b56e 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -5,6 +5,22 @@ class SessionsController < ApplicationController layout "auth" def new + begin + demo = Rails.application.config_for(:demo) + @prefill_demo_credentials = demo_host_match?(demo) + if @prefill_demo_credentials + @email = params[:email].presence || demo["email"] + @password = params[:password].presence || demo["password"] + else + @email = params[:email] + @password = params[:password] + end + rescue RuntimeError, Errno::ENOENT, Psych::SyntaxError + # Demo config file missing or malformed - disable demo credential prefilling + @prefill_demo_credentials = false + @email = params[:email] + @password = params[:password] + end end def create @@ -75,4 +91,10 @@ class SessionsController < ApplicationController def set_session @session = Current.user.sessions.find(params[:id]) end + + def demo_host_match?(demo) + return false unless demo.present? && demo["hosts"].present? + + demo["hosts"].include?(request.host) + end end diff --git a/app/views/sessions/new.html.erb b/app/views/sessions/new.html.erb index 5d5774349..336547490 100644 --- a/app/views/sessions/new.html.erb +++ b/app/views/sessions/new.html.erb @@ -2,10 +2,38 @@ header_title t(".title") %> -<%= styled_form_with url: sessions_path, class: "space-y-4", data: { turbo: false } do |form| %> - <%= form.email_field :email, label: t(".email"), autofocus: false, autocomplete: "email", required: "required", placeholder: t(".email_placeholder") %> +<% if @prefill_demo_credentials %> +
+ <%= t(".demo_banner_message") %> +
+