minimalist_authentication 2.2.1 → 2.2.4

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: 7393c90dec001c1a5cc41a7671335a14525c2df82b5b1ef6f09695d0f5eb618d
4
- data.tar.gz: 5938f2b31f6139096fd59b4c2257d6056b216d276e4d4cfbad5c67edd34cbed5
3
+ metadata.gz: b86110ca5e209864047e3c499a09401a264019ea2bd4311d3eb11e02ac95c29c
4
+ data.tar.gz: '0493e05bb52e0090890c785149bfb237309b2ad6e81988258f5fda308f8bf8bf'
5
5
  SHA512:
6
- metadata.gz: f84a1b08c525c57f5974d7d73f7eba50835952ea29ff8f9336d2e31af53a92074f59cb319002ab6647dddeab6cb126077cb92a01c5349a6ad5a1980e4c4c75d4
7
- data.tar.gz: 75636fe9e427511d02809c232fd6bb6692fa5bdad2db564391ce5e97a4d8cecee149f836330849f006c8d470509f283b6c641812967dbedac058464ead0d47c5
6
+ metadata.gz: eade9a93179f92c337ed21258d438861fbe70210d1a252dab6998fe10f49d18e0b6ddf250bef8bc6ebae69aa068e44bf00e366d4aeae4e9c4c55775402c21a8f
7
+ data.tar.gz: b1fcc6eb5d0dcd5bfcb8e1e740a72faff20c397f8ed9bc216a0eba343cddbd36457e2bf03aa09ec1fee51c6f82f429c97b7dfc6becdf4562b555d744074f5d21
@@ -17,7 +17,8 @@ module MinimalistAuthentication
17
17
  end
18
18
 
19
19
  def get_user_from_session
20
- MinimalistAuthentication.configuration.user_model.find_by_id(session_user_id) if session_user_id
20
+ return unless session_user_id
21
+ MinimalistAuthentication.configuration.user_model.active.find_by(id: session_user_id)
21
22
  end
22
23
 
23
24
  def session_user_id
@@ -5,7 +5,6 @@ module MinimalistAuthentication
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  GUEST_USER_EMAIL = 'guest'
8
- EMAIL_REGEX = /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
9
8
  PASSWORD_MIN = 8
10
9
  PASSWORD_MAX = 40
11
10
 
@@ -20,26 +19,35 @@ module MinimalistAuthentication
20
19
  before_save :hash_password
21
20
 
22
21
  # Email validations
23
- validates_presence_of :email, if: :validate_email_presence?
24
- validates_uniqueness_of :email, allow_blank: true, case_sensitive: false, if: :validate_email?
25
- validates_format_of :email, allow_blank: true, with: EMAIL_REGEX, if: :validate_email?
22
+ validates(
23
+ :email,
24
+ format: { allow_blank: true, with: URI::MailTo::EMAIL_REGEXP },
25
+ uniqueness: { allow_blank: true, case_sensitive: false, scope: :active },
26
+ if: :validate_email?
27
+ )
28
+ validates(:email, presence: true, if: :validate_email_presence?)
26
29
 
27
30
  # Password validations
28
- validates_presence_of :password, if: :validate_password?
29
- validates_confirmation_of :password, if: :validate_password?
30
- validates_length_of :password, within: PASSWORD_MIN..PASSWORD_MAX, if: :validate_password?
31
+ validates(
32
+ :password,
33
+ confirmation: true,
34
+ length: { within: PASSWORD_MIN..PASSWORD_MAX },
35
+ presence: true,
36
+ if: :validate_password?
37
+ )
31
38
 
32
39
  # Active scope
33
- scope :active, ->(active = true) { where active: active }
40
+ scope :active, ->(state = true) { where(active: state) }
41
+ scope :inactive, -> { active(false) }
34
42
  end
35
43
 
36
44
  module ClassMethods
37
45
  # Authenticates a user form the params provided. Expects a params hash with
38
- # email or username and passwod keys.
46
+ # email or username and password keys.
39
47
  # Params examples:
40
48
  # { email: 'user@example.com', password: 'abc123' }
41
49
  # { username: 'user', password: 'abc123' }
42
- # Returns user upon successful authentcation.
50
+ # Returns user upon successful authentication.
43
51
  # Otherwise returns nil.
44
52
  def authenticate(params)
45
53
  # extract email or username and the associated value
@@ -65,6 +73,11 @@ module MinimalistAuthentication
65
73
  active
66
74
  end
67
75
 
76
+ # Returns true if the user is not active.
77
+ def inactive?
78
+ !active
79
+ end
80
+
68
81
  # Return true if password matches the hashed_password.
69
82
  # If successful checks for an outdated password_hash and updates if
70
83
  # necessary.
@@ -107,7 +120,7 @@ module MinimalistAuthentication
107
120
  Password.new(password_hash)
108
121
  end
109
122
 
110
- # Requre password for active users that either do no have a password hash
123
+ # Require password for active users that either do no have a password hash
111
124
  # stored OR are attempting to set a new password. Set **password_required**
112
125
  # to true to force validations even when the password field is blank.
113
126
  def validate_password?
@@ -122,7 +135,7 @@ module MinimalistAuthentication
122
135
  end
123
136
 
124
137
  # Validate email presence for active users.
125
- # Applications can turn offf email presence validation by setting
138
+ # Applications can turn off email presence validation by setting
126
139
  # validate_email_presence configuration attribute to false.
127
140
  def validate_email_presence?
128
141
  MinimalistAuthentication.configuration.validate_email_presence && validate_email?
@@ -1,3 +1,3 @@
1
1
  module MinimalistAuthentication
2
- VERSION = '2.2.1'
2
+ VERSION = '2.2.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minimalist_authentication
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Baldwin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-08-28 00:00:00.000000000 Z
12
+ date: 2022-04-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -45,20 +45,6 @@ dependencies:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 3.1.3
48
- - !ruby/object:Gem::Dependency
49
- name: loofah
50
- requirement: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: 2.3.1
55
- type: :runtime
56
- prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 2.3.1
62
48
  - !ruby/object:Gem::Dependency
63
49
  name: sqlite3
64
50
  requirement: !ruby/object:Gem::Requirement
@@ -139,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
125
  - !ruby/object:Gem::Version
140
126
  version: '0'
141
127
  requirements: []
142
- rubygems_version: 3.1.2
128
+ rubygems_version: 3.3.9
143
129
  signing_key:
144
130
  specification_version: 4
145
131
  summary: A Rails authentication plugin that takes a minimalist approach.