break_dance 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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