module Fib::Additions::RailsControllerAddition
Public Instance Methods
can?(key, obj=nil)
click to toggle source
# File lib/fib/additions/rails_controller_addition.rb, line 16 def can? key, obj=nil key_element = permissions.find_key(key) key_element.present? && key_element.pass_condition?(current_user, obj) end
cannot?(key, obj=nil)
click to toggle source
# File lib/fib/additions/rails_controller_addition.rb, line 21 def cannot? key, obj=nil !can?(key, obj) end
Private Instance Methods
fib_action_validation()
click to toggle source
验证action权限
# File lib/fib/additions/rails_controller_addition.rb, line 41 def fib_action_validation controller = self.class.name action = self.action_name action_element = permissions.find_action(controller, action) unless action_element && action_element.pass_condition?(current_user, request) raise Fib::UnPassPermissionValidation end end
fib_include_validation()
click to toggle source
如果该请求访问未在权限系统中设置 通过并提示
# File lib/fib/additions/rails_controller_addition.rb, line 54 def fib_include_validation has_action = fib_container.permissions.find_action(self.class.name, self.action_name).present? has_url = fib_container.permissions.find_url(request.path).present? fib_action_validation if has_action fib_url_validation if has_url unless has_action || has_url # TODO 进行提示 策略待定 end end
fib_url_validation()
click to toggle source
验证url权限
# File lib/fib/additions/rails_controller_addition.rb, line 32 def fib_url_validation url_element = permissions.find_url(request.path) unless url_element && url_element.pass_condition?(current_user, request) raise Fib::UnPassPermissionValidation end end
handle_fib_permission_error()
click to toggle source
# File lib/fib/additions/rails_controller_addition.rb, line 27 def handle_fib_permission_error render status: 401, plain: "No permission" and return end