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
|
-
|
4
|
+
OGRjNWMwNWU4OTI5OTI1OTU5MGUxN2QzNGIxNWM1ZDhhNjY3MDNjZg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZDQzYWFlYTJiNTFjMTViNmMxMDFjMzM3Yjk0Y2U1N2EwNzE5ZTY0Nw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NWIyODhkOWRmYmU1YzdkOTVjZmVlZTNmM2ZmNzJlNjNkYTUzOTgwY2MyMTFl
|
10
|
+
NGNhODkzOWVhYzUxMDBlMDExYWU3ZTQ0ZmJmYzZlMGJlNzk1MDEwZTU0OGZk
|
11
|
+
M2E1OWUwMWNmZDE3NzZlY2E1MDM0NTllNzQzOWI1ODExNmJlMDI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
-
|
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
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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 =
|
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
|
-
|
24
|
+
RequestStore.store[:security_policy_holder].suppress_security_for = self.name
|
25
25
|
scoped
|
26
26
|
end
|
27
27
|
end
|
data/lib/break_dance/version.rb
CHANGED
data/lib/break_dance.rb
CHANGED
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.
|
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-
|
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
|