login-control 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 576dfb778fef6f08e892aee929fb44b15ac51de82b8bca41a6d5b7fa5291cf1e
4
- data.tar.gz: 15f8547991b86ae2f90b212cfc639ad67e8fd2556acd5851b7fc2b9894d6a337
3
+ metadata.gz: 7140d5b9a8e9ee22b79f9e2522a09704cdac500ae79ff3f0bd143986d787045c
4
+ data.tar.gz: e31cca96bd63a22b6b9c6fe9978ab28b09580b676df3575a9d17c5f73f31caa4
5
5
  SHA512:
6
- metadata.gz: 5668048e7774db39f276303cc32d9bf6e1538a3300c4118bea7c520eb32ee263203c9afb7b8a60a9ba48a76be4cdcf430029015ddd1ee334d587d1c52dcd7bd1
7
- data.tar.gz: 480d115794fb3726822b090718eb5dd941aed63db411bb1931290944307cd8db0f6742db01c1ebac8a748d312372e05f474cbb2a29f19c08b0845d41d66b6f33
6
+ metadata.gz: 3a949f430c3b55cb22cc85f249a738ef89c1ab66c926a89e7f59cbbd5c68e262682364d9f975e46e833b44060aa8d56f67f68135407c8c99fad9778935d702ea
7
+ data.tar.gz: 129ccb62c18fbef17a434990b7d14330cee531b339adffe98febe4ffb7c59822f4462d798d98887919f364af9de32d4cb13956ac84671282f77922914f50eea2
@@ -3,6 +3,7 @@ module LoginControlModule
3
3
  # check if captcha is to validate (does not store a cookie)
4
4
  def captcha_validation?(scope: :global, login_name: nil)
5
5
  rec = rc_record(scope, login_name)
6
+ logger.info "LOGIN-CONTROL => get captcha #{captcha_requested ? '' : 'NOT '}requested from record LoginControl.#{rec.id}" if debug_request_control
6
7
  rec ? rec.validate_captcha : true
7
8
  end
8
9
 
@@ -13,7 +14,7 @@ module LoginControlModule
13
14
  rec.sign_in_success = rec.sign_in_success.to_i + 1
14
15
  rec.attempts = 1
15
16
  rec.save!
16
- logger.info "REQUEST-CONTROL => #{rec.sign_in_success}. successful request noticed" if debug_request_control
17
+ logger.info "LOGIN-CONTROL => #{rec.sign_in_success}. successful request noticed" if debug_request_control
17
18
  end
18
19
 
19
20
  # stores cookie, counts up attempts
@@ -22,7 +23,7 @@ module LoginControlModule
22
23
  rec = find_or_build_rc_record(scope, login_name)
23
24
  rec.attempts = rec.attempts.to_i + 1
24
25
  rec.save!
25
- logger.info "REQUEST-CONTROL => #{rec.attempts}. failed request noticed" if debug_request_control
26
+ logger.info "LOGIN-CONTROL => #{rec.attempts}. failed request noticed" if debug_request_control
26
27
  end
27
28
 
28
29
  private
@@ -6,35 +6,36 @@ module LoginControlViewHelper
6
6
  def captcha_tag?(scope: :global, login_name: nil)
7
7
  debug = (Rails.configuration.x.login_control.debug || !Rails.env.production?)
8
8
  rc_id = cookies.encrypted.permanent[:login_control]
9
+ captcha_requested = true
9
10
  if request.host == 'localhost'
10
- logger.info 'REQUEST-CONTROL => no captcha because of localhost' if debug
11
- false
11
+ logger.info 'LOGIN-CONTROL => no captcha because of localhost' if debug
12
+ captcha_requested = false
12
13
  elsif !rc_id.present?
13
- logger.info 'REQUEST-CONTROL => captcha because no cookie stored yet' if debug
14
- true
14
+ logger.info 'LOGIN-CONTROL => captcha because no cookie stored yet' if debug
15
+ captcha_requested = true
15
16
  else
16
- logger.info 'REQUEST-CONTROL => cookie found ...' if debug
17
+ logger.info 'LOGIN-CONTROL => cookie found ...' if debug
17
18
  rec = LoginControl.find_by(session_id: rc_id, scope: scope, login_name: login_name)
18
19
  if !rec
19
- logger.info 'REQUEST-CONTROL => captcha required because no record found(!)' if debug
20
+ logger.info 'LOGIN-CONTROL => captcha required because no record found(!)' if debug
20
21
  true
21
22
  else
22
- logger.info 'REQUEST-CONTROL => record found ...' if debug
23
- captcha_requested = true
23
+ logger.info 'LOGIN-CONTROL => record found ...' if debug
24
24
 
25
25
  attempts_allowed = (Rails.configuration.x.login_control.attempts_allowed || 10)
26
26
  retry_after_seconds = (Rails.configuration.x.login_control.retry_after_seconds || 30)
27
- logger.info "REQUEST-CONTROL => #{rec.attempts.to_i}. attempt (config.x.attempts_allowed: #{attempts_allowed})" if debug
27
+ logger.info "LOGIN-CONTROL => #{rec.attempts.to_i}. attempt (config.x.attempts_allowed: #{attempts_allowed})" if debug
28
28
 
29
29
  if rec.attempts.to_i <= attempts_allowed
30
30
  secs = Time.now - rec.updated_at
31
31
  captcha_requested = retry_after_seconds.to_f >= secs
32
- logger.info "REQUEST-CONTROL => captcha #{captcha_requested ? '' : 'NOT '}requested: config.x.retry_after_seconds(#{retry_after_seconds}) >= secs(#{secs})" if debug
32
+ logger.info "LOGIN-CONTROL => captcha #{captcha_requested ? '' : 'NOT '}requested: config.x.retry_after_seconds(#{retry_after_seconds}) >= secs(#{secs})" if debug
33
33
  end
34
34
 
35
- rec.update!(validate_captcha: captcha_requested)
36
- captcha_requested
37
35
  end
36
+ rec.update!(validate_captcha: captcha_requested)
37
+ logger.info "LOGIN-CONTROL => set captcha #{captcha_requested ? '' : 'NOT '}requested to record LoginControl.#{rec.id}" if debug
38
+ captcha_requested
38
39
  end
39
40
  end
40
41
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: login-control
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Sedlmair
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-07 00:00:00.000000000 Z
11
+ date: 2023-01-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Based on Login Attempts check if captcha is necessary. It stores a permanent
14
14
  cookie and uses a table for tracking login requests.