web47core 3.2.3.28 → 3.2.3.30

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ae4e8d149eb528b642a281d596ce1d74a3be183c5c4f96973d18fe5feceea51
4
- data.tar.gz: b903d5e5875c61111150ead42469abb2ceaf12667d42125949eaf284e5c29661
3
+ metadata.gz: 2f2f736da8b94ec286fb7f058993c995c47eca9f0b31e32bf9ce836aa77f70c3
4
+ data.tar.gz: 94a764cdd7e74c7a28d91855b69b646572405d035954f36ef13c0967cf6c3f13
5
5
  SHA512:
6
- metadata.gz: ab104e17e0c0780a4b8ae5d3359dfde29d5433e9e705105a5babdd515cddb059af97d9d5e8557288d42236e2945c6b15685d5739d60be5f39f56201bdb9098ee
7
- data.tar.gz: c8eeee3b4cc1a18a43f3076ed0601c7258481ef4a5b8316f88b12230b5ffb0e53573f7cc321ae6334ec4613b279e9572354f3ab0f24bf196008820da50ddae53
6
+ metadata.gz: 658278516a6ad09337c857bd2ad2e4fbf1ee32881890d06034d003778dad2cd46ab24934ea8237962f7a1c9d917800a9922f7f338a228b640e520a0c4fcd33fc
7
+ data.tar.gz: a485be8d18a431e76ff5887ec0e8c739a597cd1fb67c431c7668383e51788c56f05a3b1823477800dea7cc250ded36fe5614c55b88f2b1fe895d1d5950dd6d20
@@ -5,17 +5,25 @@
5
5
  #
6
6
  module CoreApplicationHelper
7
7
  # @abstract Return the current user
8
- # @return [User] - The current user that is logged in
8
+ # @return [User, nil] - The current user that is logged in
9
9
  def current_user
10
10
  @current_user
11
11
  end
12
12
 
13
13
  # @abstract Return the current member
14
- # @return [Member] - The current user that is logged in
14
+ # @return [Member, nil] - The current user that is logged in
15
15
  def current_member
16
16
  @current_member
17
17
  end
18
18
 
19
+ # @abstract return the user or member depending on configuration
20
+ # @return [Member, User, nil]
21
+ def current_member_user
22
+ send("current_#{Web47core.audit_model}")
23
+ rescue StandardError
24
+ current_user || current_member
25
+ end
26
+
19
27
  # @abstract Return the referrer url without deleting it out of the session
20
28
  # @param [String] default_url - The URL to use if the referrer session is not there
21
29
  # @return [String] the session[:referrer] or the default_url if not found
@@ -47,7 +47,7 @@ module CoreDataGridHelper
47
47
  when Mongoid::Boolean
48
48
  value ? 'Yes' : 'No'
49
49
  when Date, DateTime, Time
50
- current_user.local_time(value, :medium)
50
+ current_member_user&.local_time(value, :medium) || value.to_s
51
51
  when Integer, Array
52
52
  value.to_s
53
53
  when String
@@ -17,7 +17,7 @@ module ApiTokenable
17
17
  # call back to reset the api token.
18
18
  before_save :assign_api_token, if: :reset_api_token
19
19
  # set the index on api token
20
- index({ api_token: 1 }, background: true)
20
+ index({ api_token: Mongo::Index::ASCENDING }, background: true)
21
21
 
22
22
  def cycle_api_token
23
23
  set api_token: SecureRandom.urlsafe_base64
@@ -43,6 +43,9 @@ module CoreSystemConfiguration
43
43
  #
44
44
  validates :environment, presence: true, uniqueness: true
45
45
  validates :default_time_zone, presence: true
46
+ validates :base_url, http_url: true
47
+ validates :cdn_url, http_url: true
48
+ validates :asset_cdn_url, http_url: true
46
49
  end
47
50
  base.extend ClassMethods
48
51
  end
@@ -18,7 +18,7 @@ module SlackConfiguration
18
18
  #
19
19
  # Validations
20
20
  #
