shopify_app 16.1.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +10 -6
- data/README.md +15 -12
- data/app/controllers/shopify_app/callback_controller.rb +0 -6
- data/app/controllers/shopify_app/sessions_controller.rb +1 -15
- data/config/locales/de.yml +11 -11
- data/config/locales/vi.yml +22 -0
- data/config/locales/zh-CN.yml +1 -1
- data/lib/shopify_app/controller_concerns/itp.rb +0 -2
- data/lib/shopify_app/controller_concerns/login_protection.rb +1 -13
- data/lib/shopify_app/version.rb +1 -1
- data/package.json +1 -1
- data/shopify_app.gemspec +1 -1
- data/translation.yml +1 -1
- metadata +9 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b4760b55b5a05f6879b992c7292f99c51a50b3c080215b74c789214ebc467b5c
         | 
| 4 | 
            +
              data.tar.gz: e67a45136ca74cbd6c3403f1e3a17577be621f0617a22c3f177f51e452dda369
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7f5978d3ee4bd6cb553b30b57a50233d0d983fb8715a0e6fb272dbe9d5fb91b8a90ca3d04d97221a45035bf7c66b6cadd6c897fee548c0998c6c9323d4a1ec92
         | 
| 7 | 
            +
              data.tar.gz: 62d60866c63e2b4ad3f70f1375fcfb3e7fda69edb4ef78a9e75cde872a909b5e8cc4ad764ec69225cbec3da42cd9a4556f6f473b863df3a403dfc7376e410af1
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,10 @@ | |
| 1 | 
            +
            Unreleased
         | 
| 2 | 
            +
            ----------
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            17.0.0 (January 13, 2021)
         | 
| 5 | 
            +
            ------
         | 
| 6 | 
            +
            * Rails 6.1 is not yet supported [#1134](https://github.com/Shopify/shopify_app/pull/1134)
         | 
| 7 | 
            +
             | 
| 1 8 | 
             
            16.1.0
         | 
| 2 9 | 
             
            ------
         | 
| 3 10 | 
             
            * Use Session Token auth strategy by default for new embedded apps [#1111](https://github.com/Shopify/shopify_app/pull/1111)
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,11 +1,11 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                shopify_app ( | 
| 4 | 
            +
                shopify_app (17.0.0)
         | 
| 5 5 | 
             
                  browser_sniffer (~> 1.2.2)
         | 
| 6 6 | 
             
                  jwt (~> 2.2.1)
         | 
| 7 7 | 
             
                  omniauth-shopify-oauth2 (~> 2.2.2)
         | 
| 8 | 
            -
                  rails (> 5.2.1)
         | 
| 8 | 
            +
                  rails (> 5.2.1, < 6.1)
         | 
| 9 9 | 
             
                  redirect_safely (~> 1.0)
         | 
| 10 10 | 
             
                  shopify_api (~> 9.1)
         | 
| 11 11 |  | 
| @@ -89,9 +89,11 @@ GEM | |
| 89 89 | 
             
                crass (1.0.6)
         | 
| 90 90 | 
             
                debug_inspector (0.0.3)
         | 
| 91 91 | 
             
                erubi (1.9.0)
         | 
| 92 | 
            -
                faraday (1. | 
| 92 | 
            +
                faraday (1.3.0)
         | 
| 93 | 
            +
                  faraday-net_http (~> 1.0)
         | 
| 93 94 | 
             
                  multipart-post (>= 1.2, < 3)
         | 
| 94 95 | 
             
                  ruby2_keywords
         | 
| 96 | 
            +
                faraday-net_http (1.0.1)
         | 
| 95 97 | 
             
                globalid (0.4.2)
         | 
| 96 98 | 
             
                  activesupport (>= 4.2.0)
         | 
| 97 99 | 
             
                graphql (1.11.6)
         | 
| @@ -113,15 +115,16 @@ GEM | |
| 113 115 | 
             
                method_source (0.9.2)
         | 
| 114 116 | 
             
                mimemagic (0.3.5)
         | 
| 115 117 | 
             
                mini_mime (1.0.2)
         | 
| 116 | 
            -
                mini_portile2 (2. | 
| 118 | 
            +
                mini_portile2 (2.5.0)
         | 
| 117 119 | 
             
                minitest (5.14.2)
         | 
| 118 120 | 
             
                mocha (1.11.2)
         | 
| 119 121 | 
             
                multi_json (1.15.0)
         | 
| 120 122 | 
             
                multi_xml (0.6.0)
         | 
| 121 123 | 
             
                multipart-post (2.1.1)
         | 
| 122 124 | 
             
                nio4r (2.5.4)
         | 
| 123 | 
            -
                nokogiri (1. | 
| 124 | 
            -
                  mini_portile2 (~> 2. | 
| 125 | 
            +
                nokogiri (1.11.1)
         | 
| 126 | 
            +
                  mini_portile2 (~> 2.5.0)
         | 
| 127 | 
            +
                  racc (~> 1.4)
         | 
| 125 128 | 
             
                oauth2 (1.4.4)
         | 
| 126 129 | 
             
                  faraday (>= 0.8, < 2.0)
         | 
| 127 130 | 
             
                  jwt (>= 1.0, < 3.0)
         | 
| @@ -149,6 +152,7 @@ GEM | |
| 149 152 | 
             
                  binding_of_caller (>= 0.7)
         | 
| 150 153 | 
             
                  pry (>= 0.9.11)
         | 
| 151 154 | 
             
                public_suffix (4.0.6)
         | 
| 155 | 
            +
                racc (1.5.2)
         | 
| 152 156 | 
             
                rack (2.2.3)
         | 
| 153 157 | 
             
                rack-test (1.1.0)
         | 
| 154 158 | 
             
                  rack (>= 1.0, < 3)
         | 
    
        data/README.md
    CHANGED
    
    | @@ -8,6 +8,8 @@ Shopify App | |
| 8 8 |  | 
| 9 9 | 
             
            Shopify Application Rails engine and generator
         | 
| 10 10 |  | 
| 11 | 
            +
            ### NOTE: Rails 6.1 or above is not yet supported due to the new `cookies_same_site_protection` setting.
         | 
| 12 | 
            +
             | 
| 11 13 | 
             
            #### NOTE: Versions 8.0.0 through 8.2.3 contained a CSRF vulnerability that was addressed in version 8.2.4. Please update to version 8.2.4 if you're using an old version.
         | 
| 12 14 |  | 
| 13 15 | 
             
            Table of Contents
         | 
| @@ -72,19 +74,11 @@ The latest version of shopify_app is compatible with Rails `>= 5`. Use version ` | |
| 72 74 | 
             
            Generators
         | 
| 73 75 | 
             
            ----------
         | 
| 74 76 |  | 
| 75 | 
            -
            ### Default Generator
         | 
| 76 | 
            -
             | 
| 77 | 
            -
            The default generator will run the `install`, `shop`, `authenticated_controller`, and `home_controller` generators. This is the recommended way to start a new app from scratch:
         | 
| 78 | 
            -
             | 
| 79 | 
            -
            ```sh
         | 
| 80 | 
            -
            $ rails generate shopify_app
         | 
| 81 | 
            -
            ```
         | 
| 82 | 
            -
             | 
| 83 | 
            -
            After running the generator, you will need to run `rails db:migrate` to add new tables to your database. You can start your app with `bundle exec rails server` and install your app by visiting `http://localhost` in your web browser.
         | 
| 84 | 
            -
             | 
| 85 77 | 
             
            ### API Keys
         | 
| 86 78 |  | 
| 87 | 
            -
             | 
| 79 | 
            +
            Before running the generators, you'll need to ensure your app can read the Shopify environment variables `SHOPIFY_API_KEY` and `SHOPIFY_API_SECRET`.
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            A common approach is to use the [dotenv-rails](https://github.com/bkeepers/dotenv) gem, along with an `.env` file in the following format:
         | 
| 88 82 |  | 
| 89 83 | 
             
            ```
         | 
| 90 84 | 
             
            SHOPIFY_API_KEY=your api key
         | 
| @@ -93,7 +87,16 @@ SHOPIFY_API_SECRET=your api secret | |
| 93 87 |  | 
| 94 88 | 
             
            These values can be found on the "App Setup" page in the [Shopify Partners Dashboard][dashboard]. If you are checking your code into a code repository, ensure your `.gitignore` prevents your `.env` file from being checked into any publicly accessible code.
         | 
| 95 89 |  | 
| 96 | 
            -
             | 
| 90 | 
            +
            ### Default Generator
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            The default generator will run the `install`, `shop`, `authenticated_controller`, and `home_controller` generators. This is the recommended way to start a new app from scratch:
         | 
| 93 | 
            +
             | 
| 94 | 
            +
            ```sh
         | 
| 95 | 
            +
            $ rails generate shopify_app
         | 
| 96 | 
            +
            ```
         | 
| 97 | 
            +
             | 
| 98 | 
            +
            After running the generator, you will need to run `rails db:migrate` to add new tables to your database. You can start your app with `bundle exec rails server` and install your app by visiting `http://localhost` in your web browser.
         | 
| 99 | 
            +
             | 
| 97 100 |  | 
| 98 101 | 
             
            ### Install Generator
         | 
| 99 102 |  | 
| @@ -30,16 +30,12 @@ module ShopifyApp | |
| 30 30 | 
             
                end
         | 
| 31 31 |  | 
| 32 32 | 
             
                def respond_with_user_token_flow
         | 
| 33 | 
            -
                  Rails.logger.debug("[ShopifyApp::CallbackController] Redirecting for user token...")
         | 
| 34 33 | 
             
                  redirect_to(login_url_with_optional_shop)
         | 
| 35 34 | 
             
                end
         | 
| 36 35 |  | 
| 37 36 | 
             
                def store_access_token_and_build_session
         | 
| 38 37 | 
             
                  if native_browser_request?
         | 
| 39 | 
            -
                    Rails.logger.debug("[ShopifyApp::CallbackController] Not a JWT request. Resetting session options...")
         | 
| 40 38 | 
             
                    reset_session_options
         | 
| 41 | 
            -
                  else
         | 
| 42 | 
            -
                    Rails.logger.debug("[ShopifyApp::CallbackController] JWT request detected. Setting shopify session...")
         | 
| 43 39 | 
             
                  end
         | 
| 44 40 | 
             
                  set_shopify_session
         | 
| 45 41 | 
             
                end
         | 
| @@ -62,10 +58,8 @@ module ShopifyApp | |
| 62 58 |  | 
| 63 59 | 
             
                def respond_with_error
         | 
| 64 60 | 
             
                  if jwt_request?
         | 
| 65 | 
            -
                    Rails.logger.debug("[ShopifyApp::CallbackController] Invalid JWT auth detected.")
         | 
| 66 61 | 
             
                    head(:unauthorized)
         | 
| 67 62 | 
             
                  else
         | 
| 68 | 
            -
                    Rails.logger.debug("[ShopifyApp::CallbackController] Invalid non JWT auth detected.")
         | 
| 69 63 | 
             
                    flash[:error] = I18n.t('could_not_log_in')
         | 
| 70 64 | 
             
                    redirect_to(login_url_with_optional_shop)
         | 
| 71 65 | 
             
                  end
         | 
| @@ -10,19 +10,14 @@ module ShopifyApp | |
| 10 10 | 
             
                end
         | 
| 11 11 |  | 
| 12 12 | 
             
                def new
         | 
| 13 | 
            -
                  if sanitized_shop_name.present?
         | 
| 14 | 
            -
                    Rails.logger.debug("[ShopifyApp::SessionsController] Sanitized shop name present. Authenticating...")
         | 
| 15 | 
            -
                    authenticate
         | 
| 16 | 
            -
                  end
         | 
| 13 | 
            +
                  authenticate if sanitized_shop_name.present?
         | 
| 17 14 | 
             
                end
         | 
| 18 15 |  | 
| 19 16 | 
             
                def create
         | 
| 20 | 
            -
                  Rails.logger.debug("[ShopifyApp::SessionsController] Authenticating...")
         | 
| 21 17 | 
             
                  authenticate
         | 
| 22 18 | 
             
                end
         | 
| 23 19 |  | 
| 24 20 | 
             
                def enable_cookies
         | 
| 25 | 
            -
                  Rails.logger.debug("[ShopifyApp::SessionsController] Enabling cookies...")
         | 
| 26 21 | 
             
                  return unless validate_shop_presence
         | 
| 27 22 |  | 
| 28 23 | 
             
                  render(:enable_cookies, layout: false, locals: {
         | 
| @@ -45,7 +40,6 @@ module ShopifyApp | |
| 45 40 | 
             
                end
         | 
| 46 41 |  | 
| 47 42 | 
             
                def granted_storage_access
         | 
| 48 | 
            -
                  Rails.logger.debug("[ShopifyApp::SessionsController] Granted storage access.")
         | 
| 49 43 | 
             
                  return unless validate_shop_presence
         | 
| 50 44 |  | 
| 51 45 | 
             
                  session['shopify.granted_storage_access'] = true
         | 
| @@ -56,7 +50,6 @@ module ShopifyApp | |
| 56 50 | 
             
                end
         | 
| 57 51 |  | 
| 58 52 | 
             
                def destroy
         | 
| 59 | 
            -
                  Rails.logger.debug("[ShopifyApp::SessionsController] Resetting session.")
         | 
| 60 53 | 
             
                  reset_session
         | 
| 61 54 | 
             
                  flash[:notice] = I18n.t('.logged_out')
         | 
| 62 55 | 
             
                  redirect_to(login_url_with_optional_shop)
         | 
| @@ -73,23 +66,18 @@ module ShopifyApp | |
| 73 66 | 
             
                  set_user_tokens_option
         | 
| 74 67 |  | 
| 75 68 | 
             
                  if user_agent_can_partition_cookies
         | 
| 76 | 
            -
                    Rails.logger.debug("[ShopifyApp::SessionsController] Authenticating with partitioning...")
         | 
| 77 69 | 
             
                    authenticate_with_partitioning
         | 
| 78 70 | 
             
                  else
         | 
| 79 | 
            -
                    Rails.logger.debug("[ShopifyApp::SessionsController] Authenticating normally...")
         | 
| 80 71 | 
             
                    authenticate_normally
         | 
| 81 72 | 
             
                  end
         | 
| 82 73 | 
             
                end
         | 
| 83 74 |  | 
| 84 75 | 
             
                def authenticate_normally
         | 
| 85 76 | 
             
                  if request_storage_access?
         | 
| 86 | 
            -
                    Rails.logger.debug("[ShopifyApp::SessionsController] Redirecting to request storage access...")
         | 
| 87 77 | 
             
                    redirect_to_request_storage_access
         | 
| 88 78 | 
             
                  elsif authenticate_in_context?
         | 
| 89 | 
            -
                    Rails.logger.debug("[ShopifyApp::SessionsController] Authenticating in context...")
         | 
| 90 79 | 
             
                    authenticate_in_context
         | 
| 91 80 | 
             
                  else
         | 
| 92 | 
            -
                    Rails.logger.debug("[ShopifyApp::SessionsController] Authenticating at top level...")
         | 
| 93 81 | 
             
                    authenticate_at_top_level
         | 
| 94 82 | 
             
                  end
         | 
| 95 83 | 
             
                end
         | 
| @@ -107,7 +95,6 @@ module ShopifyApp | |
| 107 95 | 
             
                # rubocop:disable Lint/SuppressedException
         | 
| 108 96 | 
             
                def set_user_tokens_option
         | 
| 109 97 | 
             
                  if shop_session.blank?
         | 
| 110 | 
            -
                    Rails.logger.debug("[ShopifyApp::SessionsController] Shop session is blank.")
         | 
| 111 98 | 
             
                    session[:user_tokens] = false
         | 
| 112 99 | 
             
                    return
         | 
| 113 100 | 
             
                  end
         | 
| @@ -130,7 +117,6 @@ module ShopifyApp | |
| 130 117 | 
             
                def validate_shop_presence
         | 
| 131 118 | 
             
                  @shop = sanitized_shop_name
         | 
| 132 119 | 
             
                  unless @shop
         | 
| 133 | 
            -
                    Rails.logger.debug("[ShopifyApp::SessionsController] Invalid shop detected.")
         | 
| 134 120 | 
             
                    render_invalid_shop_error
         | 
| 135 121 | 
             
                    return false
         | 
| 136 122 | 
             
                  end
         | 
    
        data/config/locales/de.yml
    CHANGED
    
    | @@ -4,19 +4,19 @@ de: | |
| 4 4 | 
             
              could_not_log_in: Shopify Store Login fehlgeschlagen
         | 
| 5 5 | 
             
              invalid_shop_url: Ungültige Shop-Domain
         | 
| 6 6 | 
             
              enable_cookies_heading: Cookies von %{app} aktivieren
         | 
| 7 | 
            -
              enable_cookies_body:  | 
| 8 | 
            -
                 | 
| 9 | 
            -
              enable_cookies_footer: Mithilfe von Cookies kann die App  | 
| 10 | 
            -
                 | 
| 11 | 
            -
                Sie laufen nach 30 Tagen ab.
         | 
| 7 | 
            +
              enable_cookies_body: Du musst Cookies in diesem Browser manuell aktivieren, um %{app}
         | 
| 8 | 
            +
                in Shopify verwenden zu können.
         | 
| 9 | 
            +
              enable_cookies_footer: Mithilfe von Cookies kann die App dich authentifizieren,
         | 
| 10 | 
            +
                indem deine Einstellungen und personenbezogenen Daten vorübergehend gespeichert
         | 
| 11 | 
            +
                werden. Sie laufen nach 30 Tagen ab.
         | 
| 12 12 | 
             
              enable_cookies_action: Cookies aktivieren
         | 
| 13 | 
            -
              top_level_interaction_heading:  | 
| 14 | 
            -
              top_level_interaction_body:  | 
| 15 | 
            -
                auf Cookies bitten, bevor Shopify sie für  | 
| 13 | 
            +
              top_level_interaction_heading: Dein Browser muss %{app} authentifizieren
         | 
| 14 | 
            +
              top_level_interaction_body: Dein Browser verlangt, dass Apps wie %{app} dich um
         | 
| 15 | 
            +
                Zugriff auf Cookies bitten, bevor Shopify sie für dich öffnen kann.
         | 
| 16 16 | 
             
              top_level_interaction_action: Weiter
         | 
| 17 17 | 
             
              request_storage_access_heading: "%{app} braucht Zugriff auf Cookies"
         | 
| 18 | 
            -
              request_storage_access_body: Damit kann die App  | 
| 19 | 
            -
                Einstellungen und personenbezogenen Daten vorübergehend gespeichert werden.  | 
| 20 | 
            -
                 | 
| 18 | 
            +
              request_storage_access_body: Damit kann die App dich authentifizieren, indem deine
         | 
| 19 | 
            +
                Einstellungen und personenbezogenen Daten vorübergehend gespeichert werden. Klicke
         | 
| 20 | 
            +
                auf "Weiter" und erlaube Cookies, um die App zu verwenden.
         | 
| 21 21 | 
             
              request_storage_access_footer: Cookies laufen nach 30 Tagen ab.
         | 
| 22 22 | 
             
              request_storage_access_action: Weiter
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            vi:
         | 
| 3 | 
            +
              logged_out: Đã đăng xuất thành công
         | 
| 4 | 
            +
              could_not_log_in: Không thể đăng nhập vào cửa hàng trên Shopify
         | 
| 5 | 
            +
              invalid_shop_url: Miền cửa hàng không hợp lệ
         | 
| 6 | 
            +
              enable_cookies_heading: Bật cookie từ %{app}
         | 
| 7 | 
            +
              enable_cookies_body: Bạn phải bật cookie trong trình duyệt này theo cách thủ công
         | 
| 8 | 
            +
                để sử dụng %{app} trong Shopify.
         | 
| 9 | 
            +
              enable_cookies_footer: Cookie cho phép ứng dụng xác thực bạn bằng cách tạm thời
         | 
| 10 | 
            +
                lưu trữ tùy chọn và thông tin cá nhân của bạn. Những thông tin này sẽ hết hạn
         | 
| 11 | 
            +
                sau 30 ngày.
         | 
| 12 | 
            +
              enable_cookies_action: Bật cookie
         | 
| 13 | 
            +
              top_level_interaction_heading: Trình duyệt của bạn cần xác thực %{app}
         | 
| 14 | 
            +
              top_level_interaction_body: Trình duyệt của bạn cần các ứng dụng như %{app} để yêu
         | 
| 15 | 
            +
                cầu quyền truy cập vào cookie thì Shopify mới có thể mở giúp bạn.
         | 
| 16 | 
            +
              top_level_interaction_action: Tiếp tục
         | 
| 17 | 
            +
              request_storage_access_heading: "%{app} cần quyền truy cập cookie"
         | 
| 18 | 
            +
              request_storage_access_body: Nhờ vậy, ứng dụng có thể xác thực bạn bằng cách tạm
         | 
| 19 | 
            +
                thời lưu trữ thông tin cá nhân của bạn. Nhấp vào tiếp tục và cho phép cookie sử
         | 
| 20 | 
            +
                dụng ứng dụng.
         | 
| 21 | 
            +
              request_storage_access_footer: Cookie sẽ hết hạn sau 30 ngày.
         | 
| 22 | 
            +
              request_storage_access_action: Tiếp tục
         | 
    
        data/config/locales/zh-CN.yml
    CHANGED
    
    | @@ -8,7 +8,7 @@ zh-CN: | |
| 8 8 | 
             
              enable_cookies_footer: Cookie 使此应用能够通过暂时存储您的偏好设置和个人信息来验证您的身份。这些信息将在 30 天后过期。
         | 
| 9 9 | 
             
              enable_cookies_action: 启用 Cookie
         | 
| 10 10 | 
             
              top_level_interaction_heading: 您的浏览器需要对 %{app} 进行验证
         | 
| 11 | 
            -
              top_level_interaction_body: 您的浏览器要求类似 %{app}  | 
| 11 | 
            +
              top_level_interaction_body: 您的浏览器要求类似 %{app} 的应用向您申请访问 Cookie,之后 Shopify 才能为您打开它。
         | 
| 12 12 | 
             
              top_level_interaction_action: 继续
         | 
| 13 13 | 
             
              request_storage_access_heading: "%{app} 需要访问 Cookie"
         | 
| 14 14 | 
             
              request_storage_access_body: 这使此应用能够通过暂时存储您的个人信息来验证您的身份。单击继续并启用 Cookie 以使用此应用。
         | 
| @@ -13,12 +13,10 @@ module ShopifyApp | |
| 13 13 | 
             
                end
         | 
| 14 14 |  | 
| 15 15 | 
             
                def set_top_level_oauth_cookie
         | 
| 16 | 
            -
                  Rails.logger.debug("[ShopifyApp::Itp] Setting top level oauth cookie...")
         | 
| 17 16 | 
             
                  session['shopify.top_level_oauth'] = true
         | 
| 18 17 | 
             
                end
         | 
| 19 18 |  | 
| 20 19 | 
             
                def clear_top_level_oauth_cookie
         | 
| 21 | 
            -
                  Rails.logger.debug("[ShopifyApp::Itp] Clearing top level oauth cookie...")
         | 
| 22 20 | 
             
                  session.delete('shopify.top_level_oauth')
         | 
| 23 21 | 
             
                end
         | 
| 24 22 |  | 
| @@ -18,24 +18,18 @@ module ShopifyApp | |
| 18 18 |  | 
| 19 19 | 
             
                def activate_shopify_session
         | 
| 20 20 | 
             
                  if user_session_expected? && user_session.blank?
         | 
| 21 | 
            -
                    Rails.logger.debug("[ShopifyApp::LoginProtection] User session required. Redirecting to login...")
         | 
| 22 21 | 
             
                    signal_access_token_required
         | 
| 23 22 | 
             
                    return redirect_to_login
         | 
| 24 23 | 
             
                  end
         | 
| 25 24 |  | 
| 26 | 
            -
                  if current_shopify_session.blank?
         | 
| 27 | 
            -
                    Rails.logger.debug("[ShopifyApp::LoginProtection] Current shopify session is blank. Redirecting to login...")
         | 
| 28 | 
            -
                    return redirect_to_login
         | 
| 29 | 
            -
                  end
         | 
| 25 | 
            +
                  return redirect_to_login if current_shopify_session.blank?
         | 
| 30 26 |  | 
| 31 27 | 
             
                  clear_top_level_oauth_cookie
         | 
| 32 28 |  | 
| 33 29 | 
             
                  begin
         | 
| 34 | 
            -
                    Rails.logger.debug("[ShopifyApp::LoginProtection] Activating session...")
         | 
| 35 30 | 
             
                    ShopifyAPI::Base.activate_session(current_shopify_session)
         | 
| 36 31 | 
             
                    yield
         | 
| 37 32 | 
             
                  ensure
         | 
| 38 | 
            -
                    Rails.logger.debug("[ShopifyApp::LoginProtection] Clearing session...")
         | 
| 39 33 | 
             
                    ShopifyAPI::Base.clear_session
         | 
| 40 34 | 
             
                  end
         | 
| 41 35 | 
             
                end
         | 
| @@ -80,12 +74,7 @@ module ShopifyApp | |
| 80 74 |  | 
| 81 75 | 
             
                def login_again_if_different_user_or_shop
         | 
| 82 76 | 
             
                  if session[:user_session].present? && params[:session].present? # session data was sent/stored correctly
         | 
| 83 | 
            -
                    Rails.logger.debug("[ShopifyApp::LoginProtection] Session data was sent/stored correctly.")
         | 
| 84 77 | 
             
                    clear_session = session[:user_session] != params[:session] # current user is different from stored user
         | 
| 85 | 
            -
                    if clear_session
         | 
| 86 | 
            -
                      Rails.logger.debug("[ShopifyApp::LoginProtection] Current user is different from stored user.")
         | 
| 87 | 
            -
                    end
         | 
| 88 | 
            -
                    clear_session
         | 
| 89 78 | 
             
                  end
         | 
| 90 79 |  | 
| 91 80 | 
             
                  if current_shopify_session &&
         | 
| @@ -95,7 +84,6 @@ module ShopifyApp | |
| 95 84 | 
             
                  end
         | 
| 96 85 |  | 
| 97 86 | 
             
                  if clear_session
         | 
| 98 | 
            -
                    Rails.logger.debug("[ShopifyApp::LoginProtection] Clearing shopify session and redirecting to login...")
         | 
| 99 87 | 
             
                    clear_shopify_session
         | 
| 100 88 | 
             
                    redirect_to_login
         | 
| 101 89 | 
             
                  end
         | 
    
        data/lib/shopify_app/version.rb
    CHANGED
    
    
    
        data/package.json
    CHANGED
    
    
    
        data/shopify_app.gemspec
    CHANGED
    
    | @@ -14,7 +14,7 @@ Gem::Specification.new do |s| | |
| 14 14 | 
             
              s.metadata['allowed_push_host'] = 'https://rubygems.org'
         | 
| 15 15 |  | 
| 16 16 | 
             
              s.add_runtime_dependency('browser_sniffer', '~> 1.2.2')
         | 
| 17 | 
            -
              s.add_runtime_dependency('rails', '> 5.2.1')
         | 
| 17 | 
            +
              s.add_runtime_dependency('rails', '> 5.2.1', '< 6.1')
         | 
| 18 18 | 
             
              s.add_runtime_dependency('shopify_api', '~> 9.1')
         | 
| 19 19 | 
             
              s.add_runtime_dependency('omniauth-shopify-oauth2', '~> 2.2.2')
         | 
| 20 20 | 
             
              s.add_runtime_dependency('jwt', '~> 2.2.1')
         | 
    
        data/translation.yml
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            source_language: en
         | 
| 2 | 
            -
            target_languages: [cs, da, de, es, fi, fr, hi, it, ja, ko, ms, nb, nl, pl, pt-BR, pt-PT, sv, th, tr, zh-CN, zh-TW]
         | 
| 2 | 
            +
            target_languages: [cs, da, de, es, fi, fr, hi, it, ja, ko, ms, nb, nl, pl, pt-BR, pt-PT, sv, th, tr, vi, zh-CN, zh-TW]
         | 
| 3 3 | 
             
            components:
         | 
| 4 4 | 
             
              - name: 'merchant'
         | 
| 5 5 | 
             
                paths:
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: shopify_app
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 17.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Shopify
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-01-14 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: browser_sniffer
         | 
| @@ -31,6 +31,9 @@ dependencies: | |
| 31 31 | 
             
                - - ">"
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 33 | 
             
                    version: 5.2.1
         | 
| 34 | 
            +
                - - "<"
         | 
| 35 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 36 | 
            +
                    version: '6.1'
         | 
| 34 37 | 
             
              type: :runtime
         | 
| 35 38 | 
             
              prerelease: false
         | 
| 36 39 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -38,6 +41,9 @@ dependencies: | |
| 38 41 | 
             
                - - ">"
         | 
| 39 42 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 43 | 
             
                    version: 5.2.1
         | 
| 44 | 
            +
                - - "<"
         | 
| 45 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 46 | 
            +
                    version: '6.1'
         | 
| 41 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 48 | 
             
              name: shopify_api
         | 
| 43 49 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -307,6 +313,7 @@ files: | |
| 307 313 | 
             
            - config/locales/sv.yml
         | 
| 308 314 | 
             
            - config/locales/th.yml
         | 
| 309 315 | 
             
            - config/locales/tr.yml
         | 
| 316 | 
            +
            - config/locales/vi.yml
         | 
| 310 317 | 
             
            - config/locales/zh-CN.yml
         | 
| 311 318 | 
             
            - config/locales/zh-TW.yml
         | 
| 312 319 | 
             
            - config/routes.rb
         |