cjbottaro-aegis 1.3.0 → 1.3.1
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.
- data/VERSION +1 -1
- data/aegis.gemspec +2 -2
- data/lib/aegis/has_role.rb +2 -3
- data/test/app_root/app/models/permissions.rb +1 -0
- data/test/has_role_test.rb +5 -5
- data/test/permissions_test.rb +6 -0
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.
|
1
|
+
1.3.1
|
data/aegis.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{aegis}
|
8
|
-
s.version = "1.3.
|
8
|
+
s.version = "1.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Henning Koch"]
|
12
|
-
s.date = %q{2009-09-
|
12
|
+
s.date = %q{2009-09-08}
|
13
13
|
s.description = %q{Aegis is a role-based permission system, where all users are given a role. It is possible to define detailed and complex permissions for each role very easily.}
|
14
14
|
s.email = %q{github@makandra.de}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/aegis/has_role.rb
CHANGED
@@ -127,7 +127,7 @@ module Aegis
|
|
127
127
|
|
128
128
|
def role_forced
|
129
129
|
aegis_forced_roles.each do |proc, role_name|
|
130
|
-
return role_name if proc.call(self)
|
130
|
+
return ::Permissions.find_role_by_name!(role_name.to_sym) if proc.call(self)
|
131
131
|
end
|
132
132
|
nil
|
133
133
|
end
|
@@ -137,8 +137,7 @@ module Aegis
|
|
137
137
|
# Delegate may_...? and may_...! methods to the user's role.
|
138
138
|
def method_missing_with_aegis_permissions(symb, *args)
|
139
139
|
method_name = symb.to_s
|
140
|
-
if method_name =~ /^may_(.+?)
|
141
|
-
#method_name = method_name[0...-4] + method_name[-1, 1] # may_edit_post_in? => may_edit_post?
|
140
|
+
if method_name =~ /^may_(.+?)_(in|for)[\!\?]$/
|
142
141
|
role_in(args.first).send(method_name, self, *args)
|
143
142
|
elsif method_name =~ /^may_(.+?)[\!\?]$/
|
144
143
|
role.send(symb, self, *args)
|
data/test/has_role_test.rb
CHANGED
@@ -64,11 +64,11 @@ class HasRoleTest < ActiveSupport::TestCase
|
|
64
64
|
create_role_assignments
|
65
65
|
user = users(:with_hierarchy)
|
66
66
|
user.update_attribute(:is_admin, true)
|
67
|
-
assert_equal
|
68
|
-
assert_equal
|
69
|
-
assert_equal
|
70
|
-
assert_equal
|
71
|
-
assert_equal
|
67
|
+
assert_equal :superuser, user.role.name
|
68
|
+
assert_equal :superuser, user.role_in(accounts(:google)).name
|
69
|
+
assert_equal :superuser, user.role_in(forums(:searching)).name
|
70
|
+
assert_equal :superuser, user.role_in(posts(:searching101)).name
|
71
|
+
assert_equal :superuser, user.role_in(posts(:searching102)).name
|
72
72
|
end
|
73
73
|
|
74
74
|
private
|
data/test/permissions_test.rb
CHANGED
@@ -113,5 +113,11 @@ class PermissionsTest < ActiveSupport::TestCase
|
|
113
113
|
assert_nothing_raised{ user.may_create_post_in?(forums(:searching)) }
|
114
114
|
assert_raise(Aegis::PermissionError){ user.may_create_post_in?(posts(:searching101)) }
|
115
115
|
end
|
116
|
+
|
117
|
+
def test_forced_role
|
118
|
+
user = users(:with_hierarchy)
|
119
|
+
user.update_attribute(:is_admin, true)
|
120
|
+
assert user.may_create_post_in?(forums(:searching))
|
121
|
+
end
|
116
122
|
|
117
123
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cjbottaro-aegis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henning Koch
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-09-
|
12
|
+
date: 2009-09-08 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|