Sha256: 33c11d2b13cb5446966ce54c53894680b006ccc6204427c5465be4edbdcda602

Contents?: true

Size: 512 Bytes

Versions: 4

Compression:

Stored size: 512 Bytes

Contents

Spree::Role.class_eval do
  
  has_and_belongs_to_many :permissions, :join_table => 'spree_roles_permissions', :class_name => 'Spree::Permission'

  validates :name, :presence => true, :uniqueness => true

  def ability(current_ability, user)
    permissions.each do |permission|
      permission.ability(current_ability, user)
    end
  end

  def has_permission?(permission_title)
    permissions.pluck(:title).include?(permission_title)
  end

  scope :default_role, lambda { where(:is_default => true) } 
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
spree_admin_roles_and_access-1.3.0 app/models/spree/role_decorator.rb
spree_admin_roles_and_access-1.2.1 app/models/spree/role_decorator.rb
spree_admin_roles_and_access-1.2.0 app/models/spree/role_decorator.rb
spree_admin_roles_and_access-1.1.0 app/models/spree/role_decorator.rb