Skip to content

Commit 4416985

Browse files
dmitrytragerOli0li
andauthored
hide everything expect topics from non-admins (#50)
Co-authored-by: Olivia Bonnal <[email protected]>
1 parent b49650e commit 4416985

21 files changed

+188
-55
lines changed

app/controllers/application_controller.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,4 @@ class ApplicationController < ActionController::Base
22
include Authentication
33
# Only allow modern browsers supporting webp images, web push, badges, import maps, CSS nesting, and CSS :has.
44
allow_browser versions: :modern
5-
6-
def check_admin!
7-
redirect_to root_path unless Current.user.is_admin?
8-
end
95
end

app/controllers/concerns/authentication.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ def allow_unauthenticated_access(**options)
1212
end
1313
end
1414

15+
def redirect_contributors
16+
redirect_to dashboard_path unless Current.user.is_admin?
17+
end
18+
1519
private
1620
def authenticated?
1721
resume_session
@@ -35,7 +39,7 @@ def request_authentication
3539
end
3640

3741
def after_authentication_url
38-
session.delete(:return_to_after_authenticating) || regions_url
42+
session.delete(:return_to_after_authenticating) || dashboard_url
3943
end
4044

4145
def start_new_session_for(user)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class DashboardController < ApplicationController
2+
end

app/controllers/languages_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
class LanguagesController < ApplicationController
2+
before_action :redirect_contributors
23
before_action :set_language, only: [ :edit, :update ]
34

45
def index

app/controllers/providers_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
class ProvidersController < ApplicationController
22
before_action :set_provider, only: %i[ show edit update destroy ]
3+
before_action :redirect_contributors
34

45
def index
56
@providers = Provider.all

app/controllers/regions_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
class RegionsController < ApplicationController
2+
before_action :redirect_contributors
23
before_action :set_region, only: %i[ show edit update destroy ]
34

45
# GET /regions

app/controllers/topics_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
class TopicsController < ApplicationController
22
before_action :set_topic, only: [ :show, :edit, :update, :destroy, :archive ]
3-
before_action :check_admin!, only: :destroy
43

54
def index
65
@topics = scope.includes(:language, :provider)
@@ -32,6 +31,7 @@ def update
3231
end
3332

3433
def destroy
34+
redirect_to topics_path and return unless Current.user.is_admin?
3535
@topic.destroy
3636
redirect_to topics_path
3737
end

app/controllers/users_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
class UsersController < ApplicationController
2+
before_action :redirect_contributors
23
before_action :set_user, only: %i[ edit update destroy ]
34

45
def index

app/views/dashboard/index.html.erb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<% content_for :title, "Dashboard" %>
2+
3+
<section class="section">
4+
<div class="row" id="table-striped">
5+
<div class="col-12 cold-md-12">
6+
<div class="card">
7+
<div class="card-header d-flex justify-content-between align-items-center">
8+
<h2>Dashboard</h2>
9+
</div>
10+
<div class="card-content">
11+
<div class="card-body">
12+
<p class="card-text">
13+
Welcome to your dashboard! Lorem ipsum dolor sit amet, <code>consectetur adipiscing</code> elit. Sed do eiusmod tempor incididunt ut
14+
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
15+
aliquip
16+
ex ea commodo consequat. Duis aute irure dolor in <code>reprehenderit</code> in voluptate velit esse
17+
cillum dolore eu fugiat nulla
18+
pariatur. Excepteur sint <code>occaecat cupidatat</code> non proident, sunt in culpa qui officia deserunt
19+
mollit anim id est
20+
laborum.
21+
</p>
22+
</div>
23+
</div>
24+
</div>
25+
</div>
26+
</div>
27+
</section>

app/views/layouts/_sidebar.html.erb

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<div class="sidebar-header position-relative">
55
<div class="d-flex justify-content-between align-items-center">
66
<div class="logo">
7-
<%= link_to("SkillRx", root_path) %>
7+
<%= link_to("SkillRx", dashboard_path) %>
88
</div>
99
<div class="theme-toggle d-flex gap-2 align-items-center mt-2">
1010
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true"
@@ -45,42 +45,44 @@
4545

4646
<div class="sidebar-menu">
4747
<ul class="menu">
48-
<li class="sidebar-title">Administration</li>
49-
50-
<li class="sidebar-item">
51-
<%= link_to regions_path, class: "sidebar-link" do %>
52-
<i class="bi bi-globe"></i>
53-
<span>Regions</span>
54-
<% end %>
55-
</li>
56-
57-
<li class="sidebar-item">
58-
<%= link_to providers_path, class: "sidebar-link" do %>
59-
<i class="bi bi-hospital-fill"></i>
60-
<span>Providers</span>
61-
<% end %>
62-
</li>
63-
6448
<li class="sidebar-item">
6549
<%= link_to topics_path, class: "sidebar-link" do %>
6650
<i class="bi bi-tags-fill"></i>
6751
<span>Topics</span>
6852
<% end %>
6953
</li>
7054

71-
<li class="sidebar-item">
72-
<%= link_to languages_path, class: "sidebar-link" do %>
73-
<i class="bi bi-translate"></i>
74-
<span>Languages</span>
75-
<% end %>
76-
</li>
55+
<% if Current.user.is_admin? %>
56+
<li class="sidebar-title">Administration</li>
57+
<li class="sidebar-item">
58+
<%= link_to regions_path, class: "sidebar-link" do %>
59+
<i class="bi bi-globe"></i>
60+
<span>Regions</span>
61+
<% end %>
62+
</li>
7763

78-
<li class="sidebar-item">
79-
<%= link_to users_path, class: 'sidebar-link' do %>
80-
<i class="bi bi-people"></i>
81-
<span>Users</span>
82-
<% end %>
83-
</li>
64+
<li class="sidebar-item">
65+
<%= link_to providers_path, class: "sidebar-link" do %>
66+
<i class="bi bi-hospital-fill"></i>
67+
<span>Providers</span>
68+
<% end %>
69+
</li>
70+
71+
<li class="sidebar-item">
72+
<%= link_to languages_path, class: "sidebar-link" do %>
73+
<i class="bi bi-translate"></i>
74+
<span>Languages</span>
75+
<% end %>
76+
</li>
77+
78+
<li class="sidebar-item">
79+
<%= link_to users_path, class: 'sidebar-link' do %>
80+
<i class="bi bi-people"></i>
81+
<span>Users</span>
82+
<% end %>
83+
</li>
84+
</li>
85+
<% end %>
8486
</ul>
8587
</div>
8688
</div>

0 commit comments

Comments
 (0)