tramway-admin 1.20.2 → 1.20.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a2390d02f234a6031e5d73c8bb61f41bd5c1a77283c37dbb41f1fed9dc1186d
4
- data.tar.gz: 7e60ff75d36704556651ccc50da1eb734ae60df9a27ef12d79fd88acedf0f668
3
+ metadata.gz: 2fbd8838a49c3c9c03b5af113ae383fbd2a9a46b2ac769e9690937a4d0154895
4
+ data.tar.gz: 879e3c86f5dd890d0784c353731c43807baca57e509334845a6adf9a7c9665c9
5
5
  SHA512:
6
- metadata.gz: 291eb2087dad80bcc5856234ed3a239a4dd60b083305723610f2434e163a16907b1c5fab842facb36e1925347ddf6d5a346f4ce73a5de611a9857ff8bac258e1
7
- data.tar.gz: 7568b0bbb7222425137630a3b969b07b4cfdea6b5a6a766a6ba0840f0683b9b47175e0cadb6a22d39f43bf2a958e2fd6dd600c161469eb403aae24db766cf2b3
6
+ metadata.gz: e432310f7f6b100464fd2f01900d0d3a907d5e62cbe3e2b78fca12003204784423ca59fa610666d0320620e2d03962b18a66dc54b96688c5ddedd9603495e654
7
+ data.tar.gz: 679c2bbf440f72b9971076be923cc26fd90bd1e7854b78d1122bb070c21bd89cfd8cc74aa91f0022d072a93d6dba4a54640db96dfe0e1a20cbd758a7971cada4
@@ -8,24 +8,26 @@ module Tramway
8
8
  include Tramway::AuthManagement
9
9
  include RecordRoutesHelper
10
10
  before_action :authenticate_admin!
11
- before_action :check_available!
12
- before_action :collections_counts, if: :model_given?
13
- before_action :check_available_scope!, if: :model_given?, only: :index
14
11
  before_action :application
15
12
  before_action :notifications
16
13
  before_action :notifications_count
14
+ before_action :collections_counts, if: :model_given?
15
+ before_action :check_available!
16
+ before_action :check_available_scope!, if: :model_given?, only: :index
17
17
 
18
18
  protect_from_forgery with: :exception
19
19
 
20
20
  protected
21
21
 
22
22
  def check_available!
23
- render '/404' unless model_given?
23
+ unless model_given?
24
+ raise 'Model is not available'
25
+ end
24
26
  end
25
27
 
26
28
  def check_available_scope!
27
- if params[:scope].present?
28
- render '/404' unless available_scope_given?
29
+ if params[:scope].present? && !available_scope_given?
30
+ raise 'Scope is not available'
29
31
  end
30
32
  end
31
33
 
@@ -92,12 +94,18 @@ module Tramway
92
94
  end
93
95
 
94
96
  def available_models_given?
95
- models = ::Tramway::Admin.available_models(role: current_user.role)
96
- models.any? && params[:model].in?(models.map(&:to_s))
97
+ check_models_given? :available
97
98
  end
98
99
 
99
100
  def singleton_models_given?
100
- ::Tramway::Admin.singleton_models.any? && params[:model].in?(::Tramway::Admin.singleton_models.map(&:to_s))
101
+ check_models_given? :singleton
102
+ end
103
+
104
+ private
105
+
106
+ def check_models_given?(model_type)
107
+ models = ::Tramway::Admin.send("#{model_type}_models", role: current_user.role)
108
+ models.any? && params[:model].in?(models.map(&:to_s))
101
109
  end
102
110
  end
103
111
  end
@@ -11,8 +11,8 @@ module Tramway::Admin::RecordsModels
11
11
  models = get_models_by_key(@available_models, project, role)
12
12
  if project_is_engine?(project)
13
13
  models += engine_class(project).dependencies.map do |dependency|
14
- if @available_models[dependency].present?
15
- @available_models[dependency]
14
+ if @available_models[dependency][role].present?
15
+ @available_models[dependency][role]
16
16
  else
17
17
  error = Tramway::Error.new(
18
18
  plugin: :admin,
@@ -4,6 +4,7 @@ module Tramway::Admin::SingletonModels
4
4
  @singleton_models[project] ||= {}
5
5
  @singleton_models[project][role] ||= []
6
6
  @singleton_models[project][role] += models
7
+ @singleton_models = @singleton_models.with_indifferent_access
7
8
  end
8
9
 
9
10
  def singleton_models_for(project, role: :admin)
@@ -16,7 +17,14 @@ module Tramway::Admin::SingletonModels
16
17
  models
17
18
  end
18
19
 
19
- def singleton_models
20
- @singleton_models&.values&.flatten || []
20
+ def singleton_models(role:)
21
+ if @singleton_models
22
+ @singleton_models.map do |projects|
23
+ projects[1][role]
24
+ end.flatten
25
+ else
26
+ error = Tramway::Error.new(plugin: :admin, method: :singleton_models, message: 'List of singleton_models is empty. You should add some of them using `::Tramway::Admin.set_singleton_models(*list_of_classes, project: :your_project_name)` in `config/initializers/tramway.rb`')
27
+ raise error.message
28
+ end
21
29
  end
22
30
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Tramway
4
4
  module Admin
5
- VERSION = '1.20.2'
5
+ VERSION = '1.20.2.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tramway-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.20.2
4
+ version: 1.20.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Kalashnikov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-21 00:00:00.000000000 Z
11
+ date: 2020-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bootstrap-kaminari-views