simple-authorisation 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,12 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple-authorisation (0.0.11)
4
+ simple-authorisation (0.0.12)
5
+ builder (~> 2.0)
5
6
  sinatra (~> 1.2.6)
6
7
 
7
8
  GEM
8
9
  remote: http://rubygems.org/
9
10
  specs:
11
+ builder (2.1.2)
10
12
  diff-lcs (1.1.2)
11
13
  rack (1.3.2)
12
14
  rack-test (0.6.0)
@@ -0,0 +1,22 @@
1
+ require 'builder'
2
+
3
+ module Simple
4
+ module AuthorisationHelper
5
+ def link (route, link_options)
6
+ user = send(options.authorisation_current_user)
7
+ link = Builder::XmlMarkup.new
8
+
9
+ if Simple::Authorisation.is_allowed?(route, :user => user,
10
+ :anonymous_user_class => options.authorisation_anonymous_user_class,
11
+ :method => :get)
12
+ main_link = lambda { link.a(:href => route) { |a| a << link_options[:text] }}
13
+ if link_options[:nest]
14
+ link.li {main_link.call}
15
+ else
16
+ main_link.call
17
+ end
18
+ end
19
+ link.target!
20
+ end
21
+ end
22
+ end
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'simple-authorisation'
6
- s.version = '0.0.11'
6
+ s.version = '0.0.12'
7
7
  s.authors = ["Derek Ekins"]
8
8
  s.description = 'Handles authorisation only'
9
9
  s.summary = "simple-authorisation-#{s.version}"
@@ -21,6 +21,7 @@ Thank you for installing simple-authorisation
21
21
  }
22
22
 
23
23
  s.add_dependency 'sinatra', '~> 1.2.6'
24
+ s.add_dependency 'builder', '~> 2.0'
24
25
 
25
26
  s.add_development_dependency 'rake', '>= 0.9.2'
26
27
  s.add_development_dependency 'rspec', '>= 2.6.0'
@@ -0,0 +1,55 @@
1
+ require 'simple-authorisation/authorisation'
2
+ require 'simple-authorisation/authorisation_helper'
3
+
4
+ module Simple
5
+ describe AuthorisationHelper do
6
+ before do
7
+ Simple::Authorisation.clear
8
+ @helper = Object.new
9
+ @helper.extend Simple::AuthorisationHelper
10
+
11
+ def @helper.options
12
+ options = Object.new
13
+ def options.authorisation_anonymous_user_class
14
+ NilClass
15
+ end
16
+
17
+ def options.authorisation_current_user
18
+ :current_user
19
+ end
20
+ options
21
+ end
22
+ end
23
+
24
+ it 'returns a link if you have permission to view it' do
25
+ def @helper.current_user
26
+ Object.new
27
+ end
28
+
29
+ Simple::Authorisation.get '/', :allow => ['*']
30
+
31
+ @helper.link('/', :text => 'Home').should == '<a href="/">Home</a>'
32
+ end
33
+
34
+
35
+ it 'returns a nested link if you have permission to view it' do
36
+ def @helper.current_user
37
+ Object.new
38
+ end
39
+
40
+ Simple::Authorisation.get '/', :allow => ['*']
41
+
42
+ @helper.link('/', :text => 'Home', :nest => true).should == '<li><a href="/">Home</a></li>'
43
+ end
44
+
45
+ it "does not return a link if you do not have permission to view it" do
46
+ def @helper.current_user
47
+ nil
48
+ end
49
+
50
+ Simple::Authorisation.get '/', :deny => ['?']
51
+
52
+ @helper.link('/', :text => 'Home').should == ''
53
+ end
54
+ end
55
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple-authorisation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-17 00:00:00.000000000Z
12
+ date: 2011-09-18 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
16
- requirement: &13545180 !ruby/object:Gem::Requirement
16
+ requirement: &16767200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: 1.2.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *13545180
24
+ version_requirements: *16767200
25
+ - !ruby/object:Gem::Dependency
26
+ name: builder
27
+ requirement: &16766600 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *16766600
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: rake
27
- requirement: &13544500 !ruby/object:Gem::Requirement
38
+ requirement: &16766040 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ! '>='
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: 0.9.2
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *13544500
46
+ version_requirements: *16766040
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: rspec
38
- requirement: &13543900 !ruby/object:Gem::Requirement
49
+ requirement: &16765440 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: 2.6.0
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *13543900
57
+ version_requirements: *16765440
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: sinatra
49
- requirement: &13543320 !ruby/object:Gem::Requirement
60
+ requirement: &16764860 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
@@ -54,10 +65,10 @@ dependencies:
54
65
  version: 1.2.6
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *13543320
68
+ version_requirements: *16764860
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: rack-test
60
- requirement: &13511080 !ruby/object:Gem::Requirement
71
+ requirement: &16764260 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ! '>='
@@ -65,7 +76,7 @@ dependencies:
65
76
  version: 0.6.0
66
77
  type: :development
67
78
  prerelease: false
68
- version_requirements: *13511080
79
+ version_requirements: *16764260
69
80
  description: Handles authorisation only
70
81
  email: derek@spathi.com
71
82
  executables: []
@@ -78,12 +89,14 @@ files:
78
89
  - Rakefile
79
90
  - lib/simple-authorisation.rb
80
91
  - lib/simple-authorisation/authorisation.rb
92
+ - lib/simple-authorisation/authorisation_helper.rb
81
93
  - lib/simple-authorisation/exact_route_rule_finder.rb
82
94
  - lib/simple-authorisation/no_rules_for_method.rb
83
95
  - lib/simple-authorisation/no_setting_for_route.rb
84
96
  - lib/simple-authorisation/route_rule_finder.rb
85
97
  - lib/simple-authorisation/sinatra.rb
86
98
  - simple-authorisation.gemspec
99
+ - spec/simple-authorisation/authorisation_helper_spec.rb
87
100
  - spec/simple-authorisation/authorisation_spec.rb
88
101
  - spec/simple-authorisation/sinatra_integration_spec.rb
89
102
  - spec/spec_helper.rb
@@ -121,8 +134,9 @@ rubyforge_project:
121
134
  rubygems_version: 1.8.6
122
135
  signing_key:
123
136
  specification_version: 3
124
- summary: simple-authorisation-0.0.11
137
+ summary: simple-authorisation-0.0.12
125
138
  test_files:
139
+ - spec/simple-authorisation/authorisation_helper_spec.rb
126
140
  - spec/simple-authorisation/authorisation_spec.rb
127
141
  - spec/simple-authorisation/sinatra_integration_spec.rb
128
142
  - spec/spec_helper.rb