Sha256: 5af22047eb5aa1951764f798bbd8bd4c0511bf5816d6f75c1edbc606e805b503
Contents?: true
Size: 923 Bytes
Versions: 10
Compression:
Stored size: 923 Bytes
Contents
class SpudRole < ActiveRecord::Base attr_accessible :name, :permission_tags 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
10 entries across 10 versions & 1 rubygems