mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 16:51:25 +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:
@ -6,27 +6,40 @@ RSpec.describe Admin::RobotsTxtController do
|
||||
end
|
||||
|
||||
fab!(:admin) { Fabricate(:admin) }
|
||||
fab!(:moderator) { Fabricate(:moderator) }
|
||||
fab!(:user) { Fabricate(:user) }
|
||||
|
||||
describe "non-admin users" do
|
||||
before { sign_in(user) }
|
||||
context "when logged in as a non-admin user" do
|
||||
shared_examples "access_forbidden" do
|
||||
it "can't see #show" do
|
||||
get "/admin/customize/robots.json"
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
|
||||
it "can't see #show" do
|
||||
get "/admin/customize/robots.json"
|
||||
expect(response.status).to eq(404)
|
||||
it "can't perform #update" do
|
||||
put "/admin/customize/robots.json", params: { robots_txt: "adasdasd" }
|
||||
expect(response.status).to eq(404)
|
||||
expect(SiteSetting.overridden_robots_txt).to eq("")
|
||||
end
|
||||
|
||||
it "can't perform #reset" do
|
||||
SiteSetting.overridden_robots_txt = "overridden_content"
|
||||
delete "/admin/customize/robots.json"
|
||||
expect(response.status).to eq(404)
|
||||
expect(SiteSetting.overridden_robots_txt).to eq("overridden_content")
|
||||
end
|
||||
end
|
||||
|
||||
it "can't perform #update" do
|
||||
put "/admin/customize/robots.json", params: { robots_txt: "adasdasd" }
|
||||
expect(response.status).to eq(404)
|
||||
expect(SiteSetting.overridden_robots_txt).to eq("")
|
||||
context "when logged in as a moderator" do
|
||||
before { sign_in(moderator) }
|
||||
|
||||
include_examples "access_forbidden"
|
||||
end
|
||||
|
||||
it "can't perform #reset" do
|
||||
SiteSetting.overridden_robots_txt = "overridden_content"
|
||||
delete "/admin/customize/robots.json"
|
||||
expect(response.status).to eq(404)
|
||||
expect(SiteSetting.overridden_robots_txt).to eq("overridden_content")
|
||||
context "when logged in as non-staff user" do
|
||||
before { sign_in(user) }
|
||||
|
||||
include_examples "access_forbidden"
|
||||
end
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user