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