johnsbrn-has_permission 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 4
2
+ :patch: 5
3
3
  :major: 0
4
4
  :minor: 2
@@ -1,6 +1,9 @@
1
1
  require 'active_record'
2
2
  require 'active_record/has/permission'
3
+ require 'action_controller'
4
+ require 'action_controller/has/permission'
3
5
  require 'permission/base'
4
6
  require 'permission_exception'
5
7
 
6
- ActiveRecord::Base.send :include, ActiveRecord::Has::Permission
8
+ ActiveRecord::Base.send :include, ActiveRecord::Has::Permission
9
+ ActionController::Base.send :include, ActionController::Has::Permission
@@ -89,6 +89,29 @@ class HasPermissionTest < Test::Unit::TestCase
89
89
  end
90
90
  end
91
91
 
92
+ context "controller permission" do
93
+ setup do
94
+ @controller = ModelController.new
95
+ end
96
+
97
+ should "call access denied for index" do
98
+ @controller.expects(:access_denied).once
99
+ @controller.index
100
+ end
101
+
102
+ context "with options" do
103
+ setup do
104
+ @controller2 = Model2Controller.new
105
+ end
106
+
107
+ should "call no access for index" do
108
+ @controller2.expects(:no_access).once
109
+ @controller2.index
110
+ end
111
+
112
+ end
113
+ end
114
+
92
115
  should "use default namespace setting" do
93
116
  assert_equal Permission::ModelPermission, Model.permission_class
94
117
  end
data/test/test_helper.rb CHANGED
@@ -7,6 +7,7 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
7
7
  require 'has_permission'
8
8
 
9
9
  # this doesn't seem like the best way to do this - maybe someone will suggest a better method
10
+
10
11
  class Model
11
12
 
12
13
  include ActiveRecord::Has::Permission
@@ -49,12 +50,27 @@ class ModelB
49
50
  has_permission :namespace => ''
50
51
  end
51
52
 
52
- class ModelBPermission
53
+ class ModelBPermission < Permission::Base
54
+ def can_index?
55
+ false
56
+ end
57
+
58
+ def can_show?
59
+ true
60
+ end
53
61
  end
54
62
 
55
63
  module Permission
56
64
  class ModelPermission < Permission::Base
57
65
 
66
+ def can_index?
67
+ false
68
+ end
69
+
70
+ def can_show?
71
+ true
72
+ end
73
+
58
74
  def can_read?(attr_name)
59
75
  case attr_name
60
76
  when :read_access : true
@@ -85,5 +101,49 @@ module Permission
85
101
  end
86
102
  end
87
103
 
104
+ class ModelController
105
+ include ActionController::Has::Permission
106
+
107
+ def controller_name
108
+ "model"
109
+ end
110
+
111
+ def index
112
+ "index"
113
+ end
114
+
115
+ def show
116
+ "show"
117
+ end
118
+
119
+ def current_user
120
+ nil
121
+ end
122
+
123
+ requires_permission :index, :show
124
+ end
125
+
126
+ class Model2Controller
127
+ include ActionController::Has::Permission
128
+
129
+ def controller_name
130
+ "model"
131
+ end
132
+
133
+ def index
134
+ "index"
135
+ end
136
+
137
+ def show
138
+ "show"
139
+ end
140
+
141
+ def current_user
142
+ nil
143
+ end
144
+
145
+ requires_permission :index, :show, :access_denied => 'no_access', :class => ModelB
146
+ end
147
+
88
148
  class Test::Unit::TestCase
89
149
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: johnsbrn-has_permission
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Johnson
@@ -23,6 +23,9 @@ extra_rdoc_files: []
23
23
 
24
24
  files:
25
25
  - VERSION.yml
26
+ - lib/action_controller
27
+ - lib/action_controller/has
28
+ - lib/action_controller/has/permission.rb
26
29
  - lib/active_record
27
30
  - lib/active_record/has
28
31
  - lib/active_record/has/permission.rb