Sha256: 70481e36888a5f2142a50e8ad155810ba5b593fab8c6c9b6a730f436c41c332d

Contents?: true

Size: 1.26 KB

Versions: 25

Compression:

Stored size: 1.26 KB

Contents

module Lanes::Concerns

    module ExportJoinTables

        extend ActiveSupport::Concern

        included do
            class_attribute :exported_join_tables
        end

        module ClassMethods
            # Mark a joined table as safe to be included in a query
            # Primarily used for joining a model to a view for access to summarized data
            def export_join_tables( *tables )
                include ExportedLimitEvaluator
                self.exported_join_tables ||= []
                tables.flatten!
                options = tables.extract_options!
                tables.each do | join_name |
                    self.exported_join_tables << {
                        name: join_name,
                        limit: options[:limit]
                    }
                end

            end

            # Has the join been marked as safe?
            def has_exported_join_table?(name, user)
                return true if name == 'details' # "details" is reserved for views and is always allowed
                self.exported_join_tables && self.exported_join_tables.detect{ | join |
                    join[:name] == name && evaluate_export_limit( user, :join, join[:name], join[:limit] )
                }
            end

        end
    end

end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
lanes-0.8.3 lib/lanes/concerns/export_join_tables.rb
lanes-0.8.2 lib/lanes/concerns/export_join_tables.rb
lanes-0.8.1 lib/lanes/concerns/export_join_tables.rb
lanes-0.8.0 lib/lanes/concerns/export_join_tables.rb
lanes-0.7.0 lib/lanes/concerns/export_join_tables.rb
lanes-0.6.1 lib/lanes/concerns/export_join_tables.rb
lanes-0.6.0 lib/lanes/concerns/export_join_tables.rb
lanes-0.5.6 lib/lanes/concerns/export_join_tables.rb
lanes-0.5.5 lib/lanes/concerns/export_join_tables.rb
lanes-0.5.0 lib/lanes/concerns/export_join_tables.rb
lanes-0.4.0 lib/lanes/concerns/export_join_tables.rb
lanes-0.3.0 lib/lanes/concerns/export_join_tables.rb
lanes-0.1.9.5 lib/lanes/concerns/export_join_tables.rb
lanes-0.1.9 lib/lanes/concerns/export_join_tables.rb
lanes-0.1.8 lib/lanes/concerns/export_join_tables.rb
lanes-0.1.7 lib/lanes/concerns/export_join_tables.rb
lanes-0.1.6 lib/lanes/concerns/export_join_tables.rb
lanes-0.1.5 lib/lanes/concerns/export_join_tables.rb
lanes-0.1.2 lib/lanes/concerns/export_join_tables.rb
lanes-0.1.0 lib/lanes/concerns/export_join_tables.rb