aegis 2.5.0 → 2.5.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/Gemfile +7 -0
- data/Gemfile.lock +48 -0
- data/VERSION +1 -1
- data/aegis.gemspec +4 -4
- data/lib/aegis/controller.rb +1 -1
- data/lib/aegis/permissions.rb +2 -2
- data/spec/aegis/controller_spec.rb +6 -6
- data/spec/aegis/permissions_spec.rb +8 -1
- data/spec/app_root/app/controllers/application_controller.rb +1 -1
- data/spec/app_root/app/models/permissions.rb +2 -4
- data/spec/spec_helper.rb +1 -1
- metadata +6 -6
- data/spec/app_root/app/controllers/songs_controller.rb +0 -8
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
aegis (2.5.0)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
actionmailer (2.3.8)
|
10
|
+
actionpack (= 2.3.8)
|
11
|
+
actionpack (2.3.8)
|
12
|
+
activesupport (= 2.3.8)
|
13
|
+
rack (~> 1.1.0)
|
14
|
+
activerecord (2.3.8)
|
15
|
+
activesupport (= 2.3.8)
|
16
|
+
activeresource (2.3.8)
|
17
|
+
activesupport (= 2.3.8)
|
18
|
+
activesupport (2.3.8)
|
19
|
+
columnize (0.3.1)
|
20
|
+
linecache (0.43)
|
21
|
+
rack (1.1.0)
|
22
|
+
rails (2.3.8)
|
23
|
+
actionmailer (= 2.3.8)
|
24
|
+
actionpack (= 2.3.8)
|
25
|
+
activerecord (= 2.3.8)
|
26
|
+
activeresource (= 2.3.8)
|
27
|
+
activesupport (= 2.3.8)
|
28
|
+
rake (>= 0.8.3)
|
29
|
+
rake (0.8.7)
|
30
|
+
rspec (1.2.9)
|
31
|
+
rspec-rails (1.2.9)
|
32
|
+
rack (>= 1.0.0)
|
33
|
+
rspec (>= 1.2.9)
|
34
|
+
ruby-debug (0.10.3)
|
35
|
+
columnize (>= 0.1)
|
36
|
+
ruby-debug-base (~> 0.10.3.0)
|
37
|
+
ruby-debug-base (0.10.3)
|
38
|
+
linecache (>= 0.3)
|
39
|
+
|
40
|
+
PLATFORMS
|
41
|
+
ruby
|
42
|
+
|
43
|
+
DEPENDENCIES
|
44
|
+
aegis!
|
45
|
+
rails (= 2.3.8)
|
46
|
+
rspec (= 1.2.9)
|
47
|
+
rspec-rails (= 1.2.9)
|
48
|
+
ruby-debug
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.5.
|
1
|
+
2.5.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 = "2.5.
|
8
|
+
s.version = "2.5.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", "Tobias Kraze"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-11-02}
|
13
13
|
s.description = %q{Aegis is an authorization solution for Ruby on Rails that supports roles and a RESTish, resource-style declaration of permission rules.}
|
14
14
|
s.email = %q{henning.koch@makandra.de}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -17,6 +17,8 @@ Gem::Specification.new do |s|
|
|
17
17
|
]
|
18
18
|
s.files = [
|
19
19
|
".gitignore",
|
20
|
+
"Gemfile",
|
21
|
+
"Gemfile.lock",
|
20
22
|
"MIT-LICENSE",
|
21
23
|
"README.rdoc",
|
22
24
|
"Rakefile",
|
@@ -45,7 +47,6 @@ Gem::Specification.new do |s|
|
|
45
47
|
"spec/aegis/spec/matchers_spec.rb",
|
46
48
|
"spec/app_root/app/controllers/application_controller.rb",
|
47
49
|
"spec/app_root/app/controllers/reviews_controller.rb",
|
48
|
-
"spec/app_root/app/controllers/songs_controller.rb",
|
49
50
|
"spec/app_root/app/models/permissions.rb",
|
50
51
|
"spec/app_root/app/models/property.rb",
|
51
52
|
"spec/app_root/app/models/review.rb",
|
@@ -82,7 +83,6 @@ Also see http://wiki.github.com/makandra/aegis/controller-integration
|
|
82
83
|
s.test_files = [
|
83
84
|
"spec/app_root/app/controllers/application_controller.rb",
|
84
85
|
"spec/app_root/app/controllers/reviews_controller.rb",
|
85
|
-
"spec/app_root/app/controllers/songs_controller.rb",
|
86
86
|
"spec/app_root/app/models/permissions.rb",
|
87
87
|
"spec/app_root/app/models/property.rb",
|
88
88
|
"spec/app_root/app/models/review.rb",
|
data/lib/aegis/controller.rb
CHANGED
@@ -47,7 +47,7 @@ module Aegis
|
|
47
47
|
actions_map
|
48
48
|
)
|
49
49
|
args = []
|
50
|
-
args << send(user_method)
|
50
|
+
args << permissions.call.send(:handle_missing_user, send(user_method))
|
51
51
|
args << send(parent_object_method) if action.takes_parent_object
|
52
52
|
args << send(object_method) if action.takes_object
|
53
53
|
action.may!(*args)
|
data/lib/aegis/permissions.rb
CHANGED
@@ -12,9 +12,9 @@ module Aegis
|
|
12
12
|
@missing_action_strategy = strategy
|
13
13
|
end
|
14
14
|
|
15
|
-
def missing_user_means(&
|
15
|
+
def missing_user_means(strategy_symbol = nil, &strategy_block)
|
16
16
|
prepare
|
17
|
-
@missing_user_strategy =
|
17
|
+
@missing_user_strategy = strategy_symbol || strategy_block
|
18
18
|
end
|
19
19
|
|
20
20
|
def alias_action(aliases)
|
@@ -69,9 +69,9 @@ describe Aegis::Controller do
|
|
69
69
|
end
|
70
70
|
controller = @controller_class.new
|
71
71
|
permissions_class.stub(:guess_action => stub('action', :takes_object => true, :takes_parent_object => true).as_null_object)
|
72
|
-
controller.should_receive(:object)
|
73
|
-
controller.should_receive(:parent_object)
|
74
|
-
controller.should_receive(:current_user)
|
72
|
+
controller.should_receive(:object).and_return('the object')
|
73
|
+
controller.should_receive(:parent_object).and_return('the parent object')
|
74
|
+
controller.should_receive(:current_user).and_return('the user')
|
75
75
|
controller.send(:check_permissions)
|
76
76
|
end
|
77
77
|
|
@@ -82,9 +82,9 @@ describe Aegis::Controller do
|
|
82
82
|
end
|
83
83
|
controller = @controller_class.new
|
84
84
|
permissions_class.stub(:guess_action => stub('action', :takes_object => true, :takes_parent_object => true).as_null_object)
|
85
|
-
controller.should_receive(:my_object)
|
86
|
-
controller.should_receive(:my_parent)
|
87
|
-
controller.should_receive(:my_user)
|
85
|
+
controller.should_receive(:my_object).and_return('the object')
|
86
|
+
controller.should_receive(:my_parent).and_return('the parent object')
|
87
|
+
controller.should_receive(:my_user).and_return('the user')
|
88
88
|
controller.send(:check_permissions)
|
89
89
|
end
|
90
90
|
|
@@ -579,7 +579,14 @@ describe Aegis::Permissions do
|
|
579
579
|
|
580
580
|
describe 'behavior when checking permissions without a user' do
|
581
581
|
|
582
|
-
it "should raise an error if
|
582
|
+
it "should raise an error if no missing user strategy is defined" do
|
583
|
+
expect { @permissions.may?(nil, :some_action) }.to raise_error(Aegis::MissingUser)
|
584
|
+
end
|
585
|
+
|
586
|
+
it 'should raise an error if the missing user strategy is :error' do
|
587
|
+
@permissions.class_eval do
|
588
|
+
missing_user_means :error
|
589
|
+
end
|
583
590
|
expect { @permissions.may?(nil, :some_action) }.to raise_error(Aegis::MissingUser)
|
584
591
|
end
|
585
592
|
|
@@ -2,6 +2,8 @@ class Permissions < Aegis::Permissions
|
|
2
2
|
|
3
3
|
role :user
|
4
4
|
|
5
|
+
missing_user_means { User.new(:role_name => 'user') }
|
6
|
+
|
5
7
|
resources :properties do
|
6
8
|
resources :reviews do
|
7
9
|
reading do
|
@@ -10,9 +12,5 @@ class Permissions < Aegis::Permissions
|
|
10
12
|
end
|
11
13
|
end
|
12
14
|
|
13
|
-
resources :maps do
|
14
|
-
action :with_permission, :collection => true
|
15
|
-
end
|
16
|
-
|
17
15
|
end
|
18
16
|
|
data/spec/spec_helper.rb
CHANGED
@@ -5,7 +5,7 @@ ENV['RAILS_ENV'] ||= 'in_memory'
|
|
5
5
|
|
6
6
|
# Load the Rails environment and testing framework
|
7
7
|
require "#{File.dirname(__FILE__)}/app_root/config/environment"
|
8
|
-
require "#{File.dirname(__FILE__)}/../lib/aegis"
|
8
|
+
# require "#{File.dirname(__FILE__)}/../lib/aegis"
|
9
9
|
require 'spec/rails'
|
10
10
|
|
11
11
|
# Undo changes to RAILS_ENV
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aegis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 2.5.
|
9
|
+
- 1
|
10
|
+
version: 2.5.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Henning Koch
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-11-02 00:00:00 +01:00
|
20
20
|
default_executable:
|
21
21
|
dependencies: []
|
22
22
|
|
@@ -30,6 +30,8 @@ extra_rdoc_files:
|
|
30
30
|
- README.rdoc
|
31
31
|
files:
|
32
32
|
- .gitignore
|
33
|
+
- Gemfile
|
34
|
+
- Gemfile.lock
|
33
35
|
- MIT-LICENSE
|
34
36
|
- README.rdoc
|
35
37
|
- Rakefile
|
@@ -58,7 +60,6 @@ files:
|
|
58
60
|
- spec/aegis/spec/matchers_spec.rb
|
59
61
|
- spec/app_root/app/controllers/application_controller.rb
|
60
62
|
- spec/app_root/app/controllers/reviews_controller.rb
|
61
|
-
- spec/app_root/app/controllers/songs_controller.rb
|
62
63
|
- spec/app_root/app/models/permissions.rb
|
63
64
|
- spec/app_root/app/models/property.rb
|
64
65
|
- spec/app_root/app/models/review.rb
|
@@ -123,7 +124,6 @@ summary: Complete authorization solution for Rails
|
|
123
124
|
test_files:
|
124
125
|
- spec/app_root/app/controllers/application_controller.rb
|
125
126
|
- spec/app_root/app/controllers/reviews_controller.rb
|
126
|
-
- spec/app_root/app/controllers/songs_controller.rb
|
127
127
|
- spec/app_root/app/models/permissions.rb
|
128
128
|
- spec/app_root/app/models/property.rb
|
129
129
|
- spec/app_root/app/models/review.rb
|