diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index abddac0f..59f457e5 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -9,18 +9,23 @@ class ApplicationController < ActionController::Base private def current_user - if User.none? - session[:user_id] = nil - end + @current_user ||= + if Rails.configuration.hdm.authentication_disabled + DummyUser.new + else + if User.none? + session[:user_id] = nil + end - if session[:user_id] - Current.user ||= User.find(session[:user_id]) - end + if session[:user_id] + Current.user ||= User.find(session[:user_id]) + end + end end def authentication_required unless current_user - if User.none? + if User.none? && !Rails.configuration.hdm.authentication_disabled redirect_to new_user_path, notice: 'Please create an admin user first.' else redirect_to login_path diff --git a/app/models/dummy_user.rb b/app/models/dummy_user.rb new file mode 100644 index 00000000..e0b1a79a --- /dev/null +++ b/app/models/dummy_user.rb @@ -0,0 +1,21 @@ +class DummyUser + def initialize + raise "cannot be used unless authentication is disabled" unless Rails.configuration.hdm.authentication_disabled + end + + def id + nil + end + + def email + "anonymous" + end + + def admin? + false + end + + def user? + true + end +end diff --git a/app/views/shared/_top_navigation.html.erb b/app/views/shared/_top_navigation.html.erb index a4b0e0e2..ef269685 100644 --- a/app/views/shared/_top_navigation.html.erb +++ b/app/views/shared/_top_navigation.html.erb @@ -17,9 +17,11 @@