effective_roles 1.0.1 → 1.0.2
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 +4 -4
- data/app/models/concerns/acts_as_role_restricted.rb +6 -3
- data/lib/effective_roles.rb +5 -0
- data/lib/effective_roles/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 411756a3ec04ce4e19ab11eee6446f9ca422f853
|
4
|
+
data.tar.gz: f1e95599e802a859d71e905f9776b24d5782389a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2bc8b3eec999f7a63d8c0b0bcea2121649e564209f794c206a40a617df0164b3404eeda37fa5a0b2a491084b4ab1ad343bd9cf174c8331214b9aaee0d2ed6e2f
|
7
|
+
data.tar.gz: b110ef8795df8e32c1b98e69f056902edb41b4aa2581ed846730fd6fcfd50769c7daeb854036f68ccf92100b5d5fea1fa1c295ddb70fe30c70158d28ba688987
|
@@ -74,11 +74,14 @@ module ActsAsRoleRestricted
|
|
74
74
|
roles.include?(role.try(:to_sym))
|
75
75
|
end
|
76
76
|
|
77
|
+
# Does self have permission to view obj?
|
77
78
|
def roles_match_with?(obj)
|
78
|
-
if
|
79
|
-
|
79
|
+
if obj.respond_to?(:is_role_restricted?)
|
80
|
+
obj.is_role_restricted? == false || (roles & obj.roles).any?
|
81
|
+
elsif Integer(obj) > 0
|
82
|
+
(roles & EffectiveRoles.roles_for_roles_mask(obj)).any?
|
80
83
|
else
|
81
|
-
|
84
|
+
raise 'unsupported object passed to roles_permit?(obj). Expecting an acts_as_role_restricted object or a roles_mask integer'
|
82
85
|
end
|
83
86
|
end
|
84
87
|
|
data/lib/effective_roles.rb
CHANGED
@@ -10,6 +10,11 @@ module EffectiveRoles
|
|
10
10
|
yield self
|
11
11
|
end
|
12
12
|
|
13
|
+
def self.roles_for_roles_mask(roles_mask)
|
14
|
+
roles_mask = Integer(roles_mask)
|
15
|
+
EffectiveRoles.roles.reject { |r| (roles_mask & 2**EffectiveRoles.roles.index(r)).zero? }
|
16
|
+
end
|
17
|
+
|
13
18
|
def self.roles_collection(obj = nil, user = nil)
|
14
19
|
raise ArgumentError.new('EffectiveRoles config.role_descriptions must be a Hash. The Array syntax is deprecated.') unless EffectiveRoles.role_descriptions.kind_of?(Hash)
|
15
20
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_roles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|