Module: RoleFu::Ability

Extended by:
ActiveSupport::Concern
Defined in:
lib/role_fu/ability.rb

Instance Method Summary collapse

Instance Method Details

#role_fu_can?(action, _resource = nil) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/role_fu/ability.rb', line 7

def role_fu_can?(action, _resource = nil)
  role_fu_permissions.include?(action.to_s)
end

#role_fu_permissionsObject



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/role_fu/ability.rb', line 11

def role_fu_permissions
  return @_role_fu_permissions if defined?(@_role_fu_permissions) && @_role_fu_permissions

  permission_class = "Permission".safe_constantize
  return Set.new unless permission_class

  scope = roles
  scope = filter_expired(scope) if respond_to?(:filter_expired, true)

  @_role_fu_permissions = scope.joins(:permissions).pluck("permissions.action").map(&:to_s).to_set
end