Sha256: 3b543edf949974828d247502fd8d6a97a172d75a38a2e55d2bb3decba208a6e7

Contents?: true

Size: 1.68 KB

Versions: 1

Compression:

Stored size: 1.68 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] : :get

         url_to_authorize = remove_subdirectory(url)

         if authorized?(url_to_authorize, 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

          url_to_authorize = remove_subdirectory(url)

          if authorized?(url_to_authorize, 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

        
        def remove_subdirectory(url)
          subdir = Lockdown::System.fetch(:subdirectory)
          subdir ? url.gsub(/^\/?#{subdir}/,'') : url
        end

      end # View
    end # Rails
  end # Frameworks
end # Lockdown

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
revo-lockdown-1.6.2 lib/lockdown/frameworks/rails/view.rb