Skip to content

Commit a307568

Browse files
committed
Merge branch 'master' of github.com:railsadminteam/rails_admin
* 'master' of github.com:railsadminteam/rails_admin: Tidy up gemfiles Bump jRuby Test against Mongoid 8 Test against Rails 7.1 Mitigate jRuby build failures Upgrade node and vite to fix the vite build Un-pin turbo-rails to fix Rails 6.1 builds Follow-up for railsadminteam#3555 Resolved a problem with embedded mongoid documents and boolean selectors (railsadminteam#3555) Stop using update_only to decide to show subform on create (railsadminteam#3649) Follow-up for railsadminteam#3643 Basic vite integration attempt (railsadminteam#3643) Support client-side dynamic scoping Fix Rubocop offense Revive the live demo Unlock webrick version Fix typo: tripple ==> triple (railsadminteam#3637) Replace &rdquo; entity with inline <q> element (railsadminteam#3636) Vulnerability fix: validate return_to param using request.host (railsadminteam#3627) Fix Rubocop offense
2 parents 47cba88 + 5c21878 commit a307568

67 files changed

Lines changed: 1048 additions & 213 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/test.yml

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
- "3.0"
1313
- "3.1"
1414
- "3.2"
15-
gemfile: [gemfiles/rails_7.0.gemfile]
15+
gemfile: [gemfiles/rails_7.1.gemfile]
1616
orm: [active_record]
1717
adapter: [sqlite3]
1818
asset: [webpack]
@@ -32,17 +32,27 @@ jobs:
3232
orm: active_record
3333
adapter: sqlite3
3434
asset: webpacker
35-
- ruby: "3.0"
35+
- ruby: "3.2"
3636
gemfile: gemfiles/rails_7.0.gemfile
3737
orm: active_record
38+
adapter: sqlite3
39+
asset: sprockets
40+
- ruby: "3.2"
41+
gemfile: gemfiles/rails_7.1.gemfile
42+
orm: active_record
3843
adapter: mysql2
3944
asset: importmap
40-
- ruby: "3.0"
41-
gemfile: gemfiles/rails_7.0.gemfile
45+
- ruby: "3.2"
46+
gemfile: gemfiles/rails_7.1.gemfile
4247
orm: active_record
4348
adapter: postgresql
4449
asset: sprockets
45-
- ruby: "3.0"
50+
- ruby: "3.2"
51+
gemfile: gemfiles/rails_7.1.gemfile
52+
orm: active_record
53+
adapter: sqlite3
54+
asset: vite
55+
- ruby: "3.2"
4656
gemfile: gemfiles/composite_primary_keys.gemfile
4757
orm: active_record
4858
adapter: sqlite3
@@ -57,13 +67,23 @@ jobs:
5767
orm: mongoid
5868
adapter: sqlite3
5969
asset: sprockets
60-
- ruby: jruby-9.3
61-
gemfile: gemfiles/rails_6.1.gemfile
70+
- ruby: "3.1"
71+
gemfile: gemfiles/rails_7.0.gemfile
72+
orm: mongoid
73+
adapter: sqlite3
74+
asset: sprockets
75+
- ruby: "3.2"
76+
gemfile: gemfiles/rails_7.1.gemfile
77+
orm: mongoid
78+
adapter: sqlite3
79+
asset: sprockets
80+
- ruby: jruby-9.4
81+
gemfile: gemfiles/rails_7.0.gemfile
6282
orm: active_record
6383
adapter: mysql2
6484
asset: sprockets
65-
- ruby: jruby-9.3
66-
gemfile: gemfiles/rails_6.1.gemfile
85+
- ruby: jruby-9.4
86+
gemfile: gemfiles/rails_7.0.gemfile
6787
orm: mongoid
6888
adapter: sqlite3
6989
asset: sprockets
@@ -106,13 +126,14 @@ jobs:
106126
- name: Set up Node
107127
uses: actions/setup-node@v3
108128
with:
109-
node-version: "14"
129+
node-version: "18"
110130
- name: Setup application
111131
env:
112132
BUNDLE_GEMFILE: ../../${{ matrix.gemfile }}
113133
CI_ASSET: ${{ matrix.asset }}
114134
CI_DB_ADAPTER: ${{ matrix.adapter }}
115135
RAILS_ENV: test
136+
NODE_OPTIONS: --openssl-legacy-provider
116137
run: |
117138
yarn install
118139
cd spec/dummy_app
@@ -166,7 +187,7 @@ jobs:
166187
- name: Set up Ruby
167188
uses: ruby/setup-ruby@v1
168189
with:
169-
ruby-version: "3.0"
190+
ruby-version: "3.2"
170191
- name: Cache gems
171192
uses: actions/cache@v3
172193
with:

