Merge pull request #2137 from wairbut-m2c/iagirre-admin-menu-in-management
Add admin menu in management view (if user is admin)
This commit is contained in:
@@ -6,6 +6,7 @@ class Management::BaseController < ActionController::Base
|
|||||||
|
|
||||||
helper_method :managed_user
|
helper_method :managed_user
|
||||||
helper_method :current_user
|
helper_method :current_user
|
||||||
|
helper_method :manager_logged_in
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
@@ -22,7 +23,10 @@ class Management::BaseController < ActionController::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def managed_user
|
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
|
end
|
||||||
|
|
||||||
def check_verified_user(alert_msg)
|
def check_verified_user(alert_msg)
|
||||||
@@ -49,4 +53,11 @@ class Management::BaseController < ActionController::Base
|
|||||||
def clear_password
|
def clear_password
|
||||||
session[:new_password] = nil
|
session[:new_password] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def manager_logged_in
|
||||||
|
if current_manager
|
||||||
|
@manager_logged_in = User.find_by(id: session[:manager]["login"].last(1))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ class Users::SessionsController < Devise::SessionsController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def after_sign_out_path_for(resource)
|
def after_sign_out_path_for(resource)
|
||||||
request.referer.present? ? request.referer : super
|
request.referer.present? && !request.referer.match("management") ? request.referer : super
|
||||||
end
|
end
|
||||||
|
|
||||||
def verifying_via_email?
|
def verifying_via_email?
|
||||||
|
|||||||
@@ -52,8 +52,8 @@ module UsersHelper
|
|||||||
current_user && current_user.manager?
|
current_user && current_user.manager?
|
||||||
end
|
end
|
||||||
|
|
||||||
def show_admin_menu?
|
def show_admin_menu?(user = nil)
|
||||||
current_administrator? || current_moderator? || current_valuator? || current_manager?
|
current_administrator? || current_moderator? || current_valuator? || current_manager? || (user && user.administrator?)
|
||||||
end
|
end
|
||||||
|
|
||||||
def interests_title_text(user)
|
def interests_title_text(user)
|
||||||
|
|||||||
@@ -29,6 +29,19 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<% if show_admin_menu?(manager_logged_in) %>
|
||||||
|
<div id="responsive_menu">
|
||||||
|
|
||||||
|
<div class="top-bar-right">
|
||||||
|
<ul class="menu" data-responsive-menu="medium-dropdown">
|
||||||
|
<%= render "admin/shared/admin_shortcuts", current_user: manager_logged_in %>
|
||||||
|
<%= render "shared/admin_login_items", current_user: manager_logged_in %>
|
||||||
|
<%= render "devise/menu/login_items", current_user: manager_logged_in %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<% if show_admin_menu? %>
|
<% if show_admin_menu?(current_user) %>
|
||||||
<li class="has-submenu">
|
<li class="has-submenu">
|
||||||
<%= link_to t("layouts.header.administration_menu"), "#", rel: "nofollow", class: "hide-for-small-only" %>
|
<%= link_to t("layouts.header.administration_menu"), "#", rel: "nofollow", class: "hide-for-small-only" %>
|
||||||
<ul class="submenu menu vertical" data-submenu>
|
<ul class="submenu menu vertical" data-submenu>
|
||||||
|
|||||||
33
spec/features/management_spec.rb
Normal file
33
spec/features/management_spec.rb
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
feature 'Management' do
|
||||||
|
let(:user) { create(:user) }
|
||||||
|
|
||||||
|
scenario "Should show admin menu if logged user is admin" do
|
||||||
|
create(:administrator, user: user)
|
||||||
|
login_as(user)
|
||||||
|
visit root_path
|
||||||
|
|
||||||
|
expect(page).to have_link("Management")
|
||||||
|
|
||||||
|
click_link "Management"
|
||||||
|
|
||||||
|
expect(page).to have_content("My activity")
|
||||||
|
expect(page).to have_content("My account")
|
||||||
|
expect(page).to have_content("Sign out")
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "Should not show admin menu if logged user is manager" do
|
||||||
|
create(:manager, user: user)
|
||||||
|
login_as(user)
|
||||||
|
visit root_path
|
||||||
|
|
||||||
|
expect(page).to have_link("Management")
|
||||||
|
|
||||||
|
click_link "Management"
|
||||||
|
|
||||||
|
expect(page).not_to have_content("My activity")
|
||||||
|
expect(page).not_to have_content("My account")
|
||||||
|
expect(page).not_to have_content("Sign out")
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user