theme.rb 760 Bytes
require_dependency 'theme'

class Theme

  class << self
    def approved_themes(owner)
      Dir.glob(File.join(system_themes_dir, '*')).map do |item|
        next unless File.exists? File.join(item, 'theme.yml')
        id = File.basename item
        config = YAML.load_file File.join(item, 'theme.yml')

        approved = config['public']
        unless approved
          begin
            approved = owner.kind_of?(config['owner_type'].constantize)
          rescue
          end
          approved &&= config['owner_id'] == owner.id if config['owner_id'].present?
        end

        approved = false if id == 'cube-responsive'

        [id, config] if approved
      end.compact.map do |id, config|
        new id, config
      end
    end
  end
end