login_radius 1.0.1 → 11.0.0.pre.beta
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 +5 -5
- data/LICENSE.txt +21 -0
- data/README.md +58 -0
- data/lib/login_radius.rb +27 -9
- data/lib/login_radius/api/account/account_api.rb +581 -0
- data/lib/login_radius/api/account/role_api.rb +330 -0
- data/lib/login_radius/api/account/sott_api.rb +47 -0
- data/lib/login_radius/api/advanced/configuration_api.rb +57 -0
- data/lib/login_radius/api/advanced/consent_management_api.rb +161 -0
- data/lib/login_radius/api/advanced/custom_object_api.rb +316 -0
- data/lib/login_radius/api/advanced/custom_registration_data_api.rb +195 -0
- data/lib/login_radius/api/advanced/multi_factor_authentication_api.rb +606 -0
- data/lib/login_radius/api/advanced/re_authentication_api.rb +243 -0
- data/lib/login_radius/api/advanced/web_hook_api.rb +101 -0
- data/lib/login_radius/api/authentication/authentication_api.rb +989 -0
- data/lib/login_radius/api/authentication/one_touch_login_api.rb +160 -0
- data/lib/login_radius/api/authentication/password_less_login_api.rb +158 -0
- data/lib/login_radius/api/authentication/phone_authentication_api.rb +329 -0
- data/lib/login_radius/api/authentication/pin_authentication_api.rb +316 -0
- data/lib/login_radius/api/authentication/risk_based_authentication_api.rb +286 -0
- data/lib/login_radius/api/authentication/smart_login_api.rb +146 -0
- data/lib/login_radius/api/social/native_social_api.rb +255 -0
- data/lib/login_radius/api/social/social_api.rb +806 -0
- data/lib/login_radius/error.rb +7 -0
- data/lib/login_radius/request_client.rb +295 -0
- data/lib/login_radius/response.rb +12 -0
- data/lib/login_radius/version.rb +2 -2
- data/login_radius.gemspec +28 -0
- metadata +47 -30
- data/lib/hash.rb +0 -13
- data/lib/login_radius/exception.rb +0 -4
- data/lib/login_radius/messages.rb +0 -41
- data/lib/login_radius/related.rb +0 -34
- data/lib/login_radius/user_profile.rb +0 -101
- data/lib/login_radius/user_profile_getters.rb +0 -152
- data/lib/string.rb +0 -8
@@ -0,0 +1,330 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Created by LoginRadius Development Team
|
4
|
+
# Copyright 2019 LoginRadius Inc. All rights reserved.
|
5
|
+
require_relative '../../request_client'
|
6
|
+
|
7
|
+
module LoginRadius
|
8
|
+
# RoleApi module
|
9
|
+
class RoleApi
|
10
|
+
include RequestClient
|
11
|
+
|
12
|
+
attr_accessor :site_name, :api_key, :api_secret
|
13
|
+
|
14
|
+
# Initializes a LoginRadius Account object with an apikey and secret
|
15
|
+
# Takes in a hash containing site_name(required), api_key(required), api_secret(required)
|
16
|
+
def initialize
|
17
|
+
@site_name = ENV['SITE_NAME']
|
18
|
+
@api_key = ENV['API_KEY']
|
19
|
+
@api_secret = ENV['API_SECRET']
|
20
|
+
raise LoginRadius::Error.new, "'site_name' is a required option for Account class initialization." \
|
21
|
+
unless @site_name != '' && @site_name != nil
|
22
|
+
raise LoginRadius::Error.new, "'api_key' is a required option for Account class initialization." \
|
23
|
+
unless @api_key != '' && @api_key != nil
|
24
|
+
raise LoginRadius::Error.new, "'api_secret is a required option for Account class initialization." \
|
25
|
+
unless @api_secret != '' && @api_secret != nil
|
26
|
+
end
|
27
|
+
|
28
|
+
# API is used to retrieve all the assigned roles of a particular User.
|
29
|
+
#
|
30
|
+
# @param uid - UID, the unified identifier for each user account
|
31
|
+
#
|
32
|
+
# @return Response containing Definition of Complete Roles data
|
33
|
+
# 18.6
|
34
|
+
def get_roles_by_uid(uid)
|
35
|
+
if isNullOrWhiteSpace(uid)
|
36
|
+
raise LoginRadius::Error.new, getValidationMessage('uid')
|
37
|
+
end
|
38
|
+
|
39
|
+
query_parameters = {}
|
40
|
+
query_parameters['apiKey'] = @api_key
|
41
|
+
query_parameters['apiSecret'] = @api_secret
|
42
|
+
|
43
|
+
resource_path = 'identity/v2/manage/account/' + uid + '/role'
|
44
|
+
get_request(resource_path, query_parameters, nil)
|
45
|
+
end
|
46
|
+
|
47
|
+
# This API is used to assign your desired roles to a given user.
|
48
|
+
#
|
49
|
+
# @param account_roles_model - Model Class containing Definition of payload for Create Role API
|
50
|
+
# @param uid - UID, the unified identifier for each user account
|
51
|
+
#
|
52
|
+
# @return Response containing Definition of Complete Roles data
|
53
|
+
# 18.7
|
54
|
+
def assign_roles_by_uid(account_roles_model, uid)
|
55
|
+
if account_roles_model.blank?
|
56
|
+
raise LoginRadius::Error.new, getValidationMessage('account_roles_model')
|
57
|
+
end
|
58
|
+
if isNullOrWhiteSpace(uid)
|
59
|
+
raise LoginRadius::Error.new, getValidationMessage('uid')
|
60
|
+
end
|
61
|
+
|
62
|
+
query_parameters = {}
|
63
|
+
query_parameters['apiKey'] = @api_key
|
64
|
+
query_parameters['apiSecret'] = @api_secret
|
65
|
+
|
66
|
+
resource_path = 'identity/v2/manage/account/' + uid + '/role'
|
67
|
+
put_request(resource_path, query_parameters, account_roles_model)
|
68
|
+
end
|
69
|
+
|
70
|
+
# This API is used to unassign roles from a user.
|
71
|
+
#
|
72
|
+
# @param account_roles_model - Model Class containing Definition of payload for Create Role API
|
73
|
+
# @param uid - UID, the unified identifier for each user account
|
74
|
+
#
|
75
|
+
# @return Response containing Definition of Delete Request
|
76
|
+
# 18.8
|
77
|
+
def unassign_roles_by_uid(account_roles_model, uid)
|
78
|
+
if account_roles_model.blank?
|
79
|
+
raise LoginRadius::Error.new, getValidationMessage('account_roles_model')
|
80
|
+
end
|
81
|
+
if isNullOrWhiteSpace(uid)
|
82
|
+
raise LoginRadius::Error.new, getValidationMessage('uid')
|
83
|
+
end
|
84
|
+
|
85
|
+
query_parameters = {}
|
86
|
+
query_parameters['apiKey'] = @api_key
|
87
|
+
query_parameters['apiSecret'] = @api_secret
|
88
|
+
|
89
|
+
resource_path = 'identity/v2/manage/account/' + uid + '/role'
|
90
|
+
delete_request(resource_path, query_parameters, account_roles_model)
|
91
|
+
end
|
92
|
+
|
93
|
+
# This API Gets the contexts that have been configured and the associated roles and permissions.
|
94
|
+
#
|
95
|
+
# @param uid - UID, the unified identifier for each user account
|
96
|
+
#
|
97
|
+
# @return Complete user RoleContext data
|
98
|
+
# 18.9
|
99
|
+
def get_role_context_by_uid(uid)
|
100
|
+
if isNullOrWhiteSpace(uid)
|
101
|
+
raise LoginRadius::Error.new, getValidationMessage('uid')
|
102
|
+
end
|
103
|
+
|
104
|
+
query_parameters = {}
|
105
|
+
query_parameters['apiKey'] = @api_key
|
106
|
+
query_parameters['apiSecret'] = @api_secret
|
107
|
+
|
108
|
+
resource_path = 'identity/v2/manage/account/' + uid + '/rolecontext'
|
109
|
+
get_request(resource_path, query_parameters, nil)
|
110
|
+
end
|
111
|
+
|
112
|
+
# The API is used to retrieve role context by the context name.
|
113
|
+
#
|
114
|
+
# @param context_name - Name of context
|
115
|
+
#
|
116
|
+
# @return Complete user RoleContext data
|
117
|
+
# 18.10
|
118
|
+
def get_role_context_by_context_name(context_name)
|
119
|
+
if isNullOrWhiteSpace(context_name)
|
120
|
+
raise LoginRadius::Error.new, getValidationMessage('context_name')
|
121
|
+
end
|
122
|
+
|
123
|
+
query_parameters = {}
|
124
|
+
query_parameters['apiKey'] = @api_key
|
125
|
+
query_parameters['apiSecret'] = @api_secret
|
126
|
+
|
127
|
+
resource_path = 'identity/v2/manage/account/rolecontext/' + context_name
|
128
|
+
get_request(resource_path, query_parameters, nil)
|
129
|
+
end
|
130
|
+
|
131
|
+
# This API creates a Context with a set of Roles
|
132
|
+
#
|
133
|
+
# @param account_role_context_model - Model Class containing Definition of RoleContext payload
|
134
|
+
# @param uid - UID, the unified identifier for each user account
|
135
|
+
#
|
136
|
+
# @return Complete user RoleContext data
|
137
|
+
# 18.11
|
138
|
+
def update_role_context_by_uid(account_role_context_model, uid)
|
139
|
+
if account_role_context_model.blank?
|
140
|
+
raise LoginRadius::Error.new, getValidationMessage('account_role_context_model')
|
141
|
+
end
|
142
|
+
if isNullOrWhiteSpace(uid)
|
143
|
+
raise LoginRadius::Error.new, getValidationMessage('uid')
|
144
|
+
end
|
145
|
+
|
146
|
+
query_parameters = {}
|
147
|
+
query_parameters['apiKey'] = @api_key
|
148
|
+
query_parameters['apiSecret'] = @api_secret
|
149
|
+
|
150
|
+
resource_path = 'identity/v2/manage/account/' + uid + '/rolecontext'
|
151
|
+
put_request(resource_path, query_parameters, account_role_context_model)
|
152
|
+
end
|
153
|
+
|
154
|
+
# This API Deletes the specified Role Context
|
155
|
+
#
|
156
|
+
# @param context_name - Name of context
|
157
|
+
# @param uid - UID, the unified identifier for each user account
|
158
|
+
#
|
159
|
+
# @return Response containing Definition of Delete Request
|
160
|
+
# 18.12
|
161
|
+
def delete_role_context_by_uid(context_name, uid)
|
162
|
+
if isNullOrWhiteSpace(context_name)
|
163
|
+
raise LoginRadius::Error.new, getValidationMessage('context_name')
|
164
|
+
end
|
165
|
+
if isNullOrWhiteSpace(uid)
|
166
|
+
raise LoginRadius::Error.new, getValidationMessage('uid')
|
167
|
+
end
|
168
|
+
|
169
|
+
query_parameters = {}
|
170
|
+
query_parameters['apiKey'] = @api_key
|
171
|
+
query_parameters['apiSecret'] = @api_secret
|
172
|
+
|
173
|
+
resource_path = 'identity/v2/manage/account/' + uid + '/rolecontext/' + context_name
|
174
|
+
delete_request(resource_path, query_parameters, nil)
|
175
|
+
end
|
176
|
+
|
177
|
+
# This API Deletes the specified Role from a Context.
|
178
|
+
#
|
179
|
+
# @param context_name - Name of context
|
180
|
+
# @param role_context_remove_role_model - Model Class containing Definition of payload for RoleContextRemoveRole API
|
181
|
+
# @param uid - UID, the unified identifier for each user account
|
182
|
+
#
|
183
|
+
# @return Response containing Definition of Delete Request
|
184
|
+
# 18.13
|
185
|
+
def delete_roles_from_role_context_by_uid(context_name, role_context_remove_role_model, uid)
|
186
|
+
if isNullOrWhiteSpace(context_name)
|
187
|
+
raise LoginRadius::Error.new, getValidationMessage('context_name')
|
188
|
+
end
|
189
|
+
if role_context_remove_role_model.blank?
|
190
|
+
raise LoginRadius::Error.new, getValidationMessage('role_context_remove_role_model')
|
191
|
+
end
|
192
|
+
if isNullOrWhiteSpace(uid)
|
193
|
+
raise LoginRadius::Error.new, getValidationMessage('uid')
|
194
|
+
end
|
195
|
+
|
196
|
+
query_parameters = {}
|
197
|
+
query_parameters['apiKey'] = @api_key
|
198
|
+
query_parameters['apiSecret'] = @api_secret
|
199
|
+
|
200
|
+
resource_path = 'identity/v2/manage/account/' + uid + '/rolecontext/' + context_name + '/role'
|
201
|
+
delete_request(resource_path, query_parameters, role_context_remove_role_model)
|
202
|
+
end
|
203
|
+
|
204
|
+
# This API Deletes Additional Permissions from Context.
|
205
|
+
#
|
206
|
+
# @param context_name - Name of context
|
207
|
+
# @param role_context_additional_permission_remove_role_model - Model Class containing Definition of payload for RoleContextAdditionalPermissionRemoveRole API
|
208
|
+
# @param uid - UID, the unified identifier for each user account
|
209
|
+
#
|
210
|
+
# @return Response containing Definition of Delete Request
|
211
|
+
# 18.14
|
212
|
+
def delete_additional_permission_from_role_context_by_uid(context_name, role_context_additional_permission_remove_role_model, uid)
|
213
|
+
if isNullOrWhiteSpace(context_name)
|
214
|
+
raise LoginRadius::Error.new, getValidationMessage('context_name')
|
215
|
+
end
|
216
|
+
if role_context_additional_permission_remove_role_model.blank?
|
217
|
+
raise LoginRadius::Error.new, getValidationMessage('role_context_additional_permission_remove_role_model')
|
218
|
+
end
|
219
|
+
if isNullOrWhiteSpace(uid)
|
220
|
+
raise LoginRadius::Error.new, getValidationMessage('uid')
|
221
|
+
end
|
222
|
+
|
223
|
+
query_parameters = {}
|
224
|
+
query_parameters['apiKey'] = @api_key
|
225
|
+
query_parameters['apiSecret'] = @api_secret
|
226
|
+
|
227
|
+
resource_path = 'identity/v2/manage/account/' + uid + '/rolecontext/' + context_name + '/additionalpermission'
|
228
|
+
delete_request(resource_path, query_parameters, role_context_additional_permission_remove_role_model)
|
229
|
+
end
|
230
|
+
|
231
|
+
# This API retrieves the complete list of created roles with permissions of your app.
|
232
|
+
#
|
233
|
+
#
|
234
|
+
# @return Complete user Roles List data
|
235
|
+
# 41.1
|
236
|
+
def get_roles_list()
|
237
|
+
|
238
|
+
query_parameters = {}
|
239
|
+
query_parameters['apiKey'] = @api_key
|
240
|
+
query_parameters['apiSecret'] = @api_secret
|
241
|
+
|
242
|
+
resource_path = 'identity/v2/manage/role'
|
243
|
+
get_request(resource_path, query_parameters, nil)
|
244
|
+
end
|
245
|
+
|
246
|
+
# This API creates a role with permissions.
|
247
|
+
#
|
248
|
+
# @param roles_model - Model Class containing Definition of payload for Roles API
|
249
|
+
#
|
250
|
+
# @return Complete user Roles data
|
251
|
+
# 41.2
|
252
|
+
def create_roles(roles_model)
|
253
|
+
if roles_model.blank?
|
254
|
+
raise LoginRadius::Error.new, getValidationMessage('roles_model')
|
255
|
+
end
|
256
|
+
|
257
|
+
query_parameters = {}
|
258
|
+
query_parameters['apiKey'] = @api_key
|
259
|
+
query_parameters['apiSecret'] = @api_secret
|
260
|
+
|
261
|
+
resource_path = 'identity/v2/manage/role'
|
262
|
+
post_request(resource_path, query_parameters, roles_model)
|
263
|
+
end
|
264
|
+
|
265
|
+
# This API is used to delete the role.
|
266
|
+
#
|
267
|
+
# @param role - Created RoleName
|
268
|
+
#
|
269
|
+
# @return Response containing Definition of Delete Request
|
270
|
+
# 41.3
|
271
|
+
def delete_role(role)
|
272
|
+
if isNullOrWhiteSpace(role)
|
273
|
+
raise LoginRadius::Error.new, getValidationMessage('role')
|
274
|
+
end
|
275
|
+
|
276
|
+
query_parameters = {}
|
277
|
+
query_parameters['apiKey'] = @api_key
|
278
|
+
query_parameters['apiSecret'] = @api_secret
|
279
|
+
|
280
|
+
resource_path = 'identity/v2/manage/role/' + role
|
281
|
+
delete_request(resource_path, query_parameters, nil)
|
282
|
+
end
|
283
|
+
|
284
|
+
# This API is used to add permissions to a given role.
|
285
|
+
#
|
286
|
+
# @param permissions_model - Model Class containing Definition for PermissionsModel Property
|
287
|
+
# @param role - Created RoleName
|
288
|
+
#
|
289
|
+
# @return Response containing Definition of Complete role data
|
290
|
+
# 41.4
|
291
|
+
def add_role_permissions(permissions_model, role)
|
292
|
+
if permissions_model.blank?
|
293
|
+
raise LoginRadius::Error.new, getValidationMessage('permissions_model')
|
294
|
+
end
|
295
|
+
if isNullOrWhiteSpace(role)
|
296
|
+
raise LoginRadius::Error.new, getValidationMessage('role')
|
297
|
+
end
|
298
|
+
|
299
|
+
query_parameters = {}
|
300
|
+
query_parameters['apiKey'] = @api_key
|
301
|
+
query_parameters['apiSecret'] = @api_secret
|
302
|
+
|
303
|
+
resource_path = 'identity/v2/manage/role/' + role + '/permission'
|
304
|
+
put_request(resource_path, query_parameters, permissions_model)
|
305
|
+
end
|
306
|
+
|
307
|
+
# API is used to remove permissions from a role.
|
308
|
+
#
|
309
|
+
# @param permissions_model - Model Class containing Definition for PermissionsModel Property
|
310
|
+
# @param role - Created RoleName
|
311
|
+
#
|
312
|
+
# @return Response containing Definition of Complete role data
|
313
|
+
# 41.5
|
314
|
+
def remove_role_permissions(permissions_model, role)
|
315
|
+
if permissions_model.blank?
|
316
|
+
raise LoginRadius::Error.new, getValidationMessage('permissions_model')
|
317
|
+
end
|
318
|
+
if isNullOrWhiteSpace(role)
|
319
|
+
raise LoginRadius::Error.new, getValidationMessage('role')
|
320
|
+
end
|
321
|
+
|
322
|
+
query_parameters = {}
|
323
|
+
query_parameters['apiKey'] = @api_key
|
324
|
+
query_parameters['apiSecret'] = @api_secret
|
325
|
+
|
326
|
+
resource_path = 'identity/v2/manage/role/' + role + '/permission'
|
327
|
+
delete_request(resource_path, query_parameters, permissions_model)
|
328
|
+
end
|
329
|
+
end
|
330
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Created by LoginRadius Development Team
|
4
|
+
# Copyright 2019 LoginRadius Inc. All rights reserved.
|
5
|
+
require_relative '../../request_client'
|
6
|
+
|
7
|
+
module LoginRadius
|
8
|
+
# SottApi module
|
9
|
+
class SottApi
|
10
|
+
include RequestClient
|
11
|
+
|
12
|
+
attr_accessor :site_name, :api_key, :api_secret
|
13
|
+
|
14
|
+
# Initializes a LoginRadius Account object with an apikey and secret
|
15
|
+
# Takes in a hash containing site_name(required), api_key(required), api_secret(required)
|
16
|
+
def initialize
|
17
|
+
@site_name = ENV['SITE_NAME']
|
18
|
+
@api_key = ENV['API_KEY']
|
19
|
+
@api_secret = ENV['API_SECRET']
|
20
|
+
raise LoginRadius::Error.new, "'site_name' is a required option for Account class initialization." \
|
21
|
+
unless @site_name != '' && @site_name != nil
|
22
|
+
raise LoginRadius::Error.new, "'api_key' is a required option for Account class initialization." \
|
23
|
+
unless @api_key != '' && @api_key != nil
|
24
|
+
raise LoginRadius::Error.new, "'api_secret is a required option for Account class initialization." \
|
25
|
+
unless @api_secret != '' && @api_secret != nil
|
26
|
+
end
|
27
|
+
|
28
|
+
# This API allows you to generate SOTT with a given expiration time.
|
29
|
+
#
|
30
|
+
# @param time_difference - The time difference you would like to pass, If you not pass difference then the default value is 10 minutes
|
31
|
+
#
|
32
|
+
# @return Sott data For Registration
|
33
|
+
# 18.28
|
34
|
+
def generate_sott(time_difference = '')
|
35
|
+
|
36
|
+
query_parameters = {}
|
37
|
+
query_parameters['apiKey'] = @api_key
|
38
|
+
query_parameters['apiSecret'] = @api_secret
|
39
|
+
unless time_difference == false
|
40
|
+
query_parameters['timeDifference'] = time_difference
|
41
|
+
end
|
42
|
+
|
43
|
+
resource_path = 'identity/v2/manage/account/sott'
|
44
|
+
get_request(resource_path, query_parameters, nil)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Created by LoginRadius Development Team
|
4
|
+
# Copyright 2019 LoginRadius Inc. All rights reserved.
|
5
|
+
require_relative '../../request_client'
|
6
|
+
|
7
|
+
module LoginRadius
|
8
|
+
# ConfigurationApi module
|
9
|
+
class ConfigurationApi
|
10
|
+
include RequestClient
|
11
|
+
|
12
|
+
attr_accessor :site_name, :api_key, :api_secret
|
13
|
+
|
14
|
+
# Initializes a LoginRadius Account object with an apikey and secret
|
15
|
+
# Takes in a hash containing site_name(required), api_key(required), api_secret(required)
|
16
|
+
def initialize
|
17
|
+
@site_name = ENV['SITE_NAME']
|
18
|
+
@api_key = ENV['API_KEY']
|
19
|
+
@api_secret = ENV['API_SECRET']
|
20
|
+
raise LoginRadius::Error.new, "'site_name' is a required option for Account class initialization." \
|
21
|
+
unless @site_name != '' && @site_name != nil
|
22
|
+
raise LoginRadius::Error.new, "'api_key' is a required option for Account class initialization." \
|
23
|
+
unless @api_key != '' && @api_key != nil
|
24
|
+
raise LoginRadius::Error.new, "'api_secret is a required option for Account class initialization." \
|
25
|
+
unless @api_secret != '' && @api_secret != nil
|
26
|
+
end
|
27
|
+
# This API is used to get the configurations which are set in the LoginRadius Dashboard for a particular LoginRadius site/environment
|
28
|
+
#
|
29
|
+
# @return Response containing LoginRadius App configurations which are set in the LoginRadius Dashboard for a particular LoginRadius site/environment
|
30
|
+
# 100
|
31
|
+
def get_configurations()
|
32
|
+
resource_path = 'ciam/appinfo'
|
33
|
+
query_parameters = {}
|
34
|
+
query_parameters['apikey'] = @api_key
|
35
|
+
|
36
|
+
get_request(resource_path, query_parameters, nil)
|
37
|
+
end
|
38
|
+
|
39
|
+
# This API allows you to query your LoginRadius account for basic server information and server time information which is useful when generating an SOTT token.
|
40
|
+
#
|
41
|
+
# @param time_difference - The time difference you would like to pass, If you not pass difference then the default value is 10 minutes
|
42
|
+
#
|
43
|
+
# @return Response containing Definition of Complete service info data
|
44
|
+
# 3.1
|
45
|
+
def get_server_info(time_difference = '')
|
46
|
+
|
47
|
+
query_parameters = {}
|
48
|
+
query_parameters['apiKey'] = @api_key
|
49
|
+
unless time_difference == false
|
50
|
+
query_parameters['timeDifference'] = time_difference
|
51
|
+
end
|
52
|
+
|
53
|
+
resource_path = 'identity/v2/serverinfo'
|
54
|
+
get_request(resource_path, query_parameters, nil)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,161 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Created by LoginRadius Development Team
|
4
|
+
# Copyright 2019 LoginRadius Inc. All rights reserved.
|
5
|
+
require_relative '../../request_client'
|
6
|
+
|
7
|
+
module LoginRadius
|
8
|
+
# ConsentManagementApi module
|
9
|
+
class ConsentManagementApi
|
10
|
+
include RequestClient
|
11
|
+
|
12
|
+
attr_accessor :site_name, :api_key, :api_secret
|
13
|
+
|
14
|
+
# Initializes a LoginRadius Account object with an apikey and secret
|
15
|
+
# Takes in a hash containing site_name(required), api_key(required), api_secret(required)
|
16
|
+
def initialize
|
17
|
+
@site_name = ENV['SITE_NAME']
|
18
|
+
@api_key = ENV['API_KEY']
|
19
|
+
@api_secret = ENV['API_SECRET']
|
20
|
+
raise LoginRadius::Error.new, "'site_name' is a required option for Account class initialization." \
|
21
|
+
unless @site_name != '' && @site_name != nil
|
22
|
+
raise LoginRadius::Error.new, "'api_key' is a required option for Account class initialization." \
|
23
|
+
unless @api_key != '' && @api_key != nil
|
24
|
+
raise LoginRadius::Error.new, "'api_secret is a required option for Account class initialization." \
|
25
|
+
unless @api_secret != '' && @api_secret != nil
|
26
|
+
end
|
27
|
+
|
28
|
+
# This API is used to get the Consent logs of the user.
|
29
|
+
#
|
30
|
+
# @param uid - UID, the unified identifier for each user account
|
31
|
+
#
|
32
|
+
# @return Response containing consent logs
|
33
|
+
# 18.37
|
34
|
+
def get_consent_logs_by_uid(uid)
|
35
|
+
if isNullOrWhiteSpace(uid)
|
36
|
+
raise LoginRadius::Error.new, getValidationMessage('uid')
|
37
|
+
end
|
38
|
+
|
39
|
+
query_parameters = {}
|
40
|
+
query_parameters['apiKey'] = @api_key
|
41
|
+
query_parameters['apiSecret'] = @api_secret
|
42
|
+
|
43
|
+
resource_path = 'identity/v2/manage/account/' + uid + '/consent/logs'
|
44
|
+
get_request(resource_path, query_parameters, nil)
|
45
|
+
end
|
46
|
+
|
47
|
+
# This API is to submit consent form using consent token.
|
48
|
+
#
|
49
|
+
# @param consent_token - The consent token received after login error 1226
|
50
|
+
# @param consent_submit_model - Model class containing list of multiple consent
|
51
|
+
#
|
52
|
+
# @return Response containing User Profile Data and access token
|
53
|
+
# 43.1
|
54
|
+
def submit_consent_by_consent_token(consent_token, consent_submit_model)
|
55
|
+
if isNullOrWhiteSpace(consent_token)
|
56
|
+
raise LoginRadius::Error.new, getValidationMessage('consent_token')
|
57
|
+
end
|
58
|
+
if consent_submit_model.blank?
|
59
|
+
raise LoginRadius::Error.new, getValidationMessage('consent_submit_model')
|
60
|
+
end
|
61
|
+
|
62
|
+
query_parameters = {}
|
63
|
+
query_parameters['apiKey'] = @api_key
|
64
|
+
query_parameters['consentToken'] = consent_token
|
65
|
+
|
66
|
+
resource_path = 'identity/v2/auth/consent'
|
67
|
+
post_request(resource_path, query_parameters, consent_submit_model)
|
68
|
+
end
|
69
|
+
|
70
|
+
# This API is used to fetch consent logs.
|
71
|
+
#
|
72
|
+
# @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
|
73
|
+
#
|
74
|
+
# @return Response containing consent logs
|
75
|
+
# 43.2
|
76
|
+
def get_consent_logs(access_token)
|
77
|
+
if isNullOrWhiteSpace(access_token)
|
78
|
+
raise LoginRadius::Error.new, getValidationMessage('access_token')
|
79
|
+
end
|
80
|
+
|
81
|
+
query_parameters = {}
|
82
|
+
query_parameters['access_token'] = access_token
|
83
|
+
query_parameters['apiKey'] = @api_key
|
84
|
+
|
85
|
+
resource_path = 'identity/v2/auth/consent/logs'
|
86
|
+
get_request(resource_path, query_parameters, nil)
|
87
|
+
end
|
88
|
+
|
89
|
+
# API to provide a way to end user to submit a consent form for particular event type.
|
90
|
+
#
|
91
|
+
# @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
|
92
|
+
# @param consent_submit_model - Model class containing list of multiple consent
|
93
|
+
#
|
94
|
+
# @return Response containing Definition for Complete profile data
|
95
|
+
# 43.3
|
96
|
+
def submit_consent_by_access_token(access_token, consent_submit_model)
|
97
|
+
if isNullOrWhiteSpace(access_token)
|
98
|
+
raise LoginRadius::Error.new, getValidationMessage('access_token')
|
99
|
+
end
|
100
|
+
if consent_submit_model.blank?
|
101
|
+
raise LoginRadius::Error.new, getValidationMessage('consent_submit_model')
|
102
|
+
end
|
103
|
+
|
104
|
+
query_parameters = {}
|
105
|
+
query_parameters['access_token'] = access_token
|
106
|
+
query_parameters['apiKey'] = @api_key
|
107
|
+
|
108
|
+
resource_path = 'identity/v2/auth/consent/profile'
|
109
|
+
post_request(resource_path, query_parameters, consent_submit_model)
|
110
|
+
end
|
111
|
+
|
112
|
+
# This API is used to check if consent is submitted for a particular event or not.
|
113
|
+
#
|
114
|
+
# @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
|
115
|
+
# @param event - Allowed events: Login, Register, UpdateProfile, ResetPassword, ChangePassword, emailVerification, AddEmail, RemoveEmail, BlockAccount, DeleteAccount, SetUsername, AssignRoles, UnassignRoles, SetPassword, LinkAccount, UnlinkAccount, UpdatePhoneId, VerifyPhoneNumber, CreateCustomObject, UpdateCustomobject, DeleteCustomObject
|
116
|
+
# @param is_custom - true/false
|
117
|
+
#
|
118
|
+
# @return Response containing consent profile
|
119
|
+
# 43.4
|
120
|
+
def verify_consent_by_access_token(access_token, event, is_custom)
|
121
|
+
if isNullOrWhiteSpace(access_token)
|
122
|
+
raise LoginRadius::Error.new, getValidationMessage('access_token')
|
123
|
+
end
|
124
|
+
if isNullOrWhiteSpace(event)
|
125
|
+
raise LoginRadius::Error.new, getValidationMessage('event')
|
126
|
+
end
|
127
|
+
|
128
|
+
query_parameters = {}
|
129
|
+
query_parameters['access_token'] = access_token
|
130
|
+
query_parameters['apiKey'] = @api_key
|
131
|
+
query_parameters['event'] = event
|
132
|
+
query_parameters['isCustom'] = is_custom
|
133
|
+
|
134
|
+
resource_path = 'identity/v2/auth/consent/verify'
|
135
|
+
get_request(resource_path, query_parameters, nil)
|
136
|
+
end
|
137
|
+
|
138
|
+
# This API is to update consents using access token.
|
139
|
+
#
|
140
|
+
# @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
|
141
|
+
# @param consent_update_model - Model class containg list of multiple consent
|
142
|
+
#
|
143
|
+
# @return Response containing consent profile
|
144
|
+
# 43.5
|
145
|
+
def update_consent_profile_by_access_token(access_token, consent_update_model)
|
146
|
+
if isNullOrWhiteSpace(access_token)
|
147
|
+
raise LoginRadius::Error.new, getValidationMessage('access_token')
|
148
|
+
end
|
149
|
+
if consent_update_model.blank?
|
150
|
+
raise LoginRadius::Error.new, getValidationMessage('consent_update_model')
|
151
|
+
end
|
152
|
+
|
153
|
+
query_parameters = {}
|
154
|
+
query_parameters['access_token'] = access_token
|
155
|
+
query_parameters['apiKey'] = @api_key
|
156
|
+
|
157
|
+
resource_path = 'identity/v2/auth/consent'
|
158
|
+
put_request(resource_path, query_parameters, consent_update_model)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|