rolify 3.3.0.rc1 → 3.3.0.rc2

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.
@@ -1,4 +1,4 @@
1
- Rolify.configure do |config|
1
+ Rolify.configure<%= "(\"#{role_cname.camelize.to_s}\")" if role_cname != "Role" %> do |config|
2
2
  # By default ORM adapter is ActiveRecord. uncomment to use mongoid
3
3
  <%= "# " if orm_adapter == "active_record" %>config.use_mongoid
4
4
 
@@ -3,7 +3,8 @@ module Rolify
3
3
  @@dynamic_shortcuts = false
4
4
  @@orm = "active_record"
5
5
 
6
- def configure
6
+ def configure(*role_cnames)
7
+ return if !sanity_check(role_cnames)
7
8
  yield self if block_given?
8
9
  end
9
10
 
@@ -37,5 +38,19 @@ module Rolify
37
38
  config.orm = "active_record"
38
39
  end
39
40
  end
41
+
42
+ private
43
+
44
+ def sanity_check(role_cnames)
45
+ role_cnames = [ "Role" ] if role_cnames.empty?
46
+ role_cnames.each do |role_cname|
47
+ role_class = role_cname.constantize
48
+ if role_class.superclass == ActiveRecord && !role_class.table_exists?
49
+ warn "[WARN] table '#{role_cname}' doesn't exist. Did you run the migration ? Ignoring rolify config."
50
+ return false
51
+ end
52
+ end
53
+ true
54
+ end
40
55
  end
41
56
  end
@@ -8,11 +8,16 @@ module Rolify
8
8
  def find_roles(role_name = nil, user = nil)
9
9
  roles = user && (user != :any) ? user.roles : self.role_class
10
10
  roles = roles.where(:resource_type => self.to_s)
11
- roles = roles.where(:name => role_name) if role_name && (role_name != :any)
11
+ roles = roles.where(:name => role_name.to_s) if role_name && (role_name != :any)
12
12
  roles
13
13
  end
14
14
 
15
15
  def with_role(role_name, user = nil)
16
+ if role_name.is_a? Array
17
+ role_name.map!(&:to_s)
18
+ else
19
+ role_name = role_name.to_s
20
+ end
16
21
  resources = self.adapter.resources_find(self.role_table_name, self, role_name)
17
22
  user ? self.adapter.in(resources, user, role_name) : resources
18
23
  end
data/lib/rolify/role.rb CHANGED
@@ -52,7 +52,7 @@ module Rolify
52
52
  end
53
53
 
54
54
  def remove_role(role_name, resource = nil)
55
- self.class.adapter.remove(self, role_name, resource)
55
+ self.class.adapter.remove(self, role_name.to_s, resource)
56
56
  end
57
57
 
58
58
  alias_method :revoke, :remove_role
@@ -84,4 +84,4 @@ module Rolify
84
84
  end
85
85
  end
86
86
  end
87
- end
87
+ end
@@ -1,3 +1,3 @@
1
1
  module Rolify
2
- VERSION = "3.3.0.rc1"
2
+ VERSION = "3.3.0.rc2"
3
3
  end
data/rolify.gemspec CHANGED
@@ -33,4 +33,5 @@ Gem::Specification.new do |s|
33
33
  s.add_development_dependency "rspec-rails", ">= 2.0"
34
34
  s.add_development_dependency "mongoid-rspec", ">= 1.5"
35
35
  s.add_development_dependency "bundler"
36
+ s.add_development_dependency "fuubar"
36
37
  end
@@ -74,7 +74,7 @@ describe Rolify::Generators::RoleGenerator do
74
74
  subject { file('config/initializers/rolify.rb') }
75
75
 
76
76
  it { should exist }
77
- it { should contain "Rolify.configure do |config|"}
77
+ it { should contain "Rolify.configure(\"AdminRole\") do |config|"}
78
78
  it { should contain "# config.use_dynamic_shortcuts" }
79
79
  it { should contain "# config.use_mongoid" }
80
80
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rolify
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0.rc1
4
+ version: 3.3.0.rc2
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-06 00:00:00.000000000 Z
12
+ date: 2013-02-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sqlite3
@@ -171,6 +171,22 @@ dependencies:
171
171
  - - ! '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: fuubar
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
174
190
  description: Very simple Roles library without any authorization enforcement supporting
175
191
  scope on resource objects (instance or class). Supports ActiveRecord and Mongoid
176
192
  ORMs.