cjbottaro-aegis 1.3.0 → 1.3.1

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/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