mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 11:11:13 +08:00
Refactor admin base controller (#18453)
* DEV: Add a dedicated Admin::StaffController base controller The current parent(Admin:AdminController) for all admin-related controllers uses a filter that allows only staff(admin, moderator) users. This refactor makes Admin::AdminController filter for only admins as the name suggests and introduces a base controller dedicated for staff-related endpoints. * DEV: Set staff-only controllers parent to Admin::StaffController Refactor staff-only controllers to inherit newly introduced Admin::StaffController abstract controller. This conveys the purpose of the parent controller better unlike the previously used parent controller.
This commit is contained in:
@ -2,6 +2,7 @@
|
||||
|
||||
RSpec.describe Admin::EmailTemplatesController do
|
||||
fab!(:admin) { Fabricate(:admin) }
|
||||
fab!(:moderator) { Fabricate(:moderator) }
|
||||
fab!(:user) { Fabricate(:user) }
|
||||
|
||||
def original_text(key)
|
||||
@ -17,6 +18,10 @@ RSpec.describe Admin::EmailTemplatesController do
|
||||
I18n.reload!
|
||||
end
|
||||
|
||||
it "is a subclass of AdminController" do
|
||||
expect(Admin::EmailTemplatesController < Admin::AdminController).to eq(true)
|
||||
end
|
||||
|
||||
describe "#index" do
|
||||
it "raises an error if you aren't logged in" do
|
||||
get '/admin/customize/email_templates.json'
|
||||
@ -29,6 +34,12 @@ RSpec.describe Admin::EmailTemplatesController do
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
|
||||
it "raises an error if you are a moderator" do
|
||||
sign_in(moderator)
|
||||
get "/admin/customize/email_templates.json"
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
|
||||
it "should work if you are an admin" do
|
||||
sign_in(admin)
|
||||
get '/admin/customize/email_templates.json'
|
||||
@ -79,6 +90,14 @@ RSpec.describe Admin::EmailTemplatesController do
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
|
||||
it "raises an error if you are a moderator" do
|
||||
sign_in(moderator)
|
||||
put "/admin/customize/email_templates/some_id", params: {
|
||||
email_template: { subject: "Subject", body: "Body" }
|
||||
}, headers: headers
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
|
||||
context "when logged in as admin" do
|
||||
before do
|
||||
sign_in(admin)
|
||||
@ -268,6 +287,12 @@ RSpec.describe Admin::EmailTemplatesController do
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
|
||||
it "raises an error if you are a moderator" do
|
||||
sign_in(moderator)
|
||||
delete "/admin/customize/email_templates/some_id", headers: headers
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
|
||||
context "when logged in as admin" do
|
||||
before do
|
||||
sign_in(admin)
|
||||
|
Reference in New Issue
Block a user