dina 0.5.9.1 → 0.6.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dina/authentication/authentication.rb +41 -11
- data/lib/dina/models/base_model.rb +7 -0
- data/lib/dina/version.rb +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fce6aa7545f2fe1bb7a340fd5ef64fb85ed56e50ad12b970a37cad5d0ba3bfc2
|
4
|
+
data.tar.gz: 532c2e30e916fe27a13b3739efccd5adb770f12e4b6706f2fed7eec4276b80b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e7ff2cd1b927195c3c17d7986e31bc60fad738dff9f7198029af2e822673b05d8ea5748db0e7aeb330fd1cd59366a5e75870556fd7cf7b74d8160b8558fa79b
|
7
|
+
data.tar.gz: 95f10aa0889f8eb03b782925458398ba1ed7c066df7cb5ff94c630710170a1fd567381334207242381d6e4736cb960c4fd4edad29b047ba7328ff86aa40ae5b1
|
@@ -61,6 +61,31 @@ module Dina
|
|
61
61
|
"Bearer " + access_token
|
62
62
|
end
|
63
63
|
|
64
|
+
# Flushes instance variables from memory
|
65
|
+
# but token store file content remains intact
|
66
|
+
def self.flush_variables
|
67
|
+
@token = nil
|
68
|
+
@token_store_file = nil
|
69
|
+
@user = nil
|
70
|
+
@password = nil
|
71
|
+
@server_name = nil
|
72
|
+
@client_id = nil
|
73
|
+
@endpoint_url = nil
|
74
|
+
Keycloak.auth_server_url = nil
|
75
|
+
Keycloak.realm = nil
|
76
|
+
end
|
77
|
+
|
78
|
+
# Saves default values in token store file
|
79
|
+
def self.flush_token
|
80
|
+
create_empty_token
|
81
|
+
end
|
82
|
+
|
83
|
+
# Flush instance variables and save default values in token store file
|
84
|
+
def self.flush
|
85
|
+
flush_variables
|
86
|
+
flush_token
|
87
|
+
end
|
88
|
+
|
64
89
|
class << self
|
65
90
|
attr_accessor :endpoint_url
|
66
91
|
|
@@ -68,7 +93,7 @@ module Dina
|
|
68
93
|
|
69
94
|
def access_token
|
70
95
|
begin
|
71
|
-
|
96
|
+
token[@server_name.to_sym][:access_token]
|
72
97
|
rescue
|
73
98
|
raise TokenStoreContentInvalid
|
74
99
|
end
|
@@ -76,7 +101,7 @@ module Dina
|
|
76
101
|
|
77
102
|
def refresh_token
|
78
103
|
begin
|
79
|
-
|
104
|
+
token[@server_name.to_sym][:refresh_token]
|
80
105
|
rescue
|
81
106
|
raise TokenStoreContentInvalid
|
82
107
|
end
|
@@ -84,7 +109,7 @@ module Dina
|
|
84
109
|
|
85
110
|
def auth_expiry
|
86
111
|
begin
|
87
|
-
|
112
|
+
token[@server_name.to_sym][:auth_expiry]
|
88
113
|
rescue
|
89
114
|
raise TokenStoreContentInvalid
|
90
115
|
end
|
@@ -119,28 +144,33 @@ module Dina
|
|
119
144
|
end
|
120
145
|
end
|
121
146
|
|
122
|
-
def
|
123
|
-
JSON.parse(::File.read(@token_store_file), symbolize_names: true)
|
147
|
+
def token
|
148
|
+
@token ||= JSON.parse(::File.read(@token_store_file), symbolize_names: true)
|
124
149
|
end
|
125
150
|
|
126
151
|
def create_empty_token
|
127
|
-
|
128
|
-
|
152
|
+
data = {}
|
153
|
+
data[@server_name.to_sym] = {
|
129
154
|
access_token: nil,
|
130
155
|
refresh_token: nil,
|
131
156
|
auth_expiry: nil
|
132
157
|
}
|
133
|
-
|
158
|
+
write_token(data: data)
|
134
159
|
end
|
135
160
|
|
136
161
|
def save_token(access_token:, refresh_token:, auth_expiry:)
|
137
|
-
|
138
|
-
|
162
|
+
data = JSON.parse(::File.read(@token_store_file), symbolize_names: true) rescue {}
|
163
|
+
data[@server_name.to_sym] = {
|
139
164
|
access_token: access_token,
|
140
165
|
refresh_token: refresh_token,
|
141
166
|
auth_expiry: auth_expiry
|
142
167
|
}
|
143
|
-
|
168
|
+
write_token(data: data)
|
169
|
+
end
|
170
|
+
|
171
|
+
def write_token(data:)
|
172
|
+
::File.write(@token_store_file, JSON.dump(data))
|
173
|
+
@token = data
|
144
174
|
end
|
145
175
|
|
146
176
|
end
|
@@ -8,21 +8,28 @@ module Dina
|
|
8
8
|
before_create :on_before_create
|
9
9
|
before_save :on_before_save
|
10
10
|
|
11
|
+
# Required by json_api_client
|
12
|
+
# Set by all child classes
|
11
13
|
def self.endpoint_path
|
12
14
|
end
|
13
15
|
|
16
|
+
# Required by json_api_client
|
14
17
|
def self.site
|
18
|
+
raise ConfigItemMissing, "Missing endpoint_url from config. Perhaps Dina::Authentication.config has not yet been called." unless Dina::Authentication.endpoint_url
|
15
19
|
Dina::Authentication.endpoint_url + "/" + endpoint_path
|
16
20
|
end
|
17
21
|
|
22
|
+
# injects keybloak bearer token with all json_api_client calls
|
18
23
|
def self.custom_headers
|
19
24
|
{ content_type: "application/vnd.api+json", authorization: Dina::Authentication.header }
|
20
25
|
end
|
21
26
|
|
27
|
+
# helper method for all child classes to retrieve records by group
|
22
28
|
def self.find_by_group(group, page: 1, per: 50)
|
23
29
|
self.where("group.groupName": group).page(page).per(per)
|
24
30
|
end
|
25
31
|
|
32
|
+
# helper method to retrieve all properties for a class
|
26
33
|
def self.properties
|
27
34
|
self.schema.instance_values["properties"]
|
28
35
|
end
|
data/lib/dina/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dina
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David P. Shorthouse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-12-
|
11
|
+
date: 2022-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json_api_client
|