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