authtrail 0.7.0 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 772039782b1938d4b3ce3b0ba5c83ddf074232156e48b103af7cc42872dc35c1
4
- data.tar.gz: 2cf65214f9ecc836a3510b4aa9da4fbbe81383f1bfe0169c23f0357c8a95ca02
3
+ metadata.gz: 915e73984eb62ee6814dc16243de12f632389f281bff364c92f5464113793039
4
+ data.tar.gz: 4decb1a4c28c79a3e4fb8fca043a9f5692a24ff0fb850bd5e165592943ad7f80
5
5
  SHA512:
6
- metadata.gz: 3a5b5b9c67909b2598379c86dd9ebed667c3b8f3ac5c011b03445087e8aeb48674c345909d7e70bf544e247861d70c63736c1dc459aaeae059e5098ea88243e6
7
- data.tar.gz: 360b1e2c0b6b7803ce1afcd39c38cd70c38ae758f8eb9b2d1c7f8e817f783ed61e842dcce848ea4c6ffb8ea8c74d592b2033868a460a7a913dc89fbf8da46811
6
+ metadata.gz: a8b8c04951c3a3cbca03f02a0fa1232d1c035570be4f5f499c6862cf0320a07130ae775e44081acc380a49e6d4ac00d183d1e7e40c19c44c0f2edea22d92d0ca
7
+ data.tar.gz: f19af6abc5becffe844cd67f9c915ec54cd400aa0dccefc9d6454122193881fc5314e95ef1634c432ca4e6223741c57375be028ed775965d867a46cb24379d8c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 1.0.0 (2026-04-04)
2
+
3
+ - Removed support for Rails < 7.2 and Ruby < 3.3
4
+
5
+ ## 0.7.1 (2026-02-07)
6
+
7
+ - Fixed error with certain custom Warden strategies
8
+
1
9
  ## 0.7.0 (2025-05-04)
2
10
 
3
11
  - Removed support for Rails < 7.1 and Ruby < 3.2
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2017-2025 Andrew Kane
1
+ Copyright (c) 2017-2026 Andrew Kane
2
2
 
3
3
  MIT License
4
4
 
@@ -31,7 +31,16 @@ module AuthTrail
31
31
 
32
32
  def detect_strategy(auth)
33
33
  strategy = auth.env["omniauth.auth"]["provider"] if auth.env["omniauth.auth"]
34
- strategy ||= auth.winning_strategy.class.name.split("::").last.underscore if auth.winning_strategy
34
+ if !strategy && auth.winning_strategy
35
+ winning_class = auth.winning_strategy.class
36
+ strategy =
37
+ if winning_class.name
38
+ winning_class.name.split("::").last.underscore
39
+ else
40
+ # rescue since _strategies is private
41
+ (Warden::Strategies._strategies.key(winning_class)&.to_s rescue nil) || "unknown"
42
+ end
43
+ end
35
44
  strategy ||= "database_authenticatable"
36
45
  strategy
37
46
  end
@@ -1,3 +1,3 @@
1
1
  module AuthTrail
2
- VERSION = "0.7.0"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -20,7 +20,7 @@ module Authtrail
20
20
  def generate_model
21
21
  case encryption
22
22
  when "lockbox"
23
- template "model_lockbox.rb", "app/models/login_activity.rb", lockbox_method: lockbox_method
23
+ template "model_lockbox.rb", "app/models/login_activity.rb"
24
24
  when "activerecord"
25
25
  template "model_activerecord.rb", "app/models/login_activity.rb"
26
26
  else
@@ -63,14 +63,6 @@ module Authtrail
63
63
  end
64
64
  end
65
65
 
66
- def lockbox_method
67
- if defined?(Lockbox::VERSION) && Lockbox::VERSION.to_i < 1
68
- "encrypts"
69
- else
70
- "has_encrypted"
71
- end
72
- end
73
-
74
66
  def mysql?
75
67
  adapter =~ /mysql|trilogy/i
76
68
  end
@@ -78,6 +70,18 @@ module Authtrail
78
70
  def adapter
79
71
  ActiveRecord::Base.connection_db_config.adapter.to_s
80
72
  end
73
+
74
+ def primary_key_type
75
+ ", id: :#{key_type}" if key_type
76
+ end
77
+
78
+ def foreign_key_type
79
+ ", type: :#{key_type}" if key_type
80
+ end
81
+
82
+ def key_type
83
+ Rails.configuration.generators.options.dig(:active_record, :primary_key_type)
84
+ end
81
85
  end
82
86
  end
83
87
  end
@@ -1,12 +1,12 @@
1
1
  class <%= migration_class_name %> < ActiveRecord::Migration<%= migration_version %>
2
2
  def change
3
- create_table :login_activities do |t|
3
+ create_table :login_activities<%= primary_key_type %> do |t|
4
4
  t.string :scope
5
5
  t.string :strategy
6
6
  <%= identity_column %>
7
7
  t.boolean :success
8
8
  t.string :failure_reason
9
- t.references :user, polymorphic: true
9
+ t.references :user<%= foreign_key_type %>, polymorphic: true
10
10
  t.string :context
11
11
  <%= ip_column %>
12
12
  t.text :user_agent
@@ -1,7 +1,7 @@
1
1
  class LoginActivity < ApplicationRecord
2
2
  belongs_to :user, polymorphic: true, optional: true
3
3
 
4
- <%= lockbox_method %> :identity, :ip
4
+ has_encrypted :identity, :ip
5
5
  blind_index :identity, :ip
6
6
 
7
7
  before_save :reduce_precision
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authtrail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '7.1'
18
+ version: '7.2'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '7.1'
25
+ version: '7.2'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: warden
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -66,14 +66,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: '3.2'
69
+ version: '3.3'
70
70
  required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  requirements: []
76
- rubygems_version: 3.6.7
76
+ rubygems_version: 4.0.6
77
77
  specification_version: 4
78
78
  summary: Track Devise login activity
79
79
  test_files: []