motor-admin 0.2.51 → 0.2.53

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f96f929aa91537536fb2bf7600c5910fa8c573a8bc39d735a4a1987ed04a8b6
4
- data.tar.gz: 2ca104e7ea56a378edcd24f56d4d36e98dbd34df54f12df2d26eec1bdee31b91
3
+ metadata.gz: 67bb67c4a201104a29894b80a8bd242f1cf10b49cb6d385714581e7cc7497879
4
+ data.tar.gz: 7982ff5d3c3636c2f6fd4216cd038e33c62f4af603a345900cf05512b5b1fe54
5
5
  SHA512:
6
- metadata.gz: 7ded34bfb1ead6be8fbbfdce823cbc5d015bc54c5665b300c5e168ac93bb48e125589a6b5da4d2df6c65c3efb7a6581fa37e7263645e4cac306ffb6657c8dd96
7
- data.tar.gz: 494738f22d78e71d28d90753ff1e7a72a9dc7e9362e7aa1d037f076506cbe2316e1fc597778a4070059e232a4d9d8b796070318abe9796998a3031711d2cff52
6
+ metadata.gz: 949241fdf2ac8b47d2eb1ff796f11b2784a45226a2abf23bc4ffcb60a2c5f0947e02dd04b20d488f9fcb52ba06eedffc5cccff9d3fcf1a1dd253157bda133e0d
7
+ data.tar.gz: '08b26b86e8cdd556b1230a09539a891aa0c6b863b6a6f3bf62ccb69926bdbbd057fb6a38bb5bfd384652fda1a73aab02d2edbebedf6175c254656e6aa2817caa'
@@ -21,7 +21,9 @@ module Motor
21
21
 
22
22
  def filter_associations(associations, ability)
23
23
  associations.select do |assoc|
24
- ability.can?(:read, assoc[:model_name].classify.constantize)
24
+ model_class = assoc[:model_name].classify.safe_constantize
25
+
26
+ model_class && ability.can?(:read, model_class)
25
27
  end
26
28
  end
27
29
 
@@ -29,8 +31,11 @@ module Motor
29
31
  columns.map do |column|
30
32
  next unless ability.can?(:read, model, column[:name])
31
33
 
32
- next if column.dig(:reference, :model_name).present? &&
33
- !ability.can?(:read, column[:reference][:model_name].classify.constantize)
34
+ reference_model_name = column.dig(:reference, :model_name)
35
+ model_class = reference_model_name&.classify&.safe_constantize
36
+
37
+ next if reference_model_name &&
38
+ (model_class.nil? || !ability.can?(:read, model_class))
34
39
 
35
40
  unless ability.can?(:update, model, column[:name])
36
41
  column = column.merge(access_type: BuildSchema::ColumnAccessTypes::READ_ONLY)
@@ -154,7 +154,8 @@ module Motor
154
154
 
155
155
  return {} if column.name == 'year'
156
156
 
157
- return { number_format: true } if !column.name.match?(/_(?:id|year)\z/) &&
157
+ return { number_format: true } if !column.name == 'id' &&
158
+ !column.name.match?(/_(?:id|year)\z/) &&
158
159
  %i[integer float].include?(column.type)
159
160
 
160
161
  {}
@@ -13,7 +13,7 @@ module Motor
13
13
  module_function
14
14
 
15
15
  def call(current_user = nil, current_ability = nil, cache_keys: LoadFromCache.load_cache_keys)
16
- CACHE_STORE.fetch("#{I18n.locale}#{cache_keys.hash}#{current_user&.id}#{current_ability&.rules_hash}") do
16
+ CACHE_STORE.fetch(app_tag_cache_key(cache_keys, current_user, current_ability)) do
17
17
  CACHE_STORE.clear
18
18
 
19
19
  data = build_data(cache_keys, current_user, current_ability)
@@ -21,6 +21,14 @@ module Motor
21
21
  end
22
22
  end
23
23
 
24
+ def app_tag_cache_key(cache_keys, current_user, current_ability)
25
+ key = "#{I18n.locale}#{cache_keys.hash}#{current_user&.id}#{current_ability&.rules_hash}"
26
+
27
+ key += Motor::DefineArModels.defined_models_schema_md5.to_s if defined?(Motor::DefineArModels)
28
+
29
+ key
30
+ end
31
+
24
32
  # rubocop:disable Metrics/AbcSize
25
33
  # @return [Hash]
26
34
  def build_data(cache_keys = {}, current_user = nil, current_ability = nil)
data/lib/motor/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Motor
4
- VERSION = '0.2.51'
4
+ VERSION = '0.2.53'
5
5
  end
@@ -2601,9 +2601,9 @@
2601
2601
  "icons/zoom-out.svg.gz": "icons/zoom-out.svg.gz",
2602
2602
  "icons/zoom-question.svg": "icons/zoom-question.svg",
2603
2603
  "icons/zoom-question.svg.gz": "icons/zoom-question.svg.gz",
2604
- "main-2f07e682c44815a0eb71.css.gz": "main-2f07e682c44815a0eb71.css.gz",
2605
- "main-2f07e682c44815a0eb71.js.LICENSE.txt": "main-2f07e682c44815a0eb71.js.LICENSE.txt",
2606
- "main-2f07e682c44815a0eb71.js.gz": "main-2f07e682c44815a0eb71.js.gz",
2607
- "main.css": "main-2f07e682c44815a0eb71.css",
2608
- "main.js": "main-2f07e682c44815a0eb71.js"
2604
+ "main-f5a4c21edafaf5c70b05.css.gz": "main-f5a4c21edafaf5c70b05.css.gz",
2605
+ "main-f5a4c21edafaf5c70b05.js.LICENSE.txt": "main-f5a4c21edafaf5c70b05.js.LICENSE.txt",
2606
+ "main-f5a4c21edafaf5c70b05.js.gz": "main-f5a4c21edafaf5c70b05.js.gz",
2607
+ "main.css": "main-f5a4c21edafaf5c70b05.css",
2608
+ "main.js": "main-f5a4c21edafaf5c70b05.js"
2609
2609
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motor-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.51
4
+ version: 0.2.53
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Matsyburka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-06 00:00:00.000000000 Z
11
+ date: 2022-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord-filter
@@ -1532,8 +1532,8 @@ files:
1532
1532
  - ui/dist/icons/zoom-money.svg.gz
1533
1533
  - ui/dist/icons/zoom-out.svg.gz
1534
1534
  - ui/dist/icons/zoom-question.svg.gz
1535
- - ui/dist/main-2f07e682c44815a0eb71.css.gz
1536
- - ui/dist/main-2f07e682c44815a0eb71.js.gz
1535
+ - ui/dist/main-f5a4c21edafaf5c70b05.css.gz
1536
+ - ui/dist/main-f5a4c21edafaf5c70b05.js.gz
1537
1537
  - ui/dist/manifest.json
1538
1538
  homepage:
1539
1539
  licenses: