break_dance 0.1.2 → 0.2.0

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjM5MDQ4YzAwY2VhZjlhMTdiYmE5MzEwNjZjOWUyZTcwMGNjZDRhYQ==
4
+ OGRjNWMwNWU4OTI5OTI1OTU5MGUxN2QzNGIxNWM1ZDhhNjY3MDNjZg==
5
5
  data.tar.gz: !binary |-
6
- Y2JhNmE0MzgzYzc3ZmJlMjdjYTk2NzJkZjU1OWM0MjgzMjgwMDBjYg==
6
+ ZDQzYWFlYTJiNTFjMTViNmMxMDFjMzM3Yjk0Y2U1N2EwNzE5ZTY0Nw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MjRmNjE1OWVkMGEwMDYxNGFhZTkxNjBhZDgwNDkxYWQ4MjA4OTBlYmYxZDk0
10
- ZmM2NmQ0YzkxN2IwMjE4ODM2OTUyMGZjZTMyZWM4NmZkMjZlYmYyZWE1OGQw
11
- NjMxNzllZTk0M2U3MjhkZjkyYTA5MmJiMTMzN2IxNGVjNmQwNzU=
9
+ NWIyODhkOWRmYmU1YzdkOTVjZmVlZTNmM2ZmNzJlNjNkYTUzOTgwY2MyMTFl
10
+ NGNhODkzOWVhYzUxMDBlMDExYWU3ZTQ0ZmJmYzZlMGJlNzk1MDEwZTU0OGZk
11
+ M2E1OWUwMWNmZDE3NzZlY2E1MDM0NTllNzQzOWI1ODExNmJlMDI=
12
12
  data.tar.gz: !binary |-
13
- NDE2OWNlNDFjMzY3OWQ0ZWU2NjUyYzYyMmU4MzUxYTE5YTBjOWYwYzQ5MDAx
14
- MWJlODA3ZGZjMmM4N2JjZjEwMTc5OGM4ZDI3YmRmOTMyOGY5ZjAyOTQ0NGEz
15
- MTBiNzFiZTFiYjA5ZWJlNTlhMjZjYWY5ZjlmOThlYjYwNGUzNzk=
13
+ MjRlY2UyYTBmYzAwYTE5ZjhmYTEyYzA4ODRlM2RjMTRiNjgxYmFiMWExZDY5
14
+ YmU5YjEzNzQyMTU4MjJiNzg4NWQ3MWVmNDNjNGUxZjg5MDM4OTUzZjI5Nzk0
15
+ YmY5MjVlYWM3MzY0MjU0NjQxMDMxOGE3NzlmYzYxZmE3NmI5Y2I=
data/break_dance.gemspec CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.add_dependency "request_store", "~> 1.0"
22
+
21
23
  spec.add_development_dependency "bundler", "~> 1.3"
22
24
  spec.add_development_dependency "rake"
23
25
  end
@@ -22,15 +22,15 @@ module BreakDance
22
22
  allowed_permissions = current_permissions['resources'].select { |_,v| v == '1'}
23
23
 
24
24
  allowed = allowed_permissions.any? do |r|
25
- Thread.current[:security_policy_holder].resources[r[0].to_sym] and Thread.current[:security_policy_holder].resources[r[0].to_sym][:can].any? do |k,v|
25
+ RequestStore.store[:security_policy_holder].resources[r[0].to_sym] and RequestStore.store[:security_policy_holder].resources[r[0].to_sym][:can].any? do |k,v|
26
26
  v = Array.wrap(v)
27
27
  k == resource.to_sym && (
28
28
  (
29
29
  v.include?(:all_actions) &&
30
30
  !(
31
- Thread.current[:security_policy_holder].resources[r[0].to_sym][:except] &&
32
- Thread.current[:security_policy_holder].resources[r[0].to_sym][:except][resource.to_sym] &&
33
- Thread.current[:security_policy_holder].resources[r[0].to_sym][:except][resource.to_sym].include?(action.to_sym)
31
+ RequestStore.store[:security_policy_holder].resources[r[0].to_sym][:except] &&
32
+ RequestStore.store[:security_policy_holder].resources[r[0].to_sym][:except][resource.to_sym] &&
33
+ RequestStore.store[:security_policy_holder].resources[r[0].to_sym][:except][resource.to_sym].include?(action.to_sym)
34
34
  )
35
35
  ) || v.include?(action.to_sym) )
36
36
  end
@@ -52,7 +52,7 @@ module BreakDance
52
52
  def prepare_security_policy
53
53
  @with_authorization = true
54
54
 
55
- Thread.current[:security_policy_holder] = BreakDance::SecurityPoliciesHolder.new
55
+ RequestStore.store[:security_policy_holder] = BreakDance::SecurityPoliciesHolder.new
56
56
 
57
57
  SecurityPolicy.new(current_user)
58
58
  end
@@ -8,12 +8,12 @@ module BreakDance
8
8
  def scope(model)
9
9
  model_name = model.name
10
10
  if @user and @user.permissions and @user.permissions['models'] and @user.permissions['models'].has_key? model_name and @user.permissions['models'][model_name] == @policy_name
11
- Thread.current[:security_policy_holder].policies[model.name] = yield(model.unscoped)
11
+ RequestStore.store[:security_policy_holder].policies[model.name] = yield(model.unscoped)
12
12
  end
13
13
  end
14
14
 
15
15
  def resource(key, resource)
16
- Thread.current[:security_policy_holder].resources[key] = resource
16
+ RequestStore.store[:security_policy_holder].resources[key] = resource
17
17
  end
18
18
  end
19
19
  end
@@ -7,7 +7,7 @@ module BreakDance
7
7
  scope = super(options)
8
8
  return ActiveRecord::Relation.new(self, Arel::Table.new(table_name)) unless scope
9
9
 
10
- sph = Thread.current[:security_policy_holder]
10
+ sph = RequestStore.store[:security_policy_holder]
11
11
  if sph
12
12
  if sph.suppress_security_for == self.name
13
13
  sph.suppress_security_for = nil
@@ -21,7 +21,7 @@ module BreakDance
21
21
  end
22
22
 
23
23
  def unsecured
24
- Thread.current[:security_policy_holder].suppress_security_for = self.name
24
+ RequestStore.store[:security_policy_holder].suppress_security_for = self.name
25
25
  scoped
26
26
  end
27
27
  end
@@ -1,3 +1,3 @@
1
1
  module BreakDance
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/break_dance.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'request_store'
2
+
1
3
  require 'break_dance/controller_additions'
2
4
  require 'break_dance/exceptions'
3
5
  require 'break_dance/security_policy_additions'
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: break_dance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zlatko Zahariev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-11 00:00:00.000000000 Z
11
+ date: 2014-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: request_store
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement