Skip to content

Commit feff370

Browse files
committed
Rejig admin menu
1 parent 892d224 commit feff370

3 files changed

Lines changed: 45 additions & 18 deletions

File tree

app/models/user.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,10 @@ def has_space_role?(space, role)
379379
space_roles.where(key: role, space: space).any?
380380
end
381381

382+
def has_role_in_any_space?(role)
383+
space_roles.where(key: role).any?
384+
end
385+
382386
protected
383387

384388
def reassign_resources(new_owner = User.get_default_user)

app/views/layouts/_user_menu.html.erb

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,31 @@
1616
<% end %>
1717
</li>
1818

19-
<% if current_user.is_curator? || current_user.is_admin? %>
19+
<% is_admin = current_user.is_admin? %>
20+
<% is_curator = current_user.is_curator? %>
21+
<% is_current_space_admin = !Space.current_space.default? && current_user.has_space_role?(Space.current_space, :admin) %>
22+
<% if is_admin || is_curator || is_current_space_admin %>
2023
<li role="presentation" class="divider"></li>
2124

2225
<li class="dropdown-header"><%= t('menu.user.administration') %></li>
2326

24-
<li class="dropdown-item">
25-
<%= link_to users_path, title: t('menu.user.view_users') do %>
26-
<i class="fa fa-users"></i> <%= t('menu.user.view_users') %>
27-
<% end %>
28-
</li>
27+
<% if is_admin || is_curator %>
28+
<li class="dropdown-item">
29+
<%= link_to users_path, title: t('menu.user.view_users') do %>
30+
<i class="fa fa-users"></i> <%= t('menu.user.view_users') %>
31+
<% end %>
32+
</li>
33+
<% end %>
34+
2935
<% if TeSS::Config.feature['sources'] %>
3036
<li class="dropdown-item">
3137
<%= link_to sources_path, title: t('menu.user.view_ingestion_sources') do %>
3238
<i class="fa fa-cloud-download"></i> <%= t('menu.user.view_sources') %>
3339
<% end %>
3440
</li>
3541
<% end %>
36-
<% unless TeSS::Config.feature['disabled'].include?('topics') %>
42+
43+
<% if !TeSS::Config.feature['disabled'].include?('topics') && is_admin || is_curator %>
3744
<li class="dropdown-item">
3845
<%= link_to curate_topic_suggestions_path,
3946
title: t('menu.user.assign_scientific_topics',
@@ -42,23 +49,38 @@
4249
<% end %>
4350
</li>
4451
<% end %>
45-
<li class="dropdown-item">
46-
<%= link_to curate_users_path(with_content: true) do %>
47-
<i class="fa fa-user-times"></i> <%= t('menu.user.curate_users') %>
48-
<% end %>
49-
</li>
50-
<li class="dropdown-item">
51-
<% if current_user.is_admin? %>
52+
53+
<% if is_admin || is_curator %>
54+
<li class="dropdown-item">
55+
<%= link_to curate_users_path(with_content: true) do %>
56+
<i class="fa fa-user-times"></i> <%= t('menu.user.curate_users') %>
57+
<% end %>
58+
</li>
59+
<% end %>
60+
61+
<% if is_admin %>
62+
<li class="dropdown-item">
5263
<%= link_to rails_admin_path, title: t('menu.user.view_admin_console') do %>
5364
<i class="fa fa-cog"></i> <%= t('menu.user.admin_console') %>
5465
<% end %>
55-
<% if TeSS::Config.feature['spaces'] %>
66+
</li>
67+
68+
<% if TeSS::Config.feature['spaces'] %>
69+
<li class="dropdown-item">
5670
<%= link_to spaces_path, title: t('menu.user.spaces_admin') do %>
57-
<i class="fa fa-globe"></i><%= t('menu.user.spaces_admin') %>
71+
<i class="fa fa-globe"></i> <%= t('menu.user.spaces_admin') %>
5872
<% end %>
59-
<% end %>
73+
</li>
6074
<% end %>
61-
</li>
75+
<% end %>
76+
77+
<% if TeSS::Config.feature['spaces'] && (is_admin || is_current_space_admin) && !Space.current_space.default? %>
78+
<li class="dropdown-item">
79+
<%= link_to edit_space_path(Space.current_space.id), title: t('menu.user.current_space_admin') do %>
80+
<i class="fa fa-globe"></i> <%= t('menu.user.current_space_admin') %>
81+
<% end %>
82+
</li>
83+
<% end %>
6284
<% end %>
6385

6486
<li role="presentation" class="divider"></li>

config/locales/en.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -939,6 +939,7 @@ en:
939939
log_out: 'Log out'
940940
log_out_confirm: 'Are you sure you want to log out?'
941941
spaces_admin: 'Manage spaces'
942+
current_space_admin: 'Manage current space'
942943
activity:
943944
empty: No activities recorded.
944945
deleted_owner: Someone

0 commit comments

Comments
 (0)