trusona 0.18.2 → 0.19.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.travis.yml +11 -6
- data/README.md +19 -0
- data/lib/trusona.rb +5 -0
- data/lib/trusona/api/client.rb +11 -3
- data/lib/trusona/api/verified_response.rb +3 -8
- data/lib/trusona/mappers/user_mapper.rb +13 -0
- data/lib/trusona/resources/user.rb +21 -0
- data/lib/trusona/services/base_service.rb +5 -1
- data/lib/trusona/services/device_user_bindings_service.rb +0 -4
- data/lib/trusona/services/users_service.rb +15 -0
- data/lib/trusona/user.rb +11 -0
- data/lib/trusona/version.rb +1 -1
- data/lib/trusona/workers/user_deactivator.rb +22 -0
- metadata +7 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86dadc0e339a0f3fab0224c8dcb277b751c7d9a27c08b3aca8cc476609056b3c
|
4
|
+
data.tar.gz: cfaf39cfbf6fa7cdde0ccf606bbeb0290d5494257abe38395123a5b0ba213904
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fa476090b8cf3241d6967aa0eab6db67d4d5e5d12231718619880896dab55362dbf31b74546e8c2b41bf51a06033e0da9852050dfef9896152bf60d5c2cab2b
|
7
|
+
data.tar.gz: d7ed5c8dcb5c67919b5b1565271fe13fdf5c9851e1964fee2bc4b1a1ee5a3480e1563144c6235f2cf84bf32a8994b1c65df6c86805e653870658d6ed6aa00848
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.travis.yml
CHANGED
@@ -6,13 +6,18 @@ rvm:
|
|
6
6
|
- 2.4.3
|
7
7
|
- 2.5.1
|
8
8
|
before_install:
|
9
|
-
- openssl aes-256-cbc -K $encrypted_b73e363d372e_key -iv $encrypted_b73e363d372e_iv
|
10
|
-
-
|
11
|
-
|
9
|
+
- openssl aes-256-cbc -K $encrypted_b73e363d372e_key -iv $encrypted_b73e363d372e_iv -in trusona.key.pem.enc -out trusona.key.pem -d
|
10
|
+
- gem install bundler -v 1.15.1
|
11
|
+
before_script:
|
12
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
13
|
+
- chmod +x ./cc-test-reporter
|
14
|
+
- ./cc-test-reporter before-build
|
12
15
|
script:
|
13
|
-
- bundle exec rspec spec -f p
|
14
|
-
- bundle exec rubocop lib/**/*.rb -F
|
15
|
-
- gem build trusona.gemspec
|
16
|
+
- bundle exec rspec spec -f p
|
17
|
+
- bundle exec rubocop lib/**/*.rb -F
|
18
|
+
- gem build trusona.gemspec
|
19
|
+
after_script:
|
20
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
16
21
|
before_deploy:
|
17
22
|
- gem install bundler -v 1.15.1
|
18
23
|
deploy:
|
data/README.md
CHANGED
@@ -5,6 +5,8 @@ Easily interact with the Trusona REST API.
|
|
5
5
|
## Current Status
|
6
6
|
|
7
7
|
[](https://travis-ci.com/lighthauz/trusona-server-sdk-ruby)
|
8
|
+
[](https://codeclimate.com/github/trusona/trusona-server-sdk-ruby/maintainability)
|
9
|
+
[](https://codeclimate.com/github/trusona/trusona-server-sdk-ruby/test_coverage)
|
8
10
|
|
9
11
|
## Requirements
|
10
12
|
The Trusona SDK requires Ruby version 2.4.0 or higher.
|
@@ -16,6 +18,7 @@ The Trusona SDK requires Ruby version 2.4.0 or higher.
|
|
16
18
|
* [Device and User Bindings](#device-and-user-bindings)
|
17
19
|
* [Trusonafications](#trusonafications)
|
18
20
|
* [Devices](#devices)
|
21
|
+
* [Users](#users)
|
19
22
|
|
20
23
|
### Installation
|
21
24
|
|
@@ -188,6 +191,22 @@ If you want to check whether or not a device has been activated, or when it was
|
|
188
191
|
end
|
189
192
|
```
|
190
193
|
|
194
|
+
### Users
|
195
|
+
|
196
|
+
#### Creating a User
|
197
|
+
|
198
|
+
Users are created implicitly the first time you bind a user to a device.
|
199
|
+
|
200
|
+
#### Deactivating a User
|
201
|
+
|
202
|
+
You may wish to disable a user from having the ability to authenticate from any of the devices they have registered with. To deactivate a user:
|
203
|
+
|
204
|
+
```ruby
|
205
|
+
Trusona::User.deactivate(user_identifier: '83452353-4F7B-4CA2-BBCD-57ACE7279EA0')
|
206
|
+
```
|
207
|
+
|
208
|
+
The deactivated user can be reactivated at a later date by binding them to a new device in Trusona.
|
209
|
+
|
191
210
|
## Development
|
192
211
|
|
193
212
|
### Patterns
|
data/lib/trusona.rb
CHANGED
@@ -15,6 +15,7 @@ require 'trusona/user_identifier'
|
|
15
15
|
require 'trusona/device_user_binding'
|
16
16
|
require 'trusona/identity_document'
|
17
17
|
require 'trusona/device'
|
18
|
+
require 'trusona/user'
|
18
19
|
|
19
20
|
require 'trusona/api/signed_request'
|
20
21
|
require 'trusona/api/verified_response'
|
@@ -32,6 +33,7 @@ require 'trusona/workers/trusonafication_creator'
|
|
32
33
|
require 'trusona/workers/trusonafication_finder'
|
33
34
|
require 'trusona/workers/identity_document_finder'
|
34
35
|
require 'trusona/workers/device_finder'
|
36
|
+
require 'trusona/workers/user_deactivator'
|
35
37
|
|
36
38
|
require 'trusona/services/base_service'
|
37
39
|
require 'trusona/services/user_accounts_service'
|
@@ -43,6 +45,7 @@ require 'trusona/services/user_identifiers_service'
|
|
43
45
|
require 'trusona/services/device_user_bindings_service'
|
44
46
|
require 'trusona/services/identity_documents_service'
|
45
47
|
require 'trusona/services/devices_service'
|
48
|
+
require 'trusona/services/users_service'
|
46
49
|
|
47
50
|
require 'trusona/mappers/base_mapper'
|
48
51
|
require 'trusona/mappers/tru_code_mapper'
|
@@ -54,6 +57,7 @@ require 'trusona/mappers/user_identifier_mapper'
|
|
54
57
|
require 'trusona/mappers/device_user_binding_mapper'
|
55
58
|
require 'trusona/mappers/identity_document_mapper'
|
56
59
|
require 'trusona/mappers/device_mapper'
|
60
|
+
require 'trusona/mappers/user_mapper'
|
57
61
|
|
58
62
|
require 'trusona/resources/validators'
|
59
63
|
require 'trusona/resources/base_resource'
|
@@ -65,6 +69,7 @@ require 'trusona/resources/device_user_binding'
|
|
65
69
|
require 'trusona/resources/device_user_binding_activation'
|
66
70
|
require 'trusona/resources/identity_document'
|
67
71
|
require 'trusona/resources/device'
|
72
|
+
require 'trusona/resources/user'
|
68
73
|
|
69
74
|
# Trusona
|
70
75
|
module Trusona
|
data/lib/trusona/api/client.rb
CHANGED
@@ -5,9 +5,11 @@ module Trusona
|
|
5
5
|
#
|
6
6
|
## An a wrapper around HTTParty
|
7
7
|
class HTTPClient
|
8
|
-
POST
|
9
|
-
GET
|
10
|
-
PATCH
|
8
|
+
POST = 'POST'
|
9
|
+
GET = 'GET'
|
10
|
+
PATCH = 'PATCH'
|
11
|
+
DELETE = 'DELETE'
|
12
|
+
|
11
13
|
CONTENT_TYPE = 'application/json;charset=utf-8'
|
12
14
|
|
13
15
|
def initialize(host = nil)
|
@@ -26,6 +28,10 @@ module Trusona
|
|
26
28
|
execute(path, params, GET)
|
27
29
|
end
|
28
30
|
|
31
|
+
def delete(path, params = {})
|
32
|
+
execute(path, params, DELETE)
|
33
|
+
end
|
34
|
+
|
29
35
|
private
|
30
36
|
|
31
37
|
def execute(path, params, method)
|
@@ -55,6 +61,8 @@ module Trusona
|
|
55
61
|
def get(_uri, _params); end
|
56
62
|
|
57
63
|
def patch(_uri, _params); end
|
64
|
+
|
65
|
+
def delete(_uri, _params); end
|
58
66
|
end
|
59
67
|
end
|
60
68
|
end
|
@@ -10,12 +10,12 @@ module Trusona
|
|
10
10
|
|
11
11
|
def initialize(unverified)
|
12
12
|
@unverified = unverified
|
13
|
+
@code = unverified.code
|
13
14
|
@verified = verify
|
14
|
-
@code = unverified.code
|
15
15
|
end
|
16
16
|
|
17
17
|
def to_h
|
18
|
-
JSON.parse(@unverified.body)
|
18
|
+
JSON.parse(@unverified.body) rescue {}
|
19
19
|
end
|
20
20
|
|
21
21
|
def verified?
|
@@ -73,12 +73,7 @@ module Trusona
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def parse_method(method)
|
76
|
-
|
77
|
-
when Net::HTTP::Post.to_s
|
78
|
-
'POST'
|
79
|
-
else
|
80
|
-
'GET'
|
81
|
-
end
|
76
|
+
method::METHOD
|
82
77
|
end
|
83
78
|
end
|
84
79
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Trusona
|
4
|
+
module Resources
|
5
|
+
#
|
6
|
+
## A record representing a user in the Trusona API
|
7
|
+
class User < BaseResource
|
8
|
+
include Trusona::Helpers::KeyNormalizer
|
9
|
+
|
10
|
+
attr_reader :id, :user_identifier
|
11
|
+
|
12
|
+
def initialize(params = {})
|
13
|
+
super
|
14
|
+
@params = normalize_keys(params)
|
15
|
+
|
16
|
+
@user_identifier = @params[:user_identifier]
|
17
|
+
@id = @user_identifier
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -25,7 +25,6 @@ module Trusona
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def create(resource)
|
28
|
-
puts resource.to_json
|
29
28
|
raise Trusona::InvalidResourceError unless resource.valid?
|
30
29
|
handle(@client.post(collection_path, resource.to_json), resource)
|
31
30
|
end
|
@@ -35,6 +34,11 @@ module Trusona
|
|
35
34
|
handle(@client.patch(member_path(resource), resource.to_json), resource)
|
36
35
|
end
|
37
36
|
|
37
|
+
def delete(resource)
|
38
|
+
raise Trusona::InvalidResourceError unless resource.id
|
39
|
+
handle(@client.delete(member_path(resource)), resource)
|
40
|
+
end
|
41
|
+
|
38
42
|
def collection_path
|
39
43
|
@resource_path
|
40
44
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Trusona
|
4
|
+
module Services
|
5
|
+
##
|
6
|
+
# A service to interact with the User resource in the Trusona REST API
|
7
|
+
class UsersService < BaseService
|
8
|
+
def initialize(client: Trusona::Api::HTTPClient.new,
|
9
|
+
mapper: Trusona::Mappers::UserMapper.new)
|
10
|
+
super
|
11
|
+
@resource_path = '/api/v2/users'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/trusona/user.rb
ADDED
data/lib/trusona/version.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Trusona
|
4
|
+
module Workers
|
5
|
+
#
|
6
|
+
## Handles deactivating Users
|
7
|
+
class UserDeactivator
|
8
|
+
def initialize(service: Trusona::Services::UsersService.new)
|
9
|
+
@service = service
|
10
|
+
end
|
11
|
+
|
12
|
+
def deactivate(user_identifier)
|
13
|
+
if user_identifier.nil? || user_identifier.empty?
|
14
|
+
raise(ArgumentError, "The user's identifier is required")
|
15
|
+
end
|
16
|
+
|
17
|
+
user = Trusona::Resources::User.new(user_identifier: user_identifier)
|
18
|
+
@service.delete(user)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trusona
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Trusona
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
vbhUT8kOS+bZTalorEol37DD/P4Bbv0fMpw+ozetR2RmwhwTKPKJ5r0oQP6tiqHn
|
36
36
|
hQ==
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2018-
|
38
|
+
date: 2018-08-02 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: httparty
|
@@ -267,6 +267,7 @@ files:
|
|
267
267
|
- lib/trusona/mappers/trusonafication_mapper.rb
|
268
268
|
- lib/trusona/mappers/user_account_mapper.rb
|
269
269
|
- lib/trusona/mappers/user_identifier_mapper.rb
|
270
|
+
- lib/trusona/mappers/user_mapper.rb
|
270
271
|
- lib/trusona/resources/base_resource.rb
|
271
272
|
- lib/trusona/resources/device.rb
|
272
273
|
- lib/trusona/resources/device_user_binding.rb
|
@@ -274,6 +275,7 @@ files:
|
|
274
275
|
- lib/trusona/resources/identity_document.rb
|
275
276
|
- lib/trusona/resources/tru_code.rb
|
276
277
|
- lib/trusona/resources/trusonafication.rb
|
278
|
+
- lib/trusona/resources/user.rb
|
277
279
|
- lib/trusona/resources/user_account.rb
|
278
280
|
- lib/trusona/resources/user_identifier.rb
|
279
281
|
- lib/trusona/resources/validators.rb
|
@@ -286,9 +288,11 @@ files:
|
|
286
288
|
- lib/trusona/services/trusonafication_service.rb
|
287
289
|
- lib/trusona/services/user_accounts_service.rb
|
288
290
|
- lib/trusona/services/user_identifiers_service.rb
|
291
|
+
- lib/trusona/services/users_service.rb
|
289
292
|
- lib/trusona/tru_code.rb
|
290
293
|
- lib/trusona/tru_code_config.rb
|
291
294
|
- lib/trusona/trusonafication.rb
|
295
|
+
- lib/trusona/user.rb
|
292
296
|
- lib/trusona/user_account.rb
|
293
297
|
- lib/trusona/user_identifier.rb
|
294
298
|
- lib/trusona/version.rb
|
@@ -301,6 +305,7 @@ files:
|
|
301
305
|
- lib/trusona/workers/trusonafication_creator.rb
|
302
306
|
- lib/trusona/workers/trusonafication_finder.rb
|
303
307
|
- lib/trusona/workers/user_account_finder.rb
|
308
|
+
- lib/trusona/workers/user_deactivator.rb
|
304
309
|
- lib/trusona/workers/user_identifier_creator.rb
|
305
310
|
- lib/trusona/workers/user_identifier_finder.rb
|
306
311
|
- release-gem
|
metadata.gz.sig
CHANGED
Binary file
|