flexible_accessibility 0.2.0.pre → 0.2.1.pre

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/Rakefile CHANGED
@@ -15,7 +15,7 @@ require 'jeweler'
15
15
  Jeweler::Tasks.new do |gem|
16
16
  # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
17
  gem.name = "flexible_accessibility"
18
- gem.version = "0.2.0.pre"
18
+ gem.version = "0.2.1.pre"
19
19
  gem.homepage = "http://github.com/mochnatiy/flexible_accessibility"
20
20
  gem.license = "MIT"
21
21
  gem.summary = %Q{Flexible access control system}
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "flexible_accessibility"
8
- s.version = "0.2.0.pre"
8
+ s.version = "0.2.1.pre"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Sergey Awanesov"]
12
- s.date = "2012-07-25"
12
+ s.date = "2012-07-26"
13
13
  s.description = "Flexible access control system for your rails application. Based on analysis of controller actions"
14
14
  s.email = "sergey.awanesov@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -1,17 +1,46 @@
1
1
  module FlexibleAccessibility
2
- class AccessDeniedException < StandardError
3
- attr_reader :action, :subject
4
- attr_writer :default_message
2
+ class FlexibleAccessibilityException < StandardError
3
+ attr_reader :action, :subject, :default_message
5
4
 
6
- def initialize(message = nil, action = nil, subject = nil)
7
- @message = message
5
+ def initialize(action = nil, subject = nil)
8
6
  @action = action
9
7
  @subject = subject
10
- @default_message = I18n.t('flexible_accessibility.errors.access_denied', :action => @action)
11
8
  end
12
9
 
13
10
  def to_s
14
- @message || @default_message
11
+ message || default_message
12
+ end
13
+
14
+ private
15
+ def message
16
+ nil
17
+ end
18
+
19
+ def default_message
20
+ "An exception is occured"
21
+ end
22
+ end
23
+
24
+
25
+ class AccessDeniedException < FlexibleAccessibilityException
26
+ private
27
+ def message
28
+ I18n.t 'flexible_accessibility.errors.access_denied', :action => @action
29
+ end
30
+
31
+ def default_message
32
+ "The acess for resoure #{@action} is denied"
15
33
  end
16
34
  end
35
+
36
+ class UserNotLoggedInException < FlexibleAccessibilityException
37
+ private
38
+ def message
39
+ I18n.t 'flexible_accessibility.errors.user_is_not_logged_in'
40
+ end
41
+
42
+ def default_message
43
+ "Current user is not logged in"
44
+ end
45
+ end
17
46
  end
@@ -7,7 +7,7 @@ module FlexibleAccessibility
7
7
  append_before_filter :check_if_route_permitted
8
8
  end
9
9
 
10
- private
10
+ private
11
11
  # Detect current controller and action and return a permission
12
12
  def current_resource
13
13
  # ActionController::Routing::Routes.recognize_path request.env["PATH_INFO"][:controller]
@@ -22,18 +22,21 @@ module FlexibleAccessibility
22
22
  def current_route
23
23
  "#{current_resource}##{current_action}"
24
24
  end
25
- # We checks access to route
26
- # And we expected the existing of current_user helper
27
- def check_permission_to_route
28
- if self.class.instance_variable_get(:@_checkable_routes).include? current_action.to_sym
29
- self.class.instance_variable_set :@_route_permitted, Permission.is_action_permitted_for_user?(current_route, current_user)
30
- end
31
- end
25
+ # We checks access to route
26
+ # And we expected the existing of current_user helper
27
+ def check_permission_to_route
28
+ if self.class.instance_variable_get(:@_checkable_routes).include? current_action.to_sym
29
+ raise UserNotLoggedInException.new(current_route, nil) if current_user.nil?
30
+ self.class.instance_variable_set :@_route_permitted, Permission.is_action_permitted_for_user?(current_route, current_user)
31
+ else
32
+ self.class.instance_variable_set :@_route_permitted, true
33
+ end
34
+ end
32
35
 
33
- # We checks @authorized variable state
34
- def check_if_route_permitted
35
- raise AccessDeniedException.new(nil, current_route, nil) unless self.class.instance_variable_get :@_route_permitted
36
- end
36
+ # We checks @authorized variable state
37
+ def check_if_route_permitted
38
+ raise AccessDeniedException.new(current_route, nil) unless self.class.instance_variable_get :@_route_permitted
39
+ end
37
40
  end
38
41
 
39
42
  ActiveSupport.on_load(:action_controller) do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flexible_accessibility
3
3
  version: !ruby/object:Gem::Version
4
- hash: 961915988
4
+ hash: 961915984
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 0
9
+ - 1
10
10
  - pre
11
- version: 0.2.0.pre
11
+ version: 0.2.1.pre
12
12
  platform: ruby
13
13
  authors:
14
14
  - Sergey Awanesov
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-07-25 00:00:00 Z
19
+ date: 2012-07-26 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  type: :development