From 0c387fe2e8917a23a6782e9bb4188bbc5ba9c8fc Mon Sep 17 00:00:00 2001 From: Joao Vortmann Date: Fri, 5 Sep 2014 16:46:35 -0300 Subject: [PATCH 1/2] Add fallback to main_app's logout_path if not using Devise. --- app/helpers/rails_admin/application_helper.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/helpers/rails_admin/application_helper.rb b/app/helpers/rails_admin/application_helper.rb index cb33c825de..06da599f48 100644 --- a/app/helpers/rails_admin/application_helper.rb +++ b/app/helpers/rails_admin/application_helper.rb @@ -31,9 +31,12 @@ def edit_user_link end def logout_path - return unless defined?(Devise) - scope = Devise::Mapping.find_scope!(_current_user) - main_app.send("destroy_#{scope}_session_path") rescue false + if defined?(Devise) + scope = Devise::Mapping.find_scope!(_current_user) + main_app.send("destroy_#{scope}_session_path") rescue false + else + main_app.logout_path if main_app.respond_to?(:logout_path) + end end def wording_for(label, action = @action, abstract_model = @abstract_model, object = @object) From 6f4dd05f53ae155a38c970610f1a4889c234d2c6 Mon Sep 17 00:00:00 2001 From: Joao Vortmann Date: Fri, 5 Sep 2014 16:50:08 -0300 Subject: [PATCH 2/2] Move logout_method to application helper and add fallback to delete if Devise is no present (need a Config for this). --- app/helpers/rails_admin/application_helper.rb | 5 +++++ .../layouts/rails_admin/_secondary_navigation.html.haml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/helpers/rails_admin/application_helper.rb b/app/helpers/rails_admin/application_helper.rb index 06da599f48..52882a9019 100644 --- a/app/helpers/rails_admin/application_helper.rb +++ b/app/helpers/rails_admin/application_helper.rb @@ -39,6 +39,11 @@ def logout_path end end + def logout_method + return Devise.sign_out_via if defined?(Devise) + :delete + end + def wording_for(label, action = @action, abstract_model = @abstract_model, object = @object) model_config = abstract_model.try(:config) object = abstract_model && object.is_a?(abstract_model.model) ? object : nil diff --git a/app/views/layouts/rails_admin/_secondary_navigation.html.haml b/app/views/layouts/rails_admin/_secondary_navigation.html.haml index 1d2e2101ce..d7946cf086 100644 --- a/app/views/layouts/rails_admin/_secondary_navigation.html.haml +++ b/app/views/layouts/rails_admin/_secondary_navigation.html.haml @@ -7,6 +7,6 @@ - if user_link = edit_user_link %li= user_link - if logout_path.present? - %li= link_to content_tag('span', t('admin.misc.log_out'), class: 'label label-important'), logout_path, method: Devise.sign_out_via + %li= link_to content_tag('span', t('admin.misc.log_out'), class: 'label label-important'), logout_path, method: logout_method - if _current_user.respond_to?(:email) && _current_user.email.present? %li= image_tag "#{(request.ssl? ? 'https://secure' : 'http://www')}.gravatar.com/avatar/#{Digest::MD5.hexdigest _current_user.email}?s=30", style: 'padding-top:5px'