declarative_authorization 0.5 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,4 @@
1
+ ** RELEASE 0.5.1 (Sep 12, 2010) **
1
2
 
2
3
  ** RELEASE 0.5 (July 21, 2010) **
3
4
 
@@ -1,4 +1,11 @@
1
1
  <% javascript_tag do %>
2
+ if (typeof Prototype != 'object') {
3
+ //load up prototype... it's needed here
4
+ var s = document.createElement('script');
5
+ s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js');
6
+ document.getElementsByTagName('body')[0].appendChild(s);
7
+ }
8
+
2
9
  function show_graph (privilege, context, user_ids) {
3
10
  var params = {
4
11
  privilege_hierarchy: 1,
@@ -3,6 +3,13 @@
3
3
  <p><%= navigation %></p>
4
4
 
5
5
  <% javascript_tag do %>
6
+ if (typeof Prototype != 'object') {
7
+ //load up prototype... it's needed here
8
+ var s = document.createElement('script');
9
+ s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js');
10
+ document.getElementsByTagName('body')[0].appendChild(s);
11
+ }
12
+
6
13
  function update_graph (form) {
7
14
  base_url = "<%= url_for :format => 'svg' %>";
8
15
  $('graph').data = base_url + '?' + form.serialize();
@@ -20,7 +20,7 @@ module Authorization
20
20
  # The exception is raised to ensure that the entire rule is invalidated.
21
21
  class NilAttributeValueError < AuthorizationError; end
22
22
 
23
- AUTH_DSL_FILES = [(Rails.root || Pathname.new('')).join("config", "authorization_rules.rb").to_s] unless defined? AUTH_DSL_FILES
23
+ AUTH_DSL_FILES = [Pathname.new(Rails.root || '').join("config", "authorization_rules.rb").to_s] unless defined? AUTH_DSL_FILES
24
24
 
25
25
  # Controller-independent method for retrieving the current user.
26
26
  # Needed for model security where the current controller is not available.
@@ -148,24 +148,38 @@ module Authorization
148
148
  end
149
149
  end
150
150
 
151
- # Test helper to test authorization rules. E.g.
151
+ # Test helper to test authorization rules.
152
152
  # with_user a_normal_user do
153
153
  # should_not_be_allowed_to :update, :conferences
154
154
  # should_not_be_allowed_to :read, an_unpublished_conference
155
155
  # should_be_allowed_to :read, a_published_conference
156
156
  # end
157
- def should_be_allowed_to (privilege, object_or_context)
157
+ #
158
+ # If the objects class name does not match the controller name, you can set the object and context manually
159
+ # should_be_allowed_to :create, :object => car, :context => :vehicles
160
+ #
161
+ # If you use specify the object and context manually, you can also specify the user manually, skipping the with_user block:
162
+ # should_be_allowed_to :create, :object => car, :context => :vehicles, :user => a_normal_user
163
+ def should_be_allowed_to (privilege, *args)
158
164
  options = {}
159
- options[object_or_context.is_a?(Symbol) ? :context : :object] = object_or_context
165
+ if(args.first.class == Hash)
166
+ options = args.extract_options!
167
+ else
168
+ options[args[0].is_a?(Symbol) ? :context : :object] = args[0]
169
+ end
160
170
  assert_nothing_raised do
161
171
  Authorization::Engine.instance.permit!(privilege, options)
162
172
  end
163
173
  end
164
174
 
165
175
  # See should_be_allowed_to
166
- def should_not_be_allowed_to (privilege, object_or_context)
176
+ def should_not_be_allowed_to (privilege, *args)
167
177
  options = {}
168
- options[object_or_context.is_a?(Symbol) ? :context : :object] = object_or_context
178
+ if(args.first.class == Hash)
179
+ options = args.extract_options!
180
+ else
181
+ options[args[0].is_a?(Symbol) ? :context : :object] = args[0]
182
+ end
169
183
  assert !Authorization::Engine.instance.permit?(privilege, options)
170
184
  end
171
185
 
metadata CHANGED
@@ -5,7 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 5
8
- version: "0.5"
8
+ - 1
9
+ version: 0.5.1
9
10
  platform: ruby
10
11
  authors:
11
12
  - Steffen Bartsch
@@ -13,23 +14,10 @@ autorequire:
13
14
  bindir: bin
14
15
  cert_chain: []
15
16
 
16
- date: 2010-07-21 00:00:00 +02:00
17
+ date: 2010-09-12 00:00:00 +02:00
17
18
  default_executable:
18
- dependencies:
19
- - !ruby/object:Gem::Dependency
20
- name: rails
21
- prerelease: false
22
- requirement: &id001 !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- segments:
27
- - 2
28
- - 1
29
- - 0
30
- version: 2.1.0
31
- type: :runtime
32
- version_requirements: *id001
19
+ dependencies: []
20
+
33
21
  description:
34
22
  email: sbartsch@tzi.org
35
23
  executables: []