aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorMatthew Lemon <y@yulqen.org>2024-11-11 21:09:06 +0000
committerMatthew Lemon <y@yulqen.org>2024-11-11 21:09:06 +0000
commit634cf4ee06a4820eaa2431a272b9a223118cf884 (patch)
tree2e49854aa28062c9c68fdbe0e554459469098d61 /app
parentb4acbcadc7b4f73efe0580be2dd3cf1dbe342682 (diff)
Adds is_admin to the User model and ensures only admin users can add new resource
Diffstat (limited to 'app')
-rw-r--r--app/controllers/pdfresources_controller.rb8
-rw-r--r--app/views/registrations/new.html.erb2
2 files changed, 9 insertions, 1 deletions
diff --git a/app/controllers/pdfresources_controller.rb b/app/controllers/pdfresources_controller.rb
index 068b61a..1f8a6af 100644
--- a/app/controllers/pdfresources_controller.rb
+++ b/app/controllers/pdfresources_controller.rb
@@ -1,5 +1,6 @@
class PdfresourcesController < ApplicationController
before_action :set_pdfresource, only: %i[ show edit update destroy ]
+ before_action :require_admin, only: %i[ new create update destroy ]
# GET /pdfresources or /pdfresources.json
def index
@@ -67,4 +68,11 @@ class PdfresourcesController < ApplicationController
def pdfresource_params
params.expect(pdfresource: [ :name, :stripe_product_id, :price, :age_range, :curriculum, :feature_slot, :description, :card_description, pdfs: [], thumbnails: [] ])
end
+
+ #must be admin!
+ def require_admin
+ unless Current.session.user&.is_admin
+ redirect_to root_path, notice: "You must be an admin to perform this action."
+ end
+ end
end
diff --git a/app/views/registrations/new.html.erb b/app/views/registrations/new.html.erb
index b9e01e1..f70d143 100644
--- a/app/views/registrations/new.html.erb
+++ b/app/views/registrations/new.html.erb
@@ -26,7 +26,7 @@
<%= label_tag "email_address", nil, class: "font-bold text-gray-700" %>
<%= form.email_field :email_address, required: true, autocomplete: "email_address", placeholder: "Enter your email address", value: params[:email_address], class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>
</div>
-
+
<div class="my-5">
<%= label_tag "password", nil, class: "font-bold text-gray-700" %>
<%= form.password_field :password, required: true, autocomplete: "new-password", placeholder: "Enter new password", maxlength: 72, class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>