jungle_path 0.0.14 → 0.0.15

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
  SHA1:
3
- metadata.gz: 3540331fdfa763c7ccef65f7a710419de1f13254
4
- data.tar.gz: 166cea45aed2c52b6f956697d96e645451d4246a
3
+ metadata.gz: 4eb52d315417ae17e52f0f5ea2572caa5a294ed3
4
+ data.tar.gz: 57f7a7df31b7ac7e2ddab756ea1dc1303cd7a44b
5
5
  SHA512:
6
- metadata.gz: f1554dd1c49227f534d9bb5abdfb01eaf015e1395d564ec2e7f96bc090a7ecca4cc94b2181611313062449edb534cb3e64d04b2e528e03233d11e939cf1a428e
7
- data.tar.gz: 18fe8df3ad243874d70f3b51b63a1f953477e53f6bd3cda6af5e3c0401b5a66b7e30807bdc52453965d7bacb914ff2378c28bb4f966622fdfa11a24d7fd46f7b
6
+ metadata.gz: 783267b10234d3082bdf1891abc3a1154672eb9fa3ddeeb6ccebe7ef85f803d84c17ddd30ee3948f5a8f09cd2fb8a6750e85d0211b15578e9f738cad3eb49cfe
7
+ data.tar.gz: 9f25bb3f0dc97291d6db2e8a1984c148d47268c2487957370f6c4a0cadfdcd55da5c6c7f9e9190d9dd8373ce6b140a67ee432bff888b95bf425739eb45e2d604
@@ -209,18 +209,19 @@ module Config
209
209
  # Replace usage of a table in a query with the given view or parameterized function
210
210
  jungle.role_table_filters = {
211
211
  user: [
212
- {table_name: :contact, replacement: :filter_contact}
212
+ {table_name: :contact, replacement: :filter_contact},
213
+ {table_name: :test, replacement: :filter_test}
213
214
  ]
214
- # more...
215
215
  }
216
216
  end
217
217
 
218
218
  def self.restriction_table_filters
219
- jungle.restriction_table_filters = {
220
- me_related:[
221
- {table_name: :contact, replacement: :filter_contact}
222
- ]
223
- }
219
+ #jungle.restriction_table_filters = {
220
+ # me_related:[
221
+ # {table_name: :contact, replacement: :filter_contact}
222
+ # ]
223
+ #}
224
+ jungle.restriction_table_filters = {}
224
225
  end
225
226
 
226
227
  def self.user_table_filters
@@ -32,6 +32,17 @@ module Schema
32
32
  )
33
33
  end
34
34
 
35
+ class Test < Schema::Base
36
+ self.description = ""
37
+ define(
38
+ [:id, :primary_key],
39
+ [:name, :string],
40
+ [:email, :string],
41
+ [:user_id, :foreign_key, :user, :unique],
42
+ [:audit_user]
43
+ )
44
+ end
45
+
35
46
  class FilterContact < Schema::Base
36
47
  self.description = "Test View filter stuff."
