Sha256: 79fc951fe2493a9a337110531fc97a0c56dbb19e465a931ccf72ec5db9b9539b

Contents?: true

Size: 1.21 KB

Versions: 5

Compression:

Stored size: 1.21 KB

Contents

class Cms::Fortress::Role < ActiveRecord::Base
  # set_table_name :cms_fortress_roles
  self.table_name = "cms_fortress_roles"
  # attr_accessible :description, :name
  has_many :users
  has_many :role_details
  accepts_nested_attributes_for :role_details, allow_destroy: true

  def load_defaults
    # load user custom roles
    if File.exist?(file = File.join(Rails.root, "config", "roles.yml"))
      load_from_file(file)
    end

    file = File.expand_path(File.join(File.dirname(__FILE__), "../../../../", "config", "roles.yml"))
    load_from_file(file)
  end

  private

  def load_from_file(file)
    data = YAML.load_file(file)
    data.each do |k,v|
      role_details.build(
        :name => k.humanize,
        :command => k,
        :can_create => false,
        :can_update => false,
        :can_delete => false,
        :can_view => true
      ) unless role_details.map(&:command).include?(k)

      v.each do |m|
        role_details.build(
          :name => m.humanize,
          :command => "#{k}.#{m}",
          :can_create => true,
          :can_update => true,
          :can_delete => true,
          :can_view => true
        ) unless role_details.map(&:command).include?("#{k}.#{m}")
      end
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cms-fortress-1.1.1 app/models/cms/fortress/role.rb
cms-fortress-1.1.0 app/models/cms/fortress/role.rb
cms-fortress-1.0.12 app/models/cms/fortress/role.rb
cms-fortress-1.0.9 app/models/cms/fortress/role.rb
cms-fortress-1.0.8 app/models/cms/fortress/role.rb