role_based_authorization 0.1.10 → 0.1.11

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/README.rdoc CHANGED
@@ -1,10 +1,8 @@
1
1
  = RoleBasedAuthorization
2
2
 
3
3
 
4
- This library provide a very simple authorization system. It should work fine with
5
- most of the authentication plugins (and gems) out there, even though little testing
6
- has been done in this regard. There are a lot of similar plugin/gems and probably
7
- this is not better than any others (see http://steffenbartsch.com/blog/2008/08/rails-authorization-plugins/ for a nice review).
4
+ This library provide a very simple authorization system. It should work fine with most of the authentication plugins (and gems) out there, even though little testing has been done in this regard. There are a lot of similar plugin/gems and probably this is not better than any others (see http://steffenbartsch.com/blog/2008/08/rails-authorization-plugins/ for a nice review). I already used it in several small projects and it worked great
5
+ for my needs.
8
6
 
9
7
  Installation:
10
8
  * install the role_based_authorization by issuing:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.10
1
+ 0.1.11
@@ -111,7 +111,7 @@ module RoleBasedAuthorization
111
111
 
112
112
  # Returns true if one of the rules defined for this controller matches
113
113
  # the given options
114
- def exist_rule_matching_options? user, controllers, actions, ids
114
+ def exists_rule_matching_options? user, controllers, actions, ids
115
115
  rules = self.class.role_auth_rules
116
116
  AUTHORIZATION_LOGGER.debug("current set of rules: %s" % [rules.inspect])
117
117
 
@@ -168,7 +168,7 @@ module RoleBasedAuthorization
168
168
  action,
169
169
  ids.inspect])
170
170
 
171
- if exist_rule_matching_options?( user, [controller,'application'], [:all,action] , ids )
171
+ if exists_rule_matching_options?( user, [controller,'application'], [:all,action] , ids )
172
172
  AUTHORIZATION_LOGGER.info('returning true (access granted)')
173
173
  return true
174
174
  else
@@ -197,7 +197,7 @@ module RoleBasedAuthorization
197
197
  # if_authorized?( edit_item_path ) { |opts| link_to('yyy', opts) }
198
198
 
199
199
  def if_authorized? opts, &block
200
- cleanup_url_regexp = %r{(\Ahttps?://[^/]*(#{ActionController::Base.relative_url_root})?)}
200
+ cleanup_url_regexp = %r{(#{ActionController::Base.relative_url_root})?}
201
201
 
202
202
  url_options = nil
203
203
  if opts.class == String
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{role_based_authorization}
8
- s.version = "0.1.10"
8
+ s.version = "0.1.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Roberto Esposito"]
12
- s.date = %q{2010-02-16}
12
+ s.date = %q{2010-02-17}
13
13
  s.description = %q{Provides a simple DSL for specifying the authorization logic of your application. Install the gem, add a role attribute to your user model and your almost ready to go.}
14
14
  s.email = %q{boborbt@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -10,8 +10,11 @@ class DummyUser
10
10
  def role=(new_role) @role = new_role end
11
11
  end
12
12
 
13
- class DummyController < ActionController::Base
14
- include RoleBasedAuthorization
13
+ class ApplicationController < ActionController::Base
14
+ include RoleBasedAuthorization
15
+ end
16
+
17
+ class DummyController < ApplicationController
15
18
 
16
19
  def initialize() return @user = DummyUser.new end
17
20
  def logged_in?() return true end
@@ -101,9 +104,32 @@ class RoleBasedAuthorizationTest < ActiveSupport::TestCase
101
104
 
102
105
 
103
106
  test "helper method should work" do
107
+ got_inside = false
104
108
  @controller.if_authorized?(:action => 'very_low_security') {
105
- assert true
109
+ got_inside = true
106
110
  }
111
+
112
+ assert got_inside
113
+ end
114
+
115
+ test "helper_method should work with paths" do
116
+ got_inside = false
117
+ @controller.if_authorized?( '/dummy/very_low_security' ) do
118
+ got_inside = true
119
+ end
120
+
121
+ assert got_inside
122
+ end
123
+
124
+ test "helper_method should work with resource paths even when prefixed with the ActionController::Base.relative_url_root" do
125
+ ActionController::Base.relative_url_root = '/appname'
126
+
127
+ got_inside = false
128
+ @controller.if_authorized?( '/appname/dummy/very_low_security' ) do
129
+ got_inside = true
130
+ end
131
+
132
+ assert got_inside
107
133
  end
108
134
 
109
135
 
data/test/test_helper.rb CHANGED
@@ -1,9 +1,13 @@
1
1
  require 'rubygems'
2
2
  require 'active_support'
3
+ require 'action_controller'
3
4
  require 'active_support/test_case'
5
+ require 'test/unit'
4
6
 
5
- ENV['RAILS_ENV'] = 'test'
6
- ENV['RAILS_ROOT'] ||= File.dirname(__FILE__) + '/../../../..'
7
+ RAILS_ROOT='.'
8
+ AUTH_LOG_DIR = File.join(RAILS_ROOT,'log')
9
+ Dir.mkdir(AUTH_LOG_DIR) unless File.directory?(AUTH_LOG_DIR)
7
10
 
8
- require 'test/unit'
9
- require File.expand_path(File.join(ENV['RAILS_ROOT'], 'config/environment.rb'))
11
+ ActionController::Routing::Routes.draw do |map|
12
+ map.dummy_low_action '/dummy/very_low_security', :controller => :dummy, :action => :very_low_security
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: role_based_authorization
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Esposito
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-16 00:00:00 +01:00
12
+ date: 2010-02-17 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15