37
48
  define(
@@ -44,6 +55,17 @@ module Schema
44
55
  self.view = Views.filter_contact
45
56
  end
46
57
 
58
+ class FilterTest < Schema::Base
59
+ self.description = "Test View filter stuff."
60
+ define(
61
+ [:id, :primary_key],
62
+ [:name, :string],
63
+ [:email, :string],
64
+ [:user_id, :foreign_key, :user],
65
+ [:audit_user]
66
+ )
67
+ self.view = Views.filter_test
68
+ end
47
69
 
48
70
  class Practice < Schema::Base
49
71
  self.description = ""
@@ -3,7 +3,7 @@ require 'jungle_path/db_model/view'
3
3
 
4
4
  module Views
5
5
  def self.filter_contact
6
- @f = JunglePath::DBModel::View.new(
6
+ @filter_contact = JunglePath::DBModel::View.new(
7
7
  JunglePath::SQL::Helpers.sql("
8
8
  create or replace function filter_contact(p_contact_id int)
9
9
  returns table (
@@ -26,9 +26,39 @@ module Views
26
26
  language sql;
27
27
  "),
28
28
  "drop function filter_contact(int)",
29
- [:user],
29
+ [:contact],
30
30
  [:contact_id]
31
- ) unless @f
32
- @f
31
+ ) unless @filter_contact
32
+ @filter_contact
33
+ end
34
+
35
+ def self.filter_test
36
+ @filter_test = JunglePath::DBModel::View.new(
37
+ JunglePath::SQL::Helpers.sql("
38
+ create or replace function filter_test(p_contact_id int)
39
+ returns table (
40
+ id int,
41
+ name text,
42
+ email text,
43
+ user_id int,
44
+ created_at timestamp,
45
+ created_by_user_id int,
46
+ updated_at timestamp,
47
+ updated_by_user_id int
48
+ )
49
+ as
50
+ $body$
51
+ select
52
+ a.*
53
+ from contact a
54
+ where a.id = p_contact_id
55
+ $body$
56
+ language sql;
57
+ "),
58
+ "drop function filter_test(int)",
59
+ [:contact, :test],
60
+ [:contact_id]
61
+ ) unless @filter_test
62
+ @filter_test
33
63
  end
34
64
  end
@@ -103,25 +103,33 @@ module JunglePath
103
103
  end
104
104
 
105
105
  def get_table_filters(identity, no_cache=false)
106
+ puts "get_table_filters!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
106
107
  filters = {}
107
108
 
108
- temp_filters = (@role_table_filters && @role_table_filters[identity.role]) || []
109
+ puts "@role_table_filters: #{@role_table_filters} ------------------------------------------------------------------------------------"
110
+ puts "identity.role: #{identity.role}"
111
+ temp_filters = (@role_table_filters && @role_table_filters[identity.role[:name]]) || []
112
+ puts "temp_filters: #{temp_filters} ------------------------------------------------------------------------------------"
109
113
  temp_filters.each do |filter|
114
+ puts "role filter: #{filter}."
110
115
  filters[filter[:table_name]] = filter
111
116
  end
112
117
 
113
118
  identity.authorization_filter.restrictions.each do |restriction|
114
119
  temp_filters = (@restriction_table_filters && @restriction_table_filters[restriction]) || []
115
120
  temp_filters.each do |filter|
121
+ puts "restriction filter: #{filter}."
116
122
  filters[filter[:table_name]] = filter
117
123
  end
118
124
  end
119
125
 
120
126
  temp_filters = (@user_table_filters && @user_table_filters[identity.user.id]) || []
121
127
  temp_filters.each do |filter|
128
+ puts "user filter: #{filter}."
122
129
  filters[filter[:table_name]] = filter
123
130
  end
124
131
 
132
+ puts "filters: #{filters}"
125
133
  filters
126
134
  end
127
135
 
@@ -130,10 +130,13 @@ module JunglePath
130
130
  if filter
131
131
  puts "hook_in_table_filters: frm.table_name: #{frm.table_name}."
132
132
  replacement_table = engine.tables[filter[:replacement]]
133
+ puts "replacement_table: #{replacement_table}"
133
134
  table_replacement_text = nil
134
135
  if replacement_table.view
136
+ puts "has view"
135
137
  table_replacement_text = replacement_table.view.build_call(engine.identity, replacement_table)
136
138
  else
139
+ puts "no view"
137
140
  table_replacement_text = "#{replacement_table.table_name}"
138
141
  end
139
142
  frm.table_replacement_text = table_replacement_text
@@ -1,3 +1,3 @@
1
1
  module JunglePath
2
- VERSION = '0.0.14'
2
+ VERSION = '0.0.15'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jungle_path
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael VanZant
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-09 00:00:00.000000000 Z
11
+ date: 2017-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler