proxes 0.3.6 → 0.4.0

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
  SHA1:
3
- metadata.gz: 8d84d569f0a5650fb34b6bd9aede6d9737540323
4
- data.tar.gz: ac93f76be8bf7ccd7fdfac033e2affe8f9442999
3
+ metadata.gz: 701cef47d840b7a98b029c49b0669549df8d24fe
4
+ data.tar.gz: beefb8e479b990c177976245a03d2f401d10861a
5
5
  SHA512:
6
- metadata.gz: 725746109ead14f455a36006863ad9bff880d8685b2511d4ddec6cf7c882b85b04e4250f9154e1eb71c12a523c14ef11399430200082fca0bdc85fd6e48565dc
7
- data.tar.gz: ab5eb8ba0e65a9adf781cd6f2ff977323ae514388f206d4ef7a5e8a0748bc8c4e1241239dfa1acc5117eefc188fa397c5aea561c7fd9d7a8b7df03f475236a8d
6
+ metadata.gz: d95b0bf8b05afe16014fdeb90c88c8860462d5c240f0e5f0c0483f869403430e81e8724b9d6fa031dd5777cb466a0992dbbd93192fb45f5b799968cf3ee219e9
7
+ data.tar.gz: aa3fffe5fe4deb819ecaa8e2f13562da5e881dca04e4c2e0ea449c239d1d16d27fc1e2b6b06dc6e05a8f28ec5bdd8f8474fcad11c20be981fcc83d1d8102764d
data/.gitignore CHANGED
@@ -11,3 +11,4 @@
11
11
  /node_modules
12
12
  .vagrant
13
13
  *.db
14
+ /Gemfile.dev.lock
@@ -96,13 +96,19 @@ module ProxES
96
96
  def navigation
97
97
  Plugins.plugins.map do |_key, plugin|
98
98
  plugin.nav_items if plugin.respond_to?(:nav_items)
99
- end.flatten.sort_by { |h| h[:order] }
99
+ end.compact.flatten.sort_by { |h| h[:order] }
100
100
  end
101
101
 
102
102
  def migrations
103
103
  Plugins.plugins.map do |_key, plugin|
104
104
  plugin.migration_folder if plugin.respond_to?(:migration_folder)
105
- end
105
+ end.compact
106
+ end
107
+
108
+ def seeders
109
+ Plugins.plugins.map do |_key, plugin|
110
+ plugin.seeder if plugin.respond_to?(:seeder)
111
+ end.compact
106
112
  end
107
113
  end
108
114
 
@@ -4,7 +4,8 @@ module ProxES
4
4
  module Authentication
5
5
  def current_user
6
6
  return nil unless env['rack.session'] && env['rack.session']['user_id']
7
- @user ||= User[env['rack.session']['user_id']]
7
+ @users ||= Hash.new {|h,k| h[k] = User[k]}
8
+ @users[env['rack.session']['user_id']]
8
9
  end
9
10
 
10
11
  def current_user=(user)
@@ -2,11 +2,15 @@ require 'wisper'
2
2
 
3
3
  module ProxES
4
4
  class Listener
5
+ def initialize
6
+ @mutex = Mutex.new
7
+ end
8
+
5
9
  def method_missing(method, *args, &block)
6
10
  vals = { action: method }
7
11
  vals[:user] = args[0][:user] if (args[0] && args[0].has_key?(:user))
8
12
  vals[:details] = args[0][:details] if (args[0] && args[0].has_key?(:details))
9
- AuditLog.create vals
13
+ @mutex.synchronize { AuditLog.create vals }
10
14
  end
11
15
 
12
16
  def respond_to_missing?(method, include_private = false)
@@ -29,6 +29,16 @@ module ProxES
29
29
  { order: 2, link:'/permissions/', text: 'Permissions', target: Permission, icon: 'check-square' },
30
30
  ]
31
31
  end
32
+
33
+ def self.seeder
34
+ Proc.new do
35
+ ::ProxES::Role.find_or_create(name: 'user')
36
+ sa = ::ProxES::Role.find_or_create(name: 'super_admin')
37
+ %w(GET POST PUT DELETE HEAD OPTIONS INDEX).each do |verb|
38
+ ::ProxES::Permission.find_or_create(role: sa, verb: verb, pattern: '.*')
39
+ end
40
+ end
41
+ end
32
42
  end
33
43
  end
34
44
 
@@ -38,9 +38,9 @@ module ProxES
38
38
  begin
39
39
  check_basic
40
40
  authorize request
41
- rescue StandardError => e
41
+ rescue StandardError
42
42
  log_action(:es_request_denied, details: "#{request.request_method.upcase} #{request.fullpath} (#{request.class.name})")
43
- logger.debug "Access denied by security layer: #{e.message}"
43
+ logger.debug "Access denied for #{current_user ? current_user.email : 'Anonymous User'} by security layer: #{request.request_method.upcase} #{request.fullpath} (#{request.class.name})"
44
44
  return error 'Forbidden', 403
45
45
  end
46
46
  request.index = policy_scope(request) if request.indices?
@@ -2,8 +2,6 @@ require 'proxes/db'
2
2
  require 'proxes/models/role'
3
3
  require 'proxes/models/permission'
4
4
 
5
- ProxES::Role.find_or_create(name: 'user')
6
- sa = ProxES::Role.find_or_create(name: 'super_admin')
7
- %w(GET POST PUT DELETE HEAD OPTIONS INDEX).each do |verb|
8
- ProxES::Permission.find_or_create(role: sa, verb: verb, pattern: '.*')
5
+ ::ProxES::Container.seeders.each do |seeder|
6
+ seeder.call
9
7
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ProxES
3
- VERSION = '0.3.6'
3
+ VERSION = '0.4.0'
4
4
  end
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency 'activesupport'
31
31
  spec.add_dependency 'rake', '~> 10.0'
32
32
  spec.add_dependency 'rack-contrib'
33
- spec.add_dependency 'sinatra'
33
+ spec.add_dependency 'sinatra', '~> 1.0'
34
34
  spec.add_dependency 'sinatra-flash'
35
35
  spec.add_dependency 'sinatra-contrib'
36
36
  spec.add_dependency 'elasticsearch'
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
40
40
  spec.add_dependency 'bcrypt'
41
41
  spec.add_dependency 'omniauth'
42
42
  spec.add_dependency 'omniauth-identity'
43
- spec.add_dependency 'haml'
43
+ spec.add_dependency 'haml', '~> 4.0'
44
44
  spec.add_dependency 'wisper'
45
45
  spec.add_dependency 'tilt', '>= 2'
46
46
  end
@@ -22,3 +22,5 @@
22
22
  = entity.details
23
23
  %td
24
24
  = entity.created_at.strftime('%Y-%m-%d %H:%M:%S')
25
+
26
+ =pagination(list, base_path)
@@ -1,6 +1,3 @@
1
- .row
2
- .col-md-12
3
- %h1 ProxES Registration
4
1
  .row
5
2
  .col-md-2
6
3
  .col-md-8
@@ -13,8 +13,7 @@
13
13
  - options.each do |k,v| k ||= v; v ||= k;
14
14
  %option{ value: k, selected: (k.to_s == model[field].to_s)}= v
15
15
  - elsif type == 'textarea'
16
- %textarea{attributes}
17
- = model[field]
16
+ %textarea{attributes}= preserve(model[field])
18
17
  - else
19
18
  %input{attributes, type: type, value: model[field]}
20
19
  - if model.errors[field]
@@ -1,19 +1,12 @@
1
- <nav aria-label="Page navigation">
2
- <p class="text-center">
3
- Showing <%= list.current_page_record_range %> of <%= list.pagination_record_count %> records
4
- </p>
5
- <ul class="pager">
6
- <li>
7
- <a href="<%= base_path %>?page=1&count=<%= list.page_size %>">First</a>
8
- </li>
9
- <li<% if list.first_page? %> class="disabled"<% end %>>
10
- <a href="<%= prev_link %>">Previous</a>
11
- </li>
12
- <li<% if list.last_page? %> class="disabled"<% end %>>
13
- <a href="<%= next_link %>">Next</a>
14
- </li>
15
- <li>
16
- <a href="<%= base_path %>?page=<%= list.page_count %>&count=<%= list.page_size %>">Last</a>
17
- </li>
18
- </ul>
19
- </nav>
1
+ %nav{"aria-label" => "Page navigation"}
2
+ %p.text-center
3
+ Showing #{list.current_page_record_range} of #{list.pagination_record_count} records
4
+ %ul.pager
5
+ %li
6
+ %a{href: "#{base_path}?page=1&count=#{list.page_size}"} First
7
+ %li{class: ("disabled" if list.first_page?)}
8
+ %a{href: prev_link} Previous
9
+ %li{class: ("disabled" if list.last_page?)}
10
+ %a{href: next_link} Next
11
+ %li
12
+ %a{href: "#{base_path}?page=#{list.page_count}&count=#{list.page_size}"} Last
@@ -12,3 +12,5 @@
12
12
  = entity.pattern
13
13
  .panel-body.text-right
14
14
  %a.btn.btn-primary{ href: '/_proxes/permissions/new' } New Permission
15
+
16
+ =pagination(list, base_path)
@@ -15,3 +15,5 @@
15
15
  = entity.permissions_dataset.count
16
16
  .panel-body.text-right
17
17
  %a.btn.btn-primary{ href: '/_proxes/roles/new' } New Role
18
+
19
+ =pagination(list, base_path)
@@ -17,4 +17,6 @@
17
17
  %td= entity.surname
18
18
  %td= entity.roles_dataset.map(:name).map(&:titlecase).join(', ')
19
19
  .panel-body.text-right
20
- %a.btn.btn-primary{ href: '/_proxes/users/new' } New User
20
+ %a.btn.btn-primary{ href: '/_proxes/users/new' } New User
21
+
22
+ =pagination(list, base_path)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proxes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jurgens du Toit
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-16 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
@@ -140,16 +140,16 @@ dependencies:
140
140
  name: sinatra
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0'
145
+ version: '1.0'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0'
152
+ version: '1.0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: sinatra-flash
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -280,16 +280,16 @@ dependencies:
280
280
  name: haml
281
281
  requirement: !ruby/object:Gem::Requirement
282
282
  requirements:
283
- - - ">="
283
+ - - "~>"
284
284
  - !ruby/object:Gem::Version
285
- version: '0'
285
+ version: '4.0'
286
286
  type: :runtime
287
287
  prerelease: false
288
288
  version_requirements: !ruby/object:Gem::Requirement
289
289
  requirements:
290
- - - ">="
290
+ - - "~>"
291
291
  - !ruby/object:Gem::Version
292
- version: '0'
292
+ version: '4.0'
293
293
  - !ruby/object:Gem::Dependency
294
294
  name: wisper
295
295
  requirement: !ruby/object:Gem::Requirement
@@ -336,7 +336,6 @@ files:
336
336
  - Gemfile
337
337
  - Gemfile.ci
338
338
  - Gemfile.dev
339
- - Gemfile.dev.lock
340
339
  - LICENSE.txt
341
340
  - README.md
342
341
  - Rakefile
@@ -396,8 +395,8 @@ files:
396
395
  - lib/proxes/seed.rb
397
396
  - lib/proxes/services/logger.rb
398
397
  - lib/proxes/version.rb
399
- - migrate/20170207_01_base_tables.rb
400
- - migrate/20170207_02_audit_log.rb
398
+ - migrate/20170207_base_tables.rb
399
+ - migrate/20170208_audit_log.rb
401
400
  - migrate/20170416_audit_log_details.rb
402
401
  - migrate/20170416_user_specific_permissions.rb
403
402
  - package.json
@@ -1,164 +0,0 @@
1
- GIT
2
- remote: https://github.com/alexch/rerun.git
3
- revision: 3e4c486304be406cb86180ef70ec24e9ae055ce4
4
- branch: master
5
- specs:
6
- rerun (0.11.0)
7
- listen (~> 3.0)
8
-
9
- PATH
10
- remote: .
11
- specs:
12
- proxes (0.3.5)
13
- activesupport
14
- bcrypt
15
- elasticsearch
16
- haml
17
- logger
18
- omniauth
19
- omniauth-identity
20
- pundit
21
- rack-contrib
22
- rake (~> 10.0)
23
- sequel
24
- sinatra
25
- sinatra-contrib
26
- sinatra-flash
27
- tilt (>= 2)
28
- wisper
29
-
30
- GEM
31
- remote: https://rubygems.org/
32
- specs:
33
- activesupport (5.0.1)
34
- concurrent-ruby (~> 1.0, >= 1.0.2)
35
- i18n (~> 0.7)
36
- minitest (~> 5.1)
37
- tzinfo (~> 1.1)
38
- backports (3.7.0)
39
- bcrypt (3.1.11)
40
- bcrypt-ruby (3.1.5)
41
- bcrypt (>= 3.1.3)
42
- byebug (9.0.6)
43
- coderay (1.1.1)
44
- concurrent-ruby (1.0.4)
45
- database_cleaner (1.5.3)
46
- diff-lcs (1.2.5)
47
- docile (1.1.5)
48
- elasticsearch (5.0.4)
49
- elasticsearch-api (= 5.0.4)
50
- elasticsearch-transport (= 5.0.4)
51
- elasticsearch-api (5.0.4)
52
- multi_json
53
- elasticsearch-transport (5.0.4)
54
- faraday
55
- multi_json
56
- factory_girl (4.8.0)
57
- activesupport (>= 3.0.0)
58
- faraday (0.12.0.1)
59
- multipart-post (>= 1.2, < 3)
60
- ffi (1.9.14)
61
- git-version-bump (0.15.1)
62
- haml (4.0.7)
63
- tilt
64
- hashie (3.5.5)
65
- i18n (0.7.0)
66
- json (2.0.2)
67
- listen (3.1.5)
68
- rb-fsevent (~> 0.9, >= 0.9.4)
69
- rb-inotify (~> 0.9, >= 0.9.7)
70
- ruby_dep (~> 1.2)
71
- logger (1.2.8)
72
- method_source (0.8.2)
73
- minitest (5.10.1)
74
- multi_json (1.12.1)
75
- multipart-post (2.0.0)
76
- omniauth (1.6.1)
77
- hashie (>= 3.4.6, < 3.6.0)
78
- rack (>= 1.6.2, < 3)
79
- omniauth-identity (1.1.1)
80
- bcrypt-ruby (~> 3.0)
81
- omniauth (~> 1.0)
82
- pry (0.10.4)
83
- coderay (~> 1.1.0)
84
- method_source (~> 0.8.1)
85
- slop (~> 3.4)
86
- pry-byebug (3.4.2)
87
- byebug (~> 9.0)
88
- pry (~> 0.10)
89
- pundit (1.1.0)
90
- activesupport (>= 3.0.0)
91
- rack (1.6.5)
92
- rack-contrib (1.4.0)
93
- git-version-bump (~> 0.15)
94
- rack (~> 1.4)
95
- rack-protection (1.5.3)
96
- rack
97
- rack-test (0.6.3)
98
- rack (>= 1.0)
99
- racksh (1.0.0)
100
- rack (>= 1.0)
101
- rack-test (>= 0.5)
102
- rake (10.5.0)
103
- rb-fsevent (0.9.8)
104
- rb-inotify (0.9.7)
105
- ffi (>= 0.5.0)
106
- rspec (3.5.0)
107
- rspec-core (~> 3.5.0)
108
- rspec-expectations (~> 3.5.0)
109
- rspec-mocks (~> 3.5.0)
110
- rspec-core (3.5.4)
111
- rspec-support (~> 3.5.0)
112
- rspec-expectations (3.5.0)
113
- diff-lcs (>= 1.2.0, < 2.0)
114
- rspec-support (~> 3.5.0)
115
- rspec-mocks (3.5.0)
116
- diff-lcs (>= 1.2.0, < 2.0)
117
- rspec-support (~> 3.5.0)
118
- rspec-support (3.5.0)
119
- ruby_dep (1.5.0)
120
- sequel (4.45.0)
121
- simplecov (0.12.0)
122
- docile (~> 1.1.0)
123
- json (>= 1.8, < 3)
124
- simplecov-html (~> 0.10.0)
125
- simplecov-html (0.10.0)
126
- sinatra (1.4.8)
127
- rack (~> 1.5)
128
- rack-protection (~> 1.4)
129
- tilt (>= 1.3, < 3)
130
- sinatra-contrib (1.4.7)
131
- backports (>= 2.0)
132
- multi_json
133
- rack-protection
134
- rack-test
135
- sinatra (~> 1.4.0)
136
- tilt (>= 1.3, < 3)
137
- sinatra-flash (0.3.0)
138
- sinatra (>= 1.0.0)
139
- slop (3.6.0)
140
- sqlite3 (1.3.12)
141
- thread_safe (0.3.5)
142
- tilt (2.0.7)
143
- tzinfo (1.2.2)
144
- thread_safe (~> 0.1)
145
- wisper (2.0.0)
146
-
147
- PLATFORMS
148
- ruby
149
-
150
- DEPENDENCIES
151
- bundler (~> 1.12)
152
- database_cleaner
153
- factory_girl
154
- proxes!
155
- pry-byebug
156
- rack-test
157
- racksh
158
- rerun!
159
- rspec (~> 3.0)
160
- simplecov
161
- sqlite3
162
-
163
- BUNDLED WITH
164
- 1.14.6