Sha256: 3473f31eb1d47dce5a86cc29c5834f4bde124d4695890d98f3240ea44490051f

Contents?: true

Size: 1.15 KB

Versions: 5

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module DuodealerApp
  # Cookie management helpers required for ITP implementation
  module Itp
    private
      def set_test_cookie
        return unless DuodealerApp.configuration.embedded_app?
        return unless user_agent_can_partition_cookies

        session["duodealer.cookies_persist"] = true
      end

      def set_top_level_oauth_cookie
        session["duodealer.top_level_oauth"] = true
      end

      def clear_top_level_oauth_cookie
        session.delete("duodealer.top_level_oauth")
      end

      def user_agent_is_mobile
        user_agent = BrowserSniffer.new(request.user_agent).browser_info

        user_agent[:name].to_s.match(/Duo\sDealer\sMobile/)
      end

      def user_agent_is_pos
        user_agent = BrowserSniffer.new(request.user_agent).browser_info

        user_agent[:name].to_s.match(/Duo\sDealer\sPOS/)
      end

      def user_agent_can_partition_cookies
        user_agent = BrowserSniffer.new(request.user_agent).browser_info

        is_safari = user_agent[:name].to_s.match(/Safari/)

        return false unless is_safari

        user_agent[:version].to_s.match(/12\.0/)
      end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
duodealer_app-1.0.4 lib/duodealer_app/controller_concerns/itp.rb
duodealer_app-1.0.3 lib/duodealer_app/controller_concerns/itp.rb
duodealer_app-1.0.2 lib/duodealer_app/controller_concerns/itp.rb
duodealer_app-1.0.1 lib/duodealer_app/controller_concerns/itp.rb
duodealer_app-1.0.0 lib/duodealer_app/controller_concerns/itp.rb