21
- validates :slack_api_url, url: true, allow_blank: true
21
+ validates :slack_api_url, http_url: true, allow_blank: true
22
22
  validates :slack_support_channel, presence: true
23
23
  validates :slack_sales_channel, presence: true
24
24
  end
@@ -18,7 +18,7 @@ module SwitchboardConfiguration
18
18
  #
19
19
  # Validations
20
20
  #
21
- validates :switchboard_base_url, url: true
21
+ validates :switchboard_base_url, http_url: true
22
22
  end
23
23
  end
24
24
 
@@ -19,7 +19,7 @@ module ZendeskConfiguration
19
19
  #
20
20
  # Validations
21
21
  #
22
- validates :zendesk_base_url, url: true
22
+ validates :zendesk_base_url, http_url: true
23
23
  end
24
24
  end
25
25
 
@@ -0,0 +1,20 @@
1
+ # Validator for ensuring that an attribute contains a valid HTTP or HTTPS URL.
2
+ # Uses URI.parse to verify the scheme and the presence of a host.
3
+ class HttpUrlValidator < ActiveModel::EachValidator
4
+
5
+ # Validates the format of the URL provided in the attribute.
6
+ #
7
+ # @param record [ActiveModel::Model] The record being validated.
8
+ # @param attribute [Symbol] The name of the attribute being validated.
9
+ # @param value [Object] The value of the attribute to check.
10
+ def validate_each(record, attribute, value)
11
+ return if value.blank?
12
+
13
+ uri = URI.parse(value)
14
+ return if uri.is_a?(URI::HTTP) && uri.host.present?
15
+
16
+ record.errors.add(attribute, "is not a valid URL")
17
+ rescue URI::InvalidURIError
18
+ record.errors.add(attribute, "is not a valid URL")
19
+ end
20
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Web47core
4
- VERSION = '3.2.3.28'
4
+ VERSION = '3.2.3.30'
5
5
  end
data/lib/web47core.rb CHANGED
@@ -93,3 +93,4 @@ require 'app/controllers/concerns/core_delayed_job_workers_controller'
93
93
  # Validators
94
94
  #
95
95
  require 'app/validators/email_format_validator'
96
+ require 'app/validators/http_url_validator'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web47core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.3.28
4
+ version: 3.2.3.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Schroeder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-19 00:00:00.000000000 Z
11
+ date: 2026-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -192,34 +192,6 @@ dependencies:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: validate_url
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :runtime
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: '0'
209
- - !ruby/object:Gem::Dependency
210
- name: valid_url
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: '0'
216
- type: :runtime
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - ">="
221
- - !ruby/object:Gem::Version
222
- version: '0'
223
195
  - !ruby/object:Gem::Dependency
224
196
  name: aws-sdk-ecs
225
197
  requirement: !ruby/object:Gem::Requirement
@@ -416,6 +388,20 @@ dependencies:
416
388
  - - ">="
417
389
  - !ruby/object:Gem::Version
418
390
  version: '0'
391
+ - !ruby/object:Gem::Dependency
392
+ name: rubocop
393
+ requirement: !ruby/object:Gem::Requirement
394
+ requirements:
395
+ - - ">="
396
+ - !ruby/object:Gem::Version
397
+ version: '0'
398
+ type: :development
399
+ prerelease: false
400
+ version_requirements: !ruby/object:Gem::Requirement
401
+ requirements:
402
+ - - ">="
403
+ - !ruby/object:Gem::Version
404
+ version: '0'
419
405
  - !ruby/object:Gem::Dependency
420
406
  name: shoulda
421
407
  requirement: !ruby/object:Gem::Requirement
@@ -6621,6 +6607,7 @@ files:
6621
6607
  - lib/app/models/user_audit_log.rb
6622
6608
  - lib/app/models/user_model_audit_log.rb
6623
6609
  - lib/app/validators/email_format_validator.rb
6610
+ - lib/app/validators/http_url_validator.rb
6624
6611
  - lib/merge_coverage.rb
6625
6612
  - lib/templates/email/notification_failure.liquid
6626
6613
  - lib/templates/email/notification_failure.subject.liquid