diff --git a/app/controllers/management/base_controller.rb b/app/controllers/management/base_controller.rb index bcebfebaa..1bae36a76 100644 --- a/app/controllers/management/base_controller.rb +++ b/app/controllers/management/base_controller.rb @@ -6,6 +6,7 @@ class Management::BaseController < ActionController::Base helper_method :managed_user helper_method :current_user + helper_method :manager_logged_in private @@ -22,7 +23,10 @@ class Management::BaseController < ActionController::Base end def managed_user - @managed_user ||= Verification::Management::ManagedUser.find(session[:document_type], session[:document_number]) + @managed_user ||= Verification::Management::ManagedUser.find( + session[:document_type], + session[:document_number] + ) end def check_verified_user(alert_msg) @@ -49,4 +53,11 @@ class Management::BaseController < ActionController::Base def clear_password session[:new_password] = nil end + + def manager_logged_in + if current_manager + @manager_logged_in = User.find_by(id: session[:manager]["login"].last(1)) + end + end + end diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index 5605e3a00..d16f9c87e 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -11,7 +11,7 @@ class Users::SessionsController < Devise::SessionsController end def after_sign_out_path_for(resource) - request.referer.present? ? request.referer : super + request.referer.present? && !request.referer.match("management") ? request.referer : super end def verifying_via_email? diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 980dd1e39..4098b535e 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -52,8 +52,8 @@ module UsersHelper current_user && current_user.manager? end - def show_admin_menu? - current_administrator? || current_moderator? || current_valuator? || current_manager? + def show_admin_menu?(user = nil) + current_administrator? || current_moderator? || current_valuator? || current_manager? || (user && user.administrator?) end def interests_title_text(user) diff --git a/app/views/layouts/management.html.erb b/app/views/layouts/management.html.erb index 4dc4aec12..e964676aa 100644 --- a/app/views/layouts/management.html.erb +++ b/app/views/layouts/management.html.erb @@ -29,6 +29,19 @@ + <% if show_admin_menu?(manager_logged_in) %> +
+ <% end %> diff --git a/app/views/shared/_admin_login_items.html.erb b/app/views/shared/_admin_login_items.html.erb index 3fbb34fcc..85407398a 100644 --- a/app/views/shared/_admin_login_items.html.erb +++ b/app/views/shared/_admin_login_items.html.erb @@ -1,4 +1,4 @@ -<% if show_admin_menu? %> +<% if show_admin_menu?(current_user) %>