Skip to content

Commit

Permalink
Update nav permissions
Browse files Browse the repository at this point in the history
Progress towards #61
  • Loading branch information
BGMP committed Mar 9, 2024
1 parent e8e1d86 commit 1b65641
Showing 1 changed file with 23 additions and 16 deletions.
39 changes: 23 additions & 16 deletions app/controllers/application_controller.rb
Expand Up @@ -17,7 +17,7 @@ def build_navigation
return unless user_signed_in?

@admin_nav = [
{ :name => t('nav.user.admin.upload-session'), :path => new_session_path },
{ :name => t('nav.user.admin.upload-session'), :path => new_session_path, :organizer => true },
{ :name => t('nav.user.admin.create-season'), :path => new_season_path },
{ :name => t('nav.user.admin.import-tracks'), :path => new_track_path },
{ :name => t('nav.user.admin.import-cars'), :path => new_car_path },
Expand All @@ -26,9 +26,9 @@ def build_navigation
{ :name => t('nav.user.admin.import-users'), :path => users_new_path }
]
@nav = [
{ :name => t('nav.user.admin.title'), :path => '', :sub => @admin_nav, :admin => true },
{ :name => t('nav.user.my-profile'), :path => user_path(current_user.username) },
{ :name => t('nav.user.settings'), :path => main_app.edit_user_registration_path }
{ :name => t('nav.user.admin.title'), :path => '', :sub => @admin_nav, :organizer => true },
{ :name => t('nav.user.my-profile'), :path => user_path(current_user.username), :user => true },
{ :name => t('nav.user.settings'), :path => main_app.edit_user_registration_path, :user => true }
]
end

Expand All @@ -46,19 +46,26 @@ def nav_link(item)

def render_navigation(item)
if item[:sub]
return if item[:admin] && !user_is_admin?

subs = item[:sub].map { |sub| render_navigation(sub) }.compact
%(
<li class="dropdown-submenu">
<a class="dropdown-item dropdown-toggle" href="#">#{item[:name]}</a>
<ul class="dropdown-menu">
#{subs.join}
</ul>
</li>
).html_safe
subs = item[:sub].map do |sub|
if sub[:user] || user_is_admin? || ((sub[:organizer] && user_is_organizer?) || (sub[:mod] && user_is_mod?))
render_navigation(sub)
end
end

if item[:user] || user_is_admin? || ((item[:organizer] && user_is_organizer?) || (item[:mod] && user_is_mod?))
%(
<li class="dropdown-submenu">
<a class="dropdown-item dropdown-toggle" href="#">#{item[:name]}</a>
<ul class="dropdown-menu">
#{subs.join}
</ul>
</li>
).html_safe
end
else
%(<li>#{nav_link(item)}</li>).html_safe
if item[:user] || user_is_admin? || ((item[:organizer] && user_is_organizer?) || (item[:mod] && user_is_mod?))
%(<li>#{nav_link(item)}</li>).html_safe
end
end
end

Expand Down

0 comments on commit 1b65641

Please sign in to comment.