Appraisals

Lines changed: 17 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,12 @@
22

33
appraise 'rails-6.0' do
44
gem 'rails', '~> 6.0.0'
5-
gem 'sassc-rails', '~> 2.1'
6-
gem 'devise', '~> 4.7'
75

86
group :test do
9-
gem 'cancancan', '~> 3.0'
10-
gem 'kt-paperclip'
117
gem 'pundit', '~> 2.1.0'
12-
gem 'rspec-rails', '>= 4.0.0.beta2'
13-
gem 'shrine', '~> 3.0'
148
end
159

1610
group :active_record do
17-
gem 'pg', '>= 1.0.0', platforms: :ruby
18-
gem 'paper_trail', '>= 12.0'
19-
2011
platforms :jruby do
2112
gem 'activerecord-jdbcmysql-adapter', '~> 60.0'
2213
gem 'activerecord-jdbcpostgresql-adapter', '~> 60.0'
@@ -26,31 +17,13 @@ appraise 'rails-6.0' do
2617

2718
group :mongoid do
2819
gem 'mongoid', '~> 7.0'
29-
gem 'kaminari-mongoid'
30-
gem 'mongoid-paperclip', '>= 0.0.8', require: 'mongoid_paperclip'
31-
gem 'carrierwave-mongoid', '>= 0.6.3', require: 'carrierwave/mongoid'
32-
gem 'cancancan-mongoid'
33-
gem 'shrine-mongoid', '~> 1.0'
3420
end
3521
end
3622

3723
appraise 'rails-6.1' do
3824
gem 'rails', '~> 6.1.0'
39-
gem 'sassc-rails', '~> 2.1'
40-
gem 'devise', '~> 4.7'
41-
gem 'turbo-rails', platform: :jruby, github: 'hotwired/turbo-rails'
42-
43-
group :test do
44-
gem 'cancancan', '~> 3.2'
45-
gem 'kt-paperclip'
46-
gem 'rspec-rails', '>= 4.0.0.beta2'
47-
gem 'shrine', '~> 3.0'
48-
end
4925

5026
group :active_record do
51-
gem 'pg', '>= 1.0.0', platforms: :ruby
52-
gem 'paper_trail', '>= 12.0'
53-
5427
platforms :jruby do
5528
gem 'activerecord-jdbcmysql-adapter', '~> 61.0'
5629
gem 'activerecord-jdbcpostgresql-adapter', '~> 61.0'
@@ -60,47 +33,39 @@ appraise 'rails-6.1' do
6033

6134
group :mongoid do
6235
gem 'mongoid', '~> 7.0'
63-
gem 'kaminari-mongoid'
64-
gem 'mongoid-paperclip', '>= 0.0.8', require: 'mongoid_paperclip'
65-
gem 'carrierwave-mongoid', '>= 0.6.3', require: 'carrierwave/mongoid'
66-
gem 'cancancan-mongoid'
67-
gem 'shrine-mongoid', '~> 1.0'
6836
end
6937
end
7038

7139
appraise 'rails-7.0' do
7240
gem 'rails', '~> 7.0.0'
7341
gem 'importmap-rails', require: false
74-
gem 'sassc-rails', '~> 2.1'
75-
gem 'devise', '~> 4.8'
7642

77-
group :test do
78-
gem 'cancancan', '~> 3.2'
79-
gem 'kt-paperclip'
80-
gem 'rspec-rails', '>= 4.0.0.beta2'
81-
gem 'shrine', '~> 3.0'
43+
group :active_record do
44+
platforms :jruby do
45+
gem 'activerecord-jdbcmysql-adapter', '~> 70.0'
46+
gem 'activerecord-jdbcpostgresql-adapter', '~> 70.0'
47+
gem 'activerecord-jdbcsqlite3-adapter', '~> 70.0'
48+
end
8249
end
8350

84-
group :active_record do
85-
gem 'pg', '>= 1.0.0', platforms: :ruby
86-
gem 'paper_trail', '>= 12.0'
51+
group :mongoid do
52+
gem 'mongoid', '~> 8.0'
8753
end
8854
end
8955

90-
appraise 'composite_primary_keys' do
91-
gem 'rails', '~> 7.0.0'
92-
gem 'sassc-rails', '~> 2.1'
93-
gem 'devise', '~> 4.8'
56+
appraise 'rails-7.1' do
57+
gem 'rails', '~> 7.1.0'
58+
gem 'importmap-rails', require: false
9459

95-
group :test do
96-
gem 'cancancan', '~> 3.2'
97-
gem 'kt-paperclip'
98-
gem 'rspec-rails', '>= 4.0.0.beta2'
99-
gem 'shrine', '~> 3.0'
60+
group :mongoid do
61+
gem 'mongoid', '~> 8.0'
10062
end
63+
end
64+
65+
appraise 'composite_primary_keys' do
66+
gem 'rails', '~> 7.0.0'
10167

10268
group :active_record do
10369
gem 'composite_primary_keys'
104-
gem 'paper_trail', '>= 12.0'
10570
end
10671
end

Gemfile

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,13 @@
33
source 'https://rubygems.org'
44

55
gem 'appraisal', '>= 2.0'
6-
gem 'devise'
6+
gem 'devise', '~> 4.7'
77
gem 'net-smtp', require: false
88
gem 'rails'
9+
gem 'sassc-rails', '~> 2.1'
10+
gem 'vite_rails', require: false
911
gem 'webpacker', require: false
10-
gem 'webrick', '~> 1.7'
11-
12-
group :active_record do
13-
gem 'paper_trail'
14-
15-
platforms :ruby, :mswin, :mingw, :x64_mingw do
16-
gem 'mysql2', '>= 0.3.14'
17-
gem 'sqlite3', '>= 1.3'
18-
end
19-
end
12+
gem 'webrick'
2013

2114
group :development, :test do
2215
gem 'pry', '>= 0.9'
@@ -31,15 +24,17 @@ group :test do
3124
gem 'dragonfly', '~> 1.0'
3225
gem 'factory_bot', '>= 4.2'
3326
gem 'generator_spec', '>= 0.8'
27+
gem 'kt-paperclip'
3428
gem 'launchy', '>= 2.2'
3529
gem 'mini_magick', '>= 3.4'
3630
gem 'pundit'
3731
gem 'rack-cache', require: 'rack/cache'
3832
gem 'rspec-expectations', '!= 3.8.3'
39-
gem 'rspec-rails', '>= 2.14'
33+
gem 'rspec-rails', '>= 4.0.0.beta2'
4034
gem 'rspec-retry'
4135
gem 'rubocop', ['~> 1.20', '!= 1.22.2'], require: false
4236
gem 'rubocop-performance', require: false
37+
gem 'shrine', '~> 3.0'
4338
gem 'simplecov', '>= 0.9', require: false
4439
gem 'simplecov-lcov', require: false
4540
gem 'timecop', '>= 0.5'
@@ -48,4 +43,22 @@ group :test do
4843
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
4944
end
5045

46+
group :active_record do
47+
gem 'paper_trail', '>= 12.0'
48+
49+
platforms :ruby, :mswin, :mingw, :x64_mingw do
50+
gem 'mysql2', '>= 0.3.14'
51+
gem 'pg', '>= 1.0.0'
52+
gem 'sqlite3', '>= 1.3'
53+
end
54+
end
55+
56+
group :mongoid do
57+
gem 'cancancan-mongoid'
58+
gem 'carrierwave-mongoid', '>= 0.6.3', require: 'carrierwave/mongoid'
59+
gem 'kaminari-mongoid'
60+
gem 'mongoid-paperclip', '>= 0.0.8', require: 'mongoid_paperclip'
61+
gem 'shrine-mongoid', '~> 1.0'
62+
end
63+
5164
gemspec

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ RailsAdmin is a Rails engine that provides an easy-to-use interface for managing
1919
- Check out [the docs][docs].
2020
- Try the [live demo][demo]. ([Source code][dummy_app])
2121

22-
[demo]: http://rails-admin-tb.herokuapp.com/
23-
[dummy_app]: https://github.com/bbenezech/dummy_app
22+
[demo]: https://rails-admin.fly.dev/admin/
23+
[dummy_app]: https://github.com/railsadminteam/rails_admin/tree/master/spec/dummy_app
2424
[docs]: https://github.com/railsadminteam/rails_admin/wiki
2525

2626
## Features

app/assets/javascripts/rails_admin/application.js.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
//= require 'rails_admin/popper'
1010
//= require 'rails_admin/bootstrap'
1111

12+
//= require 'rails_admin/abstract-select'
1213
//= require 'rails_admin/filter-box'
1314
//= require 'rails_admin/filtering-multiselect'
1415
//= require 'rails_admin/filtering-select'

app/controllers/rails_admin/main_controller.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,11 @@ def respond_to_missing?(sym, include_private)
5656
end
5757

5858
def back_or_index
59-
params[:return_to].presence && params[:return_to].include?(request.host) && (params[:return_to] != request.fullpath) ? params[:return_to] : index_path
59+
allowed_return_to?(params[:return_to].to_s) ? params[:return_to] : index_path
60+
end
61+
62+
def allowed_return_to?(url)
63+
url != request.fullpath && url.start_with?(request.base_url, '/') && !url.start_with?('//')
6064
end
6165

6266
def get_sort_hash(model_config)

app/views/layouts/rails_admin/_head.html.erb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
<%= stylesheet_link_tag "rails_admin/application.css", media: :all, data: {'turbo-track': 'reload'} %>
1313
<%= javascript_include_tag "rails_admin/application.js", defer: true, data: {'turbo-track': 'reload'} %>
1414
<% end %>
15+
<% when :vite %>
16+
<%= vite_javascript_tag "rails_admin", defer: true, data: {'turbo-track': 'reload'} %>
1517
<% when :webpack %>
1618
<%= stylesheet_link_tag "rails_admin.css", media: :all, data: {'turbo-track': 'reload'} %>
1719
<%= javascript_include_tag "rails_admin.js", defer: true, data: {'turbo-track': 'reload'} %>
@@ -26,4 +28,4 @@
2628
<%= javascript_import_module_tag 'rails_admin' %>
2729
<% else
2830
raise "Unknown asset_source: #{RailsAdmin::config.asset_source}"
29-
end %>
31+
end %>

app/views/rails_admin/main/_form_boolean.html.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
<div class="btn-group" role="group">
33
<% {'1': [true, 'btn-outline-success'], '0': [false, 'btn-outline-danger'], '': [nil, 'btn-outline-secondary']}.each do |text, (value, btn_class)| %>
44
<%= form.radio_button field.method_name, text, field.html_attributes.reverse_merge({ checked: field.form_value == value, required: field.required, class: 'btn-check' }) %>
5-
<label for="<%= form.object_name %>_<%= field.method_name %>_<%= text %>" class="<%= field.css_classes[value] %> btn <%= btn_class %>">
5+
<%= form.label "#{field.method_name}_#{text}", class: "#{field.css_classes[value]} btn #{btn_class}" do %>
66
<%= field.labels[value].html_safe %>
7-
</label>
7+
<% end %>
88
<% end %>
99
</div>
1010
<% else %>

app/views/rails_admin/main/_form_filtering_multiselect.html.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
xhr: xhr,
2121
:'edit-url' => (field.inline_edit && authorized?(:edit, config.abstract_model) ? edit_path(model_name: config.abstract_model.to_param, id: '__ID__') : ''),
2222
remote_source: index_path(config.abstract_model, source_object_id: form.object.id, source_abstract_model: source_abstract_model.to_param, associated_collection: field.name, current_action: current_action, compact: true),
23+
scopeBy: field.dynamic_scope_relationships,
2324
sortable: !!field.orderable,
2425
removable: !!field.removable,
2526
cacheAll: !!field.associated_collection_cache_all,

app/views/rails_admin/main/_form_filtering_select.html.erb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212

1313
js_data = {
1414
xhr: xhr,
15-
remote_source: index_path(config.abstract_model.to_param, source_object_id: form.object.id, source_abstract_model: source_abstract_model.to_param, associated_collection: field.name, current_action: current_action, compact: true)
15+
remote_source: index_path(config.abstract_model.to_param, source_object_id: form.object.id, source_abstract_model: source_abstract_model.to_param, associated_collection: field.name, current_action: current_action, compact: true),
16+
scopeBy: field.dynamic_scope_relationships
1617
}
1718
%>
1819

0 commit comments

Comments
 (0)