0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-09-19 23:31:11 +02:00

Merge branch 'main' into add_tag_creation_to_tag_field

Dieser Commit ist enthalten in:
Marcos 2022-11-04 16:18:21 -04:00 committet von GitHub
Commit e4de96ed03
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 4AEE18F83AFDEB23
4 geänderte Dateien mit 45 neuen und 1 gelöschten Zeilen

Datei anzeigen

@ -20,6 +20,10 @@ class CustomWizard::AdminApiController < CustomWizard::AdminController
raise Discourse::InvalidParameters, "An API with that name already exists: '#{current.title || current.name}'" raise Discourse::InvalidParameters, "An API with that name already exists: '#{current.title || current.name}'"
end end
unless subscription.includes?(:api, :all)
raise Discourse::InvalidParameters, "Your subscription doesn't include API features."
end
PluginStoreRow.transaction do PluginStoreRow.transaction do
CustomWizard::Api.set(api_params[:name], title: api_params[:title]) CustomWizard::Api.set(api_params[:name], title: api_params[:title])
@ -130,4 +134,8 @@ class CustomWizard::AdminApiController < CustomWizard::AdminController
@auth_data ||= auth_data @auth_data ||= auth_data
end end
def subscription
@subscription ||= CustomWizard::Subscription.new
end
end end

Datei anzeigen

@ -87,6 +87,14 @@ class CustomWizard::Subscription
business: ['*'], business: ['*'],
community: ['*'] community: ['*']
} }
},
api: {
all: {
none: [],
standard: [],
business: ['*'],
community: ['*']
}
} }
} }
end end
@ -95,7 +103,7 @@ class CustomWizard::Subscription
@subscription = find_subscription @subscription = find_subscription
end end
def includes?(feature, attribute, value) def includes?(feature, attribute, value = nil)
attributes = self.class.attributes[feature] attributes = self.class.attributes[feature]
## Attribute is not part of a subscription ## Attribute is not part of a subscription

7
spec/fixtures/api/api.json gevendort Normale Datei
Datei anzeigen

@ -0,0 +1,7 @@
{
"name": "my_api",
"title": "My API",
"auth_type": "none",
"endpoints": "[{\"name\":\"my_endpoint\",\"url\":\"https://endpoint.com\",\"method\":\"POST\",\"content_type\":\"application/json\",\"success_codes\":[200]}]",
"new": "true"
}

Datei anzeigen

@ -0,0 +1,21 @@
# frozen_string_literal: true
describe CustomWizard::AdminApiController do
fab!(:admin_user) { Fabricate(:user, admin: true) }
let(:api_json) { get_wizard_fixture("api/api") }
before do
sign_in(admin_user)
end
it "does not save if user does not have relevant subscription" do
put "/admin/wizards/api/:name.json", params: api_json.to_h
expect(response.status).to eq(400)
end
it "saves when user does have relevant subscription" do
enable_subscription("business")
put "/admin/wizards/api/:name.json", params: api_json.to_h
expect(response.status).to eq(200)
end
end