cjbottaro-aegis 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.0
1
+ 1.3.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 = "1.3.0"
8
+ s.version = "1.3.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"]
12
- s.date = %q{2009-09-07}
12
+ s.date = %q{2009-09-08}
13
13
  s.description = %q{Aegis is a role-based permission system, where all users are given a role. It is possible to define detailed and complex permissions for each role very easily.}
14
14
  s.email = %q{github@makandra.de}
15
15
  s.extra_rdoc_files = [
@@ -127,7 +127,7 @@ module Aegis
127
127
 
128
128
  def role_forced
129
129
  aegis_forced_roles.each do |proc, role_name|
130
- return role_name if proc.call(self)
130
+ return ::Permissions.find_role_by_name!(role_name.to_sym) if proc.call(self)
131
131
  end
132
132
  nil
133
133
  end
@@ -137,8 +137,7 @@ module Aegis
137
137
  # Delegate may_...? and may_...! methods to the user's role.
138
138
  def method_missing_with_aegis_permissions(symb, *args)
139
139
  method_name = symb.to_s
140
- if method_name =~ /^may_(.+?)_in[\!\?]$/
141
- #method_name = method_name[0...-4] + method_name[-1, 1] # may_edit_post_in? => may_edit_post?
140
+ if method_name =~ /^may_(.+?)_(in|for)[\!\?]$/
142
141
  role_in(args.first).send(method_name, self, *args)
143
142
  elsif method_name =~ /^may_(.+?)[\!\?]$/
144
143
  role.send(symb, self, *args)
@@ -4,6 +4,7 @@ class Permissions < Aegis::Permissions
4
4
  role :guest
5
5
  role :student
6
6
  role :admin, :default_permission => :allow
7
+ role :superuser, :default_permission => :allow
7
8
 
8
9
  role :reader
9
10
  role :writer
@@ -64,11 +64,11 @@ class HasRoleTest < ActiveSupport::TestCase
64
64
  create_role_assignments
65
65
  user = users(:with_hierarchy)
66
66
  user.update_attribute(:is_admin, true)
67
- assert_equal "superuser", user.role
68
- assert_equal "superuser", user.role_in(accounts(:google))
69
- assert_equal "superuser", user.role_in(forums(:searching))
70
- assert_equal "superuser", user.role_in(posts(:searching101))
71
- assert_equal "superuser", user.role_in(posts(:searching102))
67
+ assert_equal :superuser, user.role.name
68
+ assert_equal :superuser, user.role_in(accounts(:google)).name
69
+ assert_equal :superuser, user.role_in(forums(:searching)).name
70
+ assert_equal :superuser, user.role_in(posts(:searching101)).name
71
+ assert_equal :superuser, user.role_in(posts(:searching102)).name
72
72
  end
73
73
 
74
74
  private
@@ -113,5 +113,11 @@ class PermissionsTest < ActiveSupport::TestCase
113
113
  assert_nothing_raised{ user.may_create_post_in?(forums(:searching)) }
114
114
  assert_raise(Aegis::PermissionError){ user.may_create_post_in?(posts(:searching101)) }
115
115
  end
116
+
117
+ def test_forced_role
118
+ user = users(:with_hierarchy)
119
+ user.update_attribute(:is_admin, true)
120
+ assert user.may_create_post_in?(forums(:searching))
121
+ end
116
122
 
117
123
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cjbottaro-aegis
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henning Koch
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-07 00:00:00 -07:00
12
+ date: 2009-09-08 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15