camaleon_cms 2.8.3 → 2.9.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.
Potentially problematic release.
This version of camaleon_cms might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/controllers/camaleon_cms/admin/sessions_controller.rb +1 -1
- data/app/helpers/camaleon_cms/uploader_helper.rb +10 -3
- data/app/uploaders/camaleon_cms_aws_uploader.rb +8 -1
- data/app/views/camaleon_cms/admin/settings/_file_system_settings.html.erb +5 -5
- data/lib/camaleon_cms/version.rb +1 -1
- data/lib/plugin_routes.rb +2 -0
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 7bbfa67257bf8efd2830d5c4d20d1e00ce5db6293c145205326fc5c496a6ffd1
         | 
| 4 | 
            +
              data.tar.gz: 848c0feddb8c6dbe3be7d992d1b116c9b438006cea66af150468576e8096eb9c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1ff798ffbe98e5906feed579e437f3da2b8636f99b2d22f508afbcc6981c70752ea464ac21af2457f73e94087fe4d88ee863ce3fadaca956d7570422710eebb3
         | 
| 7 | 
            +
              data.tar.gz: 793bd8de6630499e71697966559066d74f38f1ccd225434fc2f4b101ce41fe1dbc62fbba94138bc57ca473a3abf9a9f48ecc820df1f0ec538b8ffed89b2268c4
         | 
| @@ -26,7 +26,7 @@ module CamaleonCms | |
| 26 26 | 
             
                    hooks_run('user_before_login', r)
         | 
| 27 27 | 
             
                    return if r[:stop_process] # permit to redirect for data completion
         | 
| 28 28 |  | 
| 29 | 
            -
                    if captcha_validate && @user | 
| 29 | 
            +
                    if captcha_validate && @user&.authenticate(data_user[:password])
         | 
| 30 30 | 
             
                      # Email validation if is necessary
         | 
| 31 31 | 
             
                      if @user.is_valid_email? || !current_site.need_validate_email?
         | 
| 32 32 | 
             
                        cama_captcha_reset_attack('login')
         | 
| @@ -2,16 +2,23 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            module CamaleonCms
         | 
| 4 4 | 
             
              module UploaderHelper
         | 
| 5 | 
            -
                 | 
| 5 | 
            +
                UNSAFE_EVENT_PATTERNS = %w[
         | 
| 6 | 
            +
                  onabort onafter onbefore onblur oncanplay onchange onclick oncontextmenu oncopy oncuechange oncut ondblclick
         | 
| 7 | 
            +
                  ondrag ondrop ondurationchange onended onerror onfocus onhashchange oninvalid oninput onkey onload onmessage
         | 
| 8 | 
            +
                  onmouse ononline onoffline onpagehide onpageshow onpage onpaste onpause onplay onpopstate onprogress
         | 
| 9 | 
            +
                  onpropertychange onratechange onreadystatechange onreset onresize onscroll onsearch onseek onselect onshow
         | 
| 10 | 
            +
                  onstalled onstorage onsuspend ontimeupdate ontoggle onunloadonsubmit onvolumechange onwaiting onwheel
         | 
| 11 | 
            +
                ].map { |pattern| /#{pattern}\w*\s*=/i }.freeze
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                SUSPICIOUS_PATTERNS = (UNSAFE_EVENT_PATTERNS + [
         | 
| 6 14 | 
             
                  /<script[\s>]/i,  # Script tags
         | 
| 7 | 
            -
                  /on\w{3,}\s*=/i,  # Inline event handlers like oncut, onload, onclick, etc.
         | 
| 8 15 | 
             
                  /javascript:/i,   # JavaScript in href/src attributes
         | 
| 9 16 | 
             
                  /<iframe[\s>]/i,  # Iframes
         | 
| 10 17 | 
             
                  /<object[\s>]/i,  # Object tags
         | 
| 11 18 | 
             
                  /<embed[\s>]/i,   # Embed tags
         | 
| 12 19 | 
             
                  /<base[\s>]/i,    # Base tags (can be used to manipulate URLs)
         | 
| 13 20 | 
             
                  /data:/i          # data: URLs (which can include scripts)
         | 
| 14 | 
            -
                ].freeze
         | 
| 21 | 
            +
                ]).freeze
         | 
| 15 22 |  | 
| 16 23 | 
             
                include ActionView::Helpers::NumberHelper
         | 
| 17 24 | 
             
                include CamaleonCms::CamaleonHelper
         | 
| @@ -5,6 +5,7 @@ class CamaleonCmsAwsUploader < CamaleonCmsUploader | |
| 5 5 | 
             
                @aws_akey = @aws_settings[:access_key] || @current_site.get_option('filesystem_s3_access_key')
         | 
| 6 6 | 
             
                @aws_asecret = @aws_settings[:secret_key] || @current_site.get_option('filesystem_s3_secret_key')
         | 
| 7 7 | 
             
                @aws_bucket = @aws_settings[:bucket] || @current_site.get_option('filesystem_s3_bucket_name')
         | 
| 8 | 
            +
                @aws_endpoint = @aws_settings[:endpoint] || @current_site.get_option('filesystem_s3_endpoint')
         | 
| 8 9 | 
             
                @aws_settings[:aws_file_upload_settings] ||= ->(settings) { settings }
         | 
| 9 10 | 
             
                @aws_settings[:aws_file_read_settings] ||= ->(data, _s3_file) { data }
         | 
| 10 11 | 
             
              end
         | 
| @@ -140,8 +141,14 @@ class CamaleonCmsAwsUploader < CamaleonCmsUploader | |
| 140 141 | 
             
              def bucket
         | 
| 141 142 | 
             
                @bucket ||= lambda {
         | 
| 142 143 | 
             
                  Aws.config.update({ region: @aws_region, credentials: Aws::Credentials.new(@aws_akey, @aws_asecret) })
         | 
| 143 | 
            -
                  s3 = Aws::S3::Resource.new
         | 
| 144 | 
            +
                  s3 = Aws::S3::Resource.new(resource_parameters)
         | 
| 144 145 | 
             
                  s3.bucket(@aws_bucket)
         | 
| 145 146 | 
             
                }.call
         | 
| 146 147 | 
             
              end
         | 
| 148 | 
            +
             | 
| 149 | 
            +
              def resource_parameters
         | 
| 150 | 
            +
                return {} if @aws_endpoint.blank?
         | 
| 151 | 
            +
             | 
| 152 | 
            +
                { endpoint: @aws_endpoint }
         | 
| 153 | 
            +
              end
         | 
| 147 154 | 
             
            end
         | 
| @@ -20,13 +20,13 @@ | |
| 20 20 | 
             
                        <%= label_tag t('camaleon_cms.admin.settings.filesystem_region', default: 'filesystem_region') %> <small>(*)</small><br>
         | 
| 21 21 | 
             
                        <%= text_field :options, :filesystem_region, :class => "form-control required", value: @site.get_option("filesystem_region"), placeholder: 'us-west-2' %>
         | 
| 22 22 | 
             
                    </div>
         | 
| 23 | 
            -
                     | 
| 24 | 
            -
                         | 
| 25 | 
            -
                         | 
| 26 | 
            -
                    </div | 
| 23 | 
            +
                    <div class="form-group">
         | 
| 24 | 
            +
                        <%= label_tag t('camaleon_cms.admin.settings.filesystem_s3_endpoint', default: 'filesystem_s3_endpoint') %><br>
         | 
| 25 | 
            +
                        <%= text_field :options, :filesystem_s3_endpoint, :class => "form-control required", value: @site.get_option("filesystem_s3_endpoint"), placeholder: 's3-us-west-2.amazonaws.com' %>
         | 
| 26 | 
            +
                    </div>
         | 
| 27 27 | 
             
                    <div class="form-group">
         | 
| 28 28 | 
             
                        <%= label_tag t('camaleon_cms.admin.settings.filesystem_s3_cloudfront', default: 'Cloudfront URL') %><br>
         | 
| 29 29 | 
             
                        <%= text_field :options, :filesystem_s3_cloudfront, :class => "form-control", value: @site.get_option("filesystem_s3_cloudfront"), placeholder: 'https://cloudfront_id.cloudfront.net' %>
         | 
| 30 30 | 
             
                    </div>
         | 
| 31 31 | 
             
                </div>
         | 
| 32 | 
            -
            </div>
         | 
| 32 | 
            +
            </div>
         | 
    
        data/lib/camaleon_cms/version.rb
    CHANGED
    
    
    
        data/lib/plugin_routes.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: camaleon_cms
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2. | 
| 4 | 
            +
              version: 2.9.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Owen Peredo Diaz
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2025-01-06 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: addressable
         | 
| @@ -1152,7 +1152,7 @@ requirements: | |
| 1152 1152 | 
             
            - rails >= 6.1
         | 
| 1153 1153 | 
             
            - ruby >= 3.0
         | 
| 1154 1154 | 
             
            - imagemagick
         | 
| 1155 | 
            -
            rubygems_version: 3.5. | 
| 1155 | 
            +
            rubygems_version: 3.5.17
         | 
| 1156 1156 | 
             
            signing_key:
         | 
| 1157 1157 | 
             
            specification_version: 4
         | 
| 1158 1158 | 
             
            summary: Camaleon is a CMS for Ruby on Rails as an alternative to Wordpress.
         |