Sha256: cf6c821be23f2802ebf8d3830a7f6a05dd475731381e026ca406817340605916
Contents?: true
Size: 943 Bytes
Versions: 1
Compression:
Stored size: 943 Bytes
Contents
require 'active_record' require 'active_support/core_ext' Eucalypt.glob('app', '{policies}', '*.rb') do |file| policy_name = File.basename file, '.rb' policy_constant = policy_name.camelize.constantize resource_name = policy_name.gsub '_policy', '' roles_name = "#{resource_name}_roles" role_constant_name = roles_name.singularize.camelize role_constant = role_constant_name.constantize if ActiveRecord::Base.connection.table_exists? roles_name level = ActiveRecord::Base.logger.level begin ActiveRecord::Base.logger.level = :unknown role_constant.pluck(:permission).each do |permission| policy_constant.define_method "#{permission}?" do role_constant.find_by(permission: permission).send(user.role.send resource_name) end end rescue => exception throw exception ensure ActiveRecord::Base.logger.level = level end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
eucalypt-0.8.0 | lib/eucalypt/security/permissions.rb |