tramway-admin 1.20.2 → 1.20.2.1

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: 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