Sha256: 15e184e4f9dbbf7611cf897e3bad18bd2e27677999917d01490a5a97cd57231b

Contents?: true

Size: 1.41 KB

Versions: 2

Compression:

Stored size: 1.41 KB

Contents

module Lockdown
  module Frameworks
    module Rails
      module View
        def self.included(base)
          base.class_eval do
            alias_method :link_to_open, :link_to
            alias_method :link_to, :link_to_secured

            alias_method :button_to_open, :button_to
            alias_method :button_to, :button_to_secured
          end
        end

        def link_to_secured(name, options = {}, html_options = nil)
          url = url_for(options)

          method = html_options && html_options[:method] ? html_options[:method] : :get

          if authorized?(url, method)
            return link_to_open(name, url, html_options)
          end
          return ""
        end

        def button_to_secured(name, options = {}, html_options = nil)
          url = url_for(options)

          method = html_options ? html_options[:method] : :get

          if authorized?(url, method)
            return button_to_open(name, url, html_options)
          end
          return ""
        end

        def link_to_or_show(name, options = {}, html_options = nil)
          lnk = link_to(name, options, html_options)
          lnk.length == 0 ? name : lnk
        end

        def links(*lis)
          rvalue = []
          lis.each{|link| rvalue << link if link.length > 0 }
          rvalue.join( Lockdown::System.fetch(:link_separator) )
        end
      end # View
    end # Rails
  end # Frameworks
end # Lockdown

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lockdown-1.6.5 lib/lockdown/frameworks/rails/view.rb
lockdown-1.6.4 lib/lockdown/frameworks/rails/view.rb