trusona 0.18.2 → 0.19.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Build Status](https://travis-ci.com/lighthauz/trusona-server-sdk-ruby.svg?token=2f2CMAnop6pxz1LFFPky&branch=master)](https://travis-ci.com/lighthauz/trusona-server-sdk-ruby)
|
8
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/ec9f4f928125c278fa39/maintainability)](https://codeclimate.com/github/trusona/trusona-server-sdk-ruby/maintainability)
|
9
|
+
[![Test Coverage](https://api.codeclimate.com/v1/badges/ec9f4f928125c278fa39/test_coverage)](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
|