Sha256: 177f6aee8a1f4e52c84ce35ebc823ee1bc4b69d01933021638adce6ef44dfa6f

Contents?: true

Size: 881 Bytes

Versions: 20

Compression:

Stored size: 881 Bytes

Contents

class SpudRole < ActiveRecord::Base

  has_many :spud_role_permissions, :dependent => :destroy
  has_many :users, :class_name => 'SpudUser'

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

  def permissions
    self.spud_role_permissions.collect(&:permission).reject(&:blank?)
  end

  def permissions=(permissions_list)
    self.permission_tags = permissions_list.collect(&:tag)
  end

  def permission_tags=(tags)
    self.spud_role_permissions.each do |role_permission|
      if role_permission.permission.nil? || !tags.include?(role_permission.permission.tag)
        role_permission.destroy()
      else
        tags.delete(role_permission.permission.tag)
      end
    end
    self.spud_role_permissions += tags.collect{ |tag| SpudRolePermission.new(:spud_permission_tag => tag) }
  end

  def permission_tags
    return self.permissions.collect(&:tag)
  end

end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
tb_core-1.3.10 app/models/spud_role.rb
tb_core-1.3.9 app/models/spud_role.rb
tb_core-1.3.7 app/models/spud_role.rb
tb_core-1.3.6 app/models/spud_role.rb
tb_core-1.3.5 app/models/spud_role.rb
tb_core-1.3.4 app/models/spud_role.rb
tb_core-1.3.3 app/models/spud_role.rb
tb_core-1.3.2 app/models/spud_role.rb
tb_core-1.3.1 app/models/spud_role.rb
tb_core-1.3.0 app/models/spud_role.rb
tb_core-1.3.0.beta2 app/models/spud_role.rb
tb_core-1.3.0.beta1 app/models/spud_role.rb
tb_core-1.2.8 app/models/spud_role.rb
tb_core-1.2.7 app/models/spud_role.rb
tb_core-1.2.6 app/models/spud_role.rb
tb_core-1.2.4 app/models/spud_role.rb
tb_core-1.2.3 app/models/spud_role.rb
tb_core-1.2.2 app/models/spud_role.rb
tb_core-1.2.1 app/models/spud_role.rb
tb_core-1.2.0 app/models/spud_role.rb