Sha256: affe234a129b45dd0dcb4530fa63768d2bacc2430f76fe20d5843c49d0f982a5

Contents?: true

Size: 854 Bytes

Versions: 2

Compression:

Stored size: 854 Bytes

Contents

module RailsAdminUserAbilities
  module Models
    module UserAbility
      extend ActiveSupport::Concern
      include RailsAdminUserAbilities.orm_specific('UserAbility')

      included do

        def to_cancancan(ability_object)
          abilities.each_pair do |model_name, rules|
            _model = model_name.constantize
            rules.each_pair do |act, meth|
              ability_object.send(meth, act.to_sym, _model)
            end
          end

          accesses.each_pair do |model_name, ids_rules|
            _model = model_name.constantize
            ids_rules.each_pair do |obj_id, rules|
              rules.each_pair do |act, meth|
                ability_object.send(meth, act.to_sym, _model, {id: BSON::ObjectId.from_string(obj_id)})
              end
            end
          end
        end

      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails_admin_user_abilities-0.1.0.1 lib/rails_admin_user_abilities/models/user_ability.rb
rails_admin_user_abilities-0.1.0 lib/rails_admin_user_abilities/models/user_ability.rb