tanker-core 2.23.0 → 2.24.0.beta.1

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: a875314964df7f304b3c54db37cef798cbe6b9e24f6f10670b5a4e7b13e0ddd9
4
- data.tar.gz: 0567cdb85bce584cb3ed8bf0431d1f956fb4cf632ed4d8d79e6c24afefa115ad
3
+ metadata.gz: 8ee3258f86f9cbc29b2335ce81e0729df5e800eee69f3bf7594a9267b76f86c7
4
+ data.tar.gz: 57447098a3f2b7c78e1dcfe7062c473ea232e3516fabae19c0ceb2cdbfa4adc0
5
5
  SHA512:
6
- metadata.gz: 748e135b9f17743469a328dae7108b328cf2be08aefabba05f925c4bd744904f55381691134a6df4f0e21b46cd7f70b723ad6103426746dbed3927766164fc48
7
- data.tar.gz: ad1bb8261d03bd5d27d3dbd703eb6fcfa535e602c07c303b56d7479b7dd1a69b60638b40780211e7ec4679e1f9960c22663e27aac3ccf8a7aecf29119b9f165c
6
+ metadata.gz: f3984bf2d0a25a740ed3511767e8a82bcd760877a11809fc89178def8331e12fb4a4ee97be28b7a74933e7d3d8b7a205814dc79af9b24cd8b45c3003e26207c4
7
+ data.tar.gz: 5b5a232378da52f0ff40b083bb40339ef617c99f34b5acb7747f15c65cf2d64a72a5814f125d8a1497eebd8867040084151a6ad8399f9b76d31860a7a14d2b3f
@@ -6,9 +6,10 @@ require 'tanker/c_tanker/c_string'
6
6
  module Tanker
7
7
  class Admin
8
8
  class AppUpdateOptions < FFI::Struct
9
- def initialize(oidc_client_id: nil, oidc_client_provider: nil, session_certificates: nil)
9
+ def initialize(oidc_client_id: nil, oidc_client_provider: nil,
10
+ session_certificates: nil, preverified_verification: nil)
10
11
  super()
11
- self[:version] = 1
12
+ self[:version] = 2
12
13
  unless oidc_client_id.nil?
13
14
  @oidc_client_id = CTanker.new_cstring oidc_client_id
14
15
  self[:oidc_client_id] = @oidc_client_id
@@ -17,18 +18,25 @@ module Tanker
17
18
  @oidc_client_provider = CTanker.new_cstring oidc_client_provider
18
19
  self[:oidc_client_provider] = @oidc_client_provider
19
20
  end
20
- unless session_certificates.nil? # rubocop:disable Style/GuardClause no different than the other two above
21
+ unless session_certificates.nil?
21
22
  boolptr = FFI::MemoryPointer.new(:bool, 1)
22
23
  boolptr.put(:bool, 0, session_certificates)
23
24
  @session_certificates = boolptr
24
25
  self[:session_certificates] = @session_certificates
25
26
  end
27
+ unless preverified_verification.nil? # rubocop:disable Style/GuardClause no different than the other parameters
28
+ boolptr = FFI::MemoryPointer.new(:bool, 1)
29
+ boolptr.put(:bool, 0, preverified_verification)
30
+ @preverified_verification = boolptr
31
+ self[:preverified_verification] = @preverified_verification
32
+ end
26
33
  end
27
34
 
28
35
  layout :version, :uint8,
29
36
  :oidc_client_id, :pointer,
30
37
  :oidc_client_provider, :pointer,
31
- :session_certificates, :pointer
38
+ :session_certificates, :pointer,
39
+ :preverified_verification, :pointer
32
40
  end
33
41
  end
34
42
  end
@@ -49,15 +49,19 @@ module Tanker
49
49
  :email_verification, CEmailVerification,
50
50
  :passphrase, :pointer,
51
51
  :oidc_id_token, :pointer,
52
- :phone_number_verification, CPhoneNumberVerification
52
+ :phone_number_verification, CPhoneNumberVerification,
53
+ :preverified_email, :pointer,
54
+ :preverified_phone_number, :pointer
53
55
 
54
56
  TYPE_EMAIL = 1
55
57
  TYPE_PASSPHRASE = 2
56
58
  TYPE_VERIFICATION_KEY = 3
57
59
  TYPE_OIDC_ID_TOKEN = 4
58
60
  TYPE_PHONE_NUMBER = 5
61
+ TYPE_PREVERIFIED_EMAIL = 6
62
+ TYPE_PREVERIFIED_PHONE_NUMBER = 7
59
63
 
60
- def initialize(verification)
64
+ def initialize(verification) # rubocop:disable Metrics/CyclomaticComplexity Not relevant for a case/when
61
65
  super()
62
66
 
63
67
  unless verification.is_a? Tanker::Verification
@@ -85,11 +89,19 @@ module Tanker
85
89
  self[:type] = TYPE_PHONE_NUMBER
86
90
  self[:phone_number_verification] =
