Sha256: e27dc2f66d51fbf8c3b76b04c53c1420f0e1d61478376aa2cb802e59fee3b71e

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

class Ability
  include CanCan::Ability

  def initialize(usuario)
    usuario ||= Usuario.new

    alias_action :index, :show, :query, :to => :read
    alias_action :new, :to => :create
    alias_action :edit, :to => :update
    alias_action :action, :to => :create_or_update
    # alias_action :destroy_selected, :to => :destroy

    if usuario.root?
      can :manage, :all
      # can :read, Teste
    else
      #Permissão global
      can :manage, Dashboard

      # #Permissão fixa
      # case usuario.papel.chave
      #   when "admin"
      # end

      #Permissão dinamica
      if usuario.papel
        usuario.papel.permissoes.each do |permissao|
          # if usuario.reference_id.present? && permissao.klass.constantize.attribute_method?(:reference_id)
            can permissao.abilities, permissao.klass.constantize, reference_id: usuario.reference_id
          # else
            # can permissao.abilities, permissao.klass.constantize
          # end
        end
      end
    end
    #Condições especificas de autorização
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
templus_models-1.3.4 test/dummy/app/models/ability.rb
templus_models-1.3.3 test/dummy/app/models/ability.rb