tramway-admin 1.23.0.2 → 1.23.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/tramway/admin/application.js.coffee +3 -0
- data/app/controllers/tramway/admin/application_controller.rb +1 -0
- data/lib/tramway/admin.rb +7 -2
- data/lib/tramway/admin/records_models.rb +9 -2
- data/lib/tramway/admin/singleton_models.rb +8 -1
- data/lib/tramway/admin/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e829ed2d89e8d5fd1473c6e9ee5b62e0575f5c75d60a7093847c6528c7dfa380
|
4
|
+
data.tar.gz: 0641cb8bb91d91f751d0aba568d0c31915ecf4832474889b0d791680bb4f9af4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee3bfebb363dcbad9d0beee9ff640d7dbecec7c6894bd462c084cf5c5e2b3505cd54c6dc56481d33855b50889abded2274471a94ab1c04daf0a156a52eba6896
|
7
|
+
data.tar.gz: 6ff5398fd1251c97811667d05075d317f35ef668ed63a04a968c11c230ae7599957d17ba6213fcf81b1c6c975eb8efbcbb44b012317aead899418c5647ac79d5
|
@@ -5,6 +5,7 @@ require 'tramway/helpers/class_name_helpers'
|
|
5
5
|
module Tramway
|
6
6
|
module Admin
|
7
7
|
class ApplicationController < ::Tramway::Core::ApplicationController
|
8
|
+
include Tramway::ClassNameHelpers
|
8
9
|
include Tramway::AuthManagement
|
9
10
|
include RecordRoutesHelper
|
10
11
|
before_action :authenticate_admin!
|
data/lib/tramway/admin.rb
CHANGED
@@ -31,11 +31,16 @@ module Tramway
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def get_models_by_key(checked_models, project, role)
|
34
|
-
checked_models && checked_models != [] && checked_models[project][role] || []
|
34
|
+
checked_models && checked_models != [] && checked_models[project][role]&.keys || []
|
35
35
|
end
|
36
36
|
|
37
37
|
def models_array(models_type:, role:)
|
38
|
-
|
38
|
+
# FIXME projects[1] WHAT DA FUCK?!!!!
|
39
|
+
instance_variable_get("@#{models_type}_models")&.map { |projects| projects[1][role]&.keys }&.flatten || []
|
40
|
+
end
|
41
|
+
|
42
|
+
def action_is_available?(project:, role:, model:, action:)
|
43
|
+
@singleton_models[project][role][model][action]
|
39
44
|
end
|
40
45
|
end
|
41
46
|
end
|
@@ -4,8 +4,15 @@ module Tramway::Admin::RecordsModels
|
|
4
4
|
def set_available_models(*models, project:, role: :admin)
|
5
5
|
@available_models ||= {}
|
6
6
|
@available_models[project] ||= {}
|
7
|
-
@available_models[project][role] ||=
|
8
|
-
|
7
|
+
@available_models[project][role] ||= {}
|
8
|
+
models.each do |model|
|
9
|
+
case model.class
|
10
|
+
when Class
|
11
|
+
@available_models[project][role].merge! model => [ :index, :show, :update, :create, :destroy ]
|
12
|
+
when Hash
|
13
|
+
@available_models[project][role].merge! model
|
14
|
+
end
|
15
|
+
end
|
9
16
|
@available_models = @available_models.with_indifferent_access
|
10
17
|
end
|
11
18
|
|
@@ -5,7 +5,14 @@ module Tramway::Admin::SingletonModels
|
|
5
5
|
@singleton_models ||= {}
|
6
6
|
@singleton_models[project] ||= {}
|
7
7
|
@singleton_models[project][role] ||= []
|
8
|
-
|
8
|
+
models.each do |model|
|
9
|
+
case model.class
|
10
|
+
when Class
|
11
|
+
@available_models[project][role] << { model => [ :index, :show, :update, :create, :destroy ] }
|
12
|
+
when Hash
|
13
|
+
@available_models[project][role] << model
|
14
|
+
end
|
15
|
+
end
|
9
16
|
@singleton_models = @singleton_models.with_indifferent_access
|
10
17
|
end
|
11
18
|
|
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.23.0.
|
4
|
+
version: 1.23.0.3
|
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-02-
|
11
|
+
date: 2020-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bootstrap-kaminari-views
|