87
91
  CPhoneNumberVerification.new verification.phone_number, verification.verification_code
92
+ when Tanker::PreverifiedEmailVerification
93
+ @preverified_email = CTanker.new_cstring verification.preverified_email
94
+ self[:type] = TYPE_PREVERIFIED_EMAIL
95
+ self[:preverified_email] = @preverified_email
96
+ when Tanker::PreverifiedPhoneNumberVerification
97
+ @preverified_phone_number = CTanker.new_cstring verification.preverified_phone_number
98
+ self[:type] = TYPE_PREVERIFIED_PHONE_NUMBER
99
+ self[:preverified_phone_number] = @preverified_phone_number
88
100
  else
89
101
  raise ArgumentError, 'Unknown Tanker::Verification type!'
90
102
  end
91
103
 
92
- self[:version] = 4
104
+ self[:version] = 5
93
105
  end
94
106
  end
95
107
  end
@@ -16,8 +16,10 @@ module Tanker
16
16
  TYPE_VERIFICATION_KEY = 3
17
17
  TYPE_OIDC_ID_TOKEN = 4
18
18
  TYPE_PHONE_NUMBER = 5
19
+ TYPE_PREVERIFIED_EMAIL = 6
20
+ TYPE_PREVERIFIED_PHONE_NUMBER = 7
19
21
 
20
- def to_verification_method
22
+ def to_verification_method # rubocop:disable Metrics/CyclomaticComplexity Not relevant for a case/when
21
23
  case self[:type]
22
24
  when TYPE_EMAIL
23
25
  EmailVerificationMethod.new(self[:value].read_string.force_encoding(Encoding::UTF_8))
@@ -29,6 +31,10 @@ module Tanker
29
31
  OIDCIDTokenVerificationMethod.new
30
32
  when TYPE_PHONE_NUMBER
31
33
  PhoneNumberVerificationMethod.new(self[:value].read_string.force_encoding(Encoding::UTF_8))
34
+ when TYPE_PREVERIFIED_EMAIL
35
+ PreverifiedEmailVerificationMethod.new(self[:value].read_string.force_encoding(Encoding::UTF_8))
36
+ when TYPE_PREVERIFIED_PHONE_NUMBER
37
+ PreverifiedPhoneNumberVerificationMethod.new(self[:value].read_string.force_encoding(Encoding::UTF_8))
32
38
  else
33
39
  raise "Unknown VerificationMethod type #{self[:type]}!"
34
40
  end
@@ -69,4 +69,28 @@ module Tanker
69
69
  @verification_code = verif_code
70
70
  end
71
71
  end
72
+
73
+ class PreverifiedEmailVerification < Verification
74
+ attr_reader :preverified_email
75
+
76
+ def initialize(preverified_email)
77
+ super()
78
+
79
+ ASSERT_UTF8.call(preverified_email)
80
+
81
+ @preverified_email = preverified_email
82
+ end
83
+ end
84
+
85
+ class PreverifiedPhoneNumberVerification < Verification
86
+ attr_reader :preverified_phone_number
87
+
88
+ def initialize(preverified_phone_number)
89
+ super()
90
+
91
+ ASSERT_UTF8.call(preverified_phone_number)
92
+
93
+ @preverified_phone_number = preverified_phone_number
94
+ end
95
+ end
72
96
  end
@@ -38,4 +38,30 @@ module Tanker
38
38
  super && phone_number == other.phone_number
39
39
  end
40
40
  end
41
+
42
+ class PreverifiedEmailVerificationMethod < VerificationMethod
43
+ attr_reader :preverified_email
44
+
45
+ def initialize(preverified_email)
46
+ super()
47
+ @preverified_email = preverified_email
48
+ end
49
+
50
+ def ==(other)
51
+ super && preverified_email == other.preverified_email
52
+ end
53
+ end
54
+
55
+ class PreverifiedPhoneNumberVerificationMethod < VerificationMethod
56
+ attr_reader :preverified_phone_number
57
+
58
+ def initialize(preverified_phone_number)
59
+ super()
60
+ @preverified_phone_number = preverified_phone_number
61
+ end
62
+
63
+ def ==(other)
64
+ super && preverified_phone_number == other.preverified_phone_number
65
+ end
66
+ end
41
67
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Tanker
4
4
  class Core
5
- VERSION = '2.23.0'
5
+ VERSION = '2.24.0.beta.1'
6
6
 
7
7
  def self.native_version
8
8
  CTanker.tanker_version_string
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tanker-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.23.0
4
+ version: 2.24.0.beta.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanker team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-13 00:00:00.000000000 Z
11
+ date: 2021-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -187,9 +187,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
187
187
  version: 2.6.0
188
188
  required_rubygems_version: !ruby/object:Gem::Requirement
189
189
  requirements:
190
- - - ">="
190
+ - - ">"
191
191
  - !ruby/object:Gem::Version
192
- version: '0'
192
+ version: 1.3.1
193
193
  requirements: []
194
194
  rubygems_version: 3.0.3.1
195
195
  signing_key: