onelogin 1.5.0 → 1.6.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
- data/.github/workflows/git-secrets-public.yml +55 -0
- data/README.md +60 -2
- data/examples/Gemfile.lock +10 -6
- data/examples/another-get-all-login-events-of-last-day-to-csv.rb +141 -0
- data/examples/events-to-csv.rb +3 -3
- data/examples/get-all-login-events-of-last-day-to-csv.rb +88 -0
- data/examples/rails-custom-login-page/Gemfile +2 -2
- data/examples/rails-custom-login-page/Gemfile.lock +20 -16
- data/examples/rails-custom-login-page/README.md +32 -0
- data/examples/rails-custom-login-page/app/controllers/home_controller.rb +1 -0
- data/examples/rails-custom-login-page/app/views/dashboard/index.html.erb +2 -9
- data/examples/rails-custom-login-page/app/views/home/index.html.erb +71 -8
- data/examples/rails-custom-login-page/config/initializers/onelogin.rb +3 -1
- data/examples/rails-custom-login-page/config/secrets.yml.sample +2 -0
- data/lib/onelogin/api/client.rb +608 -16
- data/lib/onelogin/api/cursor.rb +4 -3
- data/lib/onelogin/api/models/connector_basic.rb +20 -0
- data/lib/onelogin/api/models/event.rb +1 -1
- data/lib/onelogin/api/models/onelogin_app.rb +46 -6
- data/lib/onelogin/api/models/onelogin_app_basic.rb +51 -0
- data/lib/onelogin/api/models/onelogin_app_v1.rb +22 -0
- data/lib/onelogin/api/models/user.rb +1 -1
- data/lib/onelogin/api/models.rb +3 -0
- data/lib/onelogin/api/util/constants.rb +15 -1
- data/lib/onelogin/version.rb +1 -1
- data/onelogin.gemspec +2 -2
- metadata +13 -7
data/lib/onelogin/api/client.rb
CHANGED
@@ -47,6 +47,8 @@ module OneLogin
|
|
47
47
|
self.class.http_proxy options[:proxy_host], options[:proxy_port], options[:proxy_user], options[:proxy_pass]
|
48
48
|
end
|
49
49
|
|
50
|
+
self.class.default_options.update(verify: false)
|
51
|
+
|
50
52
|
validate_config
|
51
53
|
|
52
54
|
@user_agent = DEFAULT_USER_AGENT
|
@@ -342,7 +344,7 @@ module OneLogin
|
|
342
344
|
params: params
|
343
345
|
}
|
344
346
|
|
345
|
-
return Cursor.new(self
|
347
|
+
return Cursor.new(self, url_for(GET_USERS_URL), options)
|
346
348
|
|
347
349
|
rescue Exception => e
|
348
350
|
@error = '500'
|
@@ -364,6 +366,12 @@ module OneLogin
|
|
364
366
|
prepare_token
|
365
367
|
|
366
368
|
begin
|
369
|
+
if user_id.nil? || user_id.to_s.empty?
|
370
|
+
@error = '400'
|
371
|
+
@error_description = "user_id is required"
|
372
|
+
@error_attribute = "user_id"
|
373
|
+
return
|
374
|
+
end
|
367
375
|
|
368
376
|
url = url_for(GET_USER_URL, user_id)
|
369
377
|
|
@@ -401,13 +409,20 @@ module OneLogin
|
|
401
409
|
prepare_token
|
402
410
|
|
403
411
|
begin
|
412
|
+
if user_id.nil? || user_id.to_s.empty?
|
413
|
+
@error = '400'
|
414
|
+
@error_description = "user_id is required"
|
415
|
+
@error_attribute = "user_id"
|
416
|
+
return
|
417
|
+
end
|
418
|
+
|
404
419
|
options = {
|
405
420
|
model: OneLogin::Api::Models::App,
|
406
421
|
headers: authorized_headers,
|
407
422
|
max_results: @max_results
|
408
423
|
}
|
409
424
|
|
410
|
-
return Cursor.new(self
|
425
|
+
return Cursor.new(self, url_for(GET_APPS_FOR_USER_URL, user_id), options)
|
411
426
|
|
412
427
|
rescue Exception => e
|
413
428
|
@error = '500'
|
@@ -429,6 +444,13 @@ module OneLogin
|
|
429
444
|
prepare_token
|
430
445
|
|
431
446
|
begin
|
447
|
+
if user_id.nil? || user_id.to_s.empty?
|
448
|
+
@error = '400'
|
449
|
+
@error_description = "user_id is required"
|
450
|
+
@error_attribute = "user_id"
|
451
|
+
return
|
452
|
+
end
|
453
|
+
|
432
454
|
url = url_for(GET_ROLES_FOR_USER_URL, user_id)
|
433
455
|
|
434
456
|
response = self.class.get(
|
@@ -552,6 +574,13 @@ module OneLogin
|
|
552
574
|
prepare_token
|
553
575
|
|
554
576
|
begin
|
577
|
+
if user_id.nil? || user_id.to_s.empty?
|
578
|
+
@error = '400'
|
579
|
+
@error_description = "user_id is required"
|
580
|
+
@error_attribute = "user_id"
|
581
|
+
return
|
582
|
+
end
|
583
|
+
|
555
584
|
url = url_for(UPDATE_USER_URL, user_id)
|
556
585
|
|
557
586
|
response = self.class.put(
|
@@ -591,6 +620,13 @@ module OneLogin
|
|
591
620
|
prepare_token
|
592
621
|
|
593
622
|
begin
|
623
|
+
if user_id.nil? || user_id.to_s.empty?
|
624
|
+
@error = '400'
|
625
|
+
@error_description = "user_id is required"
|
626
|
+
@error_attribute = "user_id"
|
627
|
+
return
|
628
|
+
end
|
629
|
+
|
594
630
|
url = url_for(ADD_ROLE_TO_USER_URL, user_id)
|
595
631
|
|
596
632
|
data = {
|
@@ -631,6 +667,13 @@ module OneLogin
|
|
631
667
|
prepare_token
|
632
668
|
|
633
669
|
begin
|
670
|
+
if user_id.nil? || user_id.to_s.empty?
|
671
|
+
@error = '400'
|
672
|
+
@error_description = "user_id is required"
|
673
|
+
@error_attribute = "user_id"
|
674
|
+
return
|
675
|
+
end
|
676
|
+
|
634
677
|
url = url_for(DELETE_ROLE_TO_USER_URL, user_id)
|
635
678
|
|
636
679
|
data = {
|
@@ -673,6 +716,13 @@ module OneLogin
|
|
673
716
|
prepare_token
|
674
717
|
|
675
718
|
begin
|
719
|
+
if user_id.nil? || user_id.to_s.empty?
|
720
|
+
@error = '400'
|
721
|
+
@error_description = "user_id is required"
|
722
|
+
@error_attribute = "user_id"
|
723
|
+
return
|
724
|
+
end
|
725
|
+
|
676
726
|
url = url_for(SET_PW_CLEARTEXT, user_id)
|
677
727
|
|
678
728
|
data = {
|
@@ -718,6 +768,13 @@ module OneLogin
|
|
718
768
|
prepare_token
|
719
769
|
|
720
770
|
begin
|
771
|
+
if user_id.nil? || user_id.to_s.empty?
|
772
|
+
@error = '400'
|
773
|
+
@error_description = "user_id is required"
|
774
|
+
@error_attribute = "user_id"
|
775
|
+
return
|
776
|
+
end
|
777
|
+
|
721
778
|
url = url_for(SET_PW_SALT, user_id)
|
722
779
|
|
723
780
|
data = {
|
@@ -764,6 +821,13 @@ module OneLogin
|
|
764
821
|
prepare_token
|
765
822
|
|
766
823
|
begin
|
824
|
+
if user_id.nil? || user_id.to_s.empty?
|
825
|
+
@error = '400'
|
826
|
+
@error_description = "user_id is required"
|
827
|
+
@error_attribute = "user_id"
|
828
|
+
return
|
829
|
+
end
|
830
|
+
|
767
831
|
url = url_for(SET_USER_STATE_URL, user_id)
|
768
832
|
|
769
833
|
data = {
|
@@ -804,6 +868,13 @@ module OneLogin
|
|
804
868
|
prepare_token
|
805
869
|
|
806
870
|
begin
|
871
|
+
if user_id.nil? || user_id.to_s.empty?
|
872
|
+
@error = '400'
|
873
|
+
@error_description = "user_id is required"
|
874
|
+
@error_attribute = "user_id"
|
875
|
+
return
|
876
|
+
end
|
877
|
+
|
807
878
|
url = url_for(SET_CUSTOM_ATTRIBUTE_TO_USER_URL, user_id)
|
808
879
|
|
809
880
|
data = {
|
@@ -843,6 +914,13 @@ module OneLogin
|
|
843
914
|
prepare_token
|
844
915
|
|
845
916
|
begin
|
917
|
+
if user_id.nil? || user_id.to_s.empty?
|
918
|
+
@error = '400'
|
919
|
+
@error_description = "user_id is required"
|
920
|
+
@error_attribute = "user_id"
|
921
|
+
return
|
922
|
+
end
|
923
|
+
|
846
924
|
url = url_for(LOG_USER_OUT_URL, user_id)
|
847
925
|
|
848
926
|
response = self.class.put(
|
@@ -880,6 +958,13 @@ module OneLogin
|
|
880
958
|
prepare_token
|
881
959
|
|
882
960
|
begin
|
961
|
+
if user_id.nil? || user_id.to_s.empty?
|
962
|
+
@error = '400'
|
963
|
+
@error_description = "user_id is required"
|
964
|
+
@error_attribute = "user_id"
|
965
|
+
return
|
966
|
+
end
|
967
|
+
|
883
968
|
url = url_for(LOCK_USER_URL, user_id)
|
884
969
|
|
885
970
|
data = {
|
@@ -919,6 +1004,13 @@ module OneLogin
|
|
919
1004
|
prepare_token
|
920
1005
|
|
921
1006
|
begin
|
1007
|
+
if user_id.nil? || user_id.to_s.empty?
|
1008
|
+
@error = '400'
|
1009
|
+
@error_description = "user_id is required"
|
1010
|
+
@error_attribute = "user_id"
|
1011
|
+
return
|
1012
|
+
end
|
1013
|
+
|
922
1014
|
url = url_for(DELETE_USER_URL, user_id)
|
923
1015
|
|
924
1016
|
response = self.class.delete(
|
@@ -952,11 +1044,18 @@ module OneLogin
|
|
952
1044
|
# @return [MFAToken] if the action succeed
|
953
1045
|
#
|
954
1046
|
# @see {https://developers.onelogin.com/api-docs/1/multi-factor-authentication/generate-mfa-token Generate MFA Token documentation}
|
955
|
-
def generate_mfa_token(user_id, expires_in=259200, reusable=
|
1047
|
+
def generate_mfa_token(user_id, expires_in=259200, reusable=false)
|
956
1048
|
clean_error
|
957
1049
|
prepare_token
|
958
1050
|
|
959
1051
|
begin
|
1052
|
+
if user_id.nil? || user_id.to_s.empty?
|
1053
|
+
@error = '400'
|
1054
|
+
@error_description = "user_id is required"
|
1055
|
+
@error_attribute = "user_id"
|
1056
|
+
return
|
1057
|
+
end
|
1058
|
+
|
960
1059
|
url = url_for(GENERATE_MFA_TOKEN_URL, user_id)
|
961
1060
|
|
962
1061
|
data = {
|
@@ -1051,6 +1150,13 @@ module OneLogin
|
|
1051
1150
|
prepare_token
|
1052
1151
|
|
1053
1152
|
begin
|
1153
|
+
if device_id.nil? || device_id.to_s.empty?
|
1154
|
+
@error = '400'
|
1155
|
+
@error_description = "device_id is required"
|
1156
|
+
@error_attribute = "device_id"
|
1157
|
+
return
|
1158
|
+
end
|
1159
|
+
|
1054
1160
|
url = url_for(GET_TOKEN_VERIFY_FACTOR)
|
1055
1161
|
|
1056
1162
|
data = {
|
@@ -1088,31 +1194,76 @@ module OneLogin
|
|
1088
1194
|
nil
|
1089
1195
|
end
|
1090
1196
|
|
1197
|
+
###############################
|
1198
|
+
# Onelogin Connectors Methods #
|
1199
|
+
###############################
|
1200
|
+
|
1201
|
+
# Gets a list of Connector resources.
|
1202
|
+
#
|
1203
|
+
# @param params [Hash] Parameters to filter the result of the list
|
1204
|
+
#
|
1205
|
+
# @return [Array] list of Connector objects
|
1206
|
+
#
|
1207
|
+
# @see {https://developers.onelogin.com/api-docs/1/connectors/list-connectors List Connectors documentation}
|
1208
|
+
def get_connectors(params = {})
|
1209
|
+
clean_error
|
1210
|
+
prepare_token
|
1211
|
+
|
1212
|
+
begin
|
1213
|
+
url = url_for(GET_CONNECTORS_URL)
|
1214
|
+
|
1215
|
+
connectors = []
|
1216
|
+
response = self.class.get(
|
1217
|
+
url,
|
1218
|
+
headers: authorized_headers,
|
1219
|
+
query: params
|
1220
|
+
)
|
1221
|
+
|
1222
|
+
if response.code == 200
|
1223
|
+
json_data = JSON.parse(response.body)
|
1224
|
+
if !json_data.empty?
|
1225
|
+
json_data.each do |data|
|
1226
|
+
pp data
|
1227
|
+
connectors << OneLogin::Api::Models::ConnectorBasic.new(data)
|
1228
|
+
end
|
1229
|
+
end
|
1230
|
+
return connectors
|
1231
|
+
else
|
1232
|
+
@error = extract_status_code_from_response(response)
|
1233
|
+
@error_description = extract_error_message_from_response(response)
|
1234
|
+
end
|
1235
|
+
rescue Exception => e
|
1236
|
+
@error = '500'
|
1237
|
+
@error_description = e.message
|
1238
|
+
end
|
1239
|
+
|
1240
|
+
nil
|
1241
|
+
end
|
1091
1242
|
|
1092
1243
|
#########################
|
1093
1244
|
# Onelogin Apps Methods #
|
1094
1245
|
#########################
|
1095
1246
|
|
1096
|
-
# Gets a list of
|
1247
|
+
# Gets a list of OneLoginAppV1 resources. (if no limit provided, by default get 50 elements)
|
1097
1248
|
#
|
1098
1249
|
# @param params [Hash] Parameters to filter the result of the list
|
1099
1250
|
#
|
1100
|
-
# @return [Array] list of
|
1251
|
+
# @return [Array] list of OneLoginAppV1 objects
|
1101
1252
|
#
|
1102
1253
|
# @see {https://developers.onelogin.com/api-docs/1/apps/get-apps Get Apps documentation}
|
1103
|
-
def
|
1254
|
+
def get_apps_v1(params = {})
|
1104
1255
|
clean_error
|
1105
1256
|
prepare_token
|
1106
1257
|
|
1107
1258
|
begin
|
1108
1259
|
options = {
|
1109
|
-
model: OneLogin::Api::Models::
|
1260
|
+
model: OneLogin::Api::Models::OneLoginAppV1,
|
1110
1261
|
headers: authorized_headers,
|
1111
1262
|
max_results: @max_results,
|
1112
1263
|
params: params
|
1113
1264
|
}
|
1114
1265
|
|
1115
|
-
return Cursor.new(self
|
1266
|
+
return Cursor.new(self, url_for(GET_APPS_URL_V1), options)
|
1116
1267
|
|
1117
1268
|
rescue Exception => e
|
1118
1269
|
@error = '500'
|
@@ -1122,6 +1273,272 @@ module OneLogin
|
|
1122
1273
|
nil
|
1123
1274
|
end
|
1124
1275
|
|
1276
|
+
# Gets a list of OneLoginAppBasic resources.
|
1277
|
+
#
|
1278
|
+
# @param params [Hash] Parameters to filter the result of the list
|
1279
|
+
#
|
1280
|
+
# @return [Array] list of OneLoginAppBasic objects
|
1281
|
+
#
|
1282
|
+
# @see {https://developers.onelogin.com/api-docs/1/apps/list-apps Get Apps documentation}
|
1283
|
+
def get_apps(params = {})
|
1284
|
+
clean_error
|
1285
|
+
prepare_token
|
1286
|
+
|
1287
|
+
begin
|
1288
|
+
url = url_for(GET_APPS_URL)
|
1289
|
+
|
1290
|
+
apps = []
|
1291
|
+
response = self.class.get(
|
1292
|
+
url,
|
1293
|
+
headers: authorized_headers,
|
1294
|
+
query: params
|
1295
|
+
)
|
1296
|
+
|
1297
|
+
if response.code == 200
|
1298
|
+
json_data = JSON.parse(response.body)
|
1299
|
+
if !json_data.empty?
|
1300
|
+
json_data.each do |data|
|
1301
|
+
apps << OneLogin::Api::Models::OneLoginAppBasic.new(data)
|
1302
|
+
end
|
1303
|
+
end
|
1304
|
+
return apps
|
1305
|
+
else
|
1306
|
+
@error = extract_status_code_from_response(response)
|
1307
|
+
@error_description = extract_error_message_from_response(response)
|
1308
|
+
end
|
1309
|
+
rescue Exception => e
|
1310
|
+
@error = '500'
|
1311
|
+
@error_description = e.message
|
1312
|
+
end
|
1313
|
+
|
1314
|
+
nil
|
1315
|
+
end
|
1316
|
+
|
1317
|
+
# Creates an app
|
1318
|
+
#
|
1319
|
+
# @param app_params [Hash] App data (name, visible, policy_id, is_available, parameters, allow_assumed_signin,
|
1320
|
+
# configuration, notes, description, provisioning,
|
1321
|
+
# connector_id, auth_method, tab_id)
|
1322
|
+
#
|
1323
|
+
# @return [OneLoginApp] the created app
|
1324
|
+
#
|
1325
|
+
# @see {https://developers.onelogin.com/api-docs/1/apps/create-app Create App documentation}
|
1326
|
+
def create_app(app_params)
|
1327
|
+
clean_error
|
1328
|
+
prepare_token
|
1329
|
+
|
1330
|
+
begin
|
1331
|
+
url = url_for(CREATE_APP_URL)
|
1332
|
+
|
1333
|
+
unless app_params.has_key?('connector_id') || app_params['connector_id'].to_s.empty?
|
1334
|
+
@error = '400'
|
1335
|
+
@error_description = "connector_id is required"
|
1336
|
+
@error_attribute = "connector_id"
|
1337
|
+
return
|
1338
|
+
end
|
1339
|
+
|
1340
|
+
response = self.class.post(
|
1341
|
+
url,
|
1342
|
+
headers: authorized_headers,
|
1343
|
+
body: app_params.to_json
|
1344
|
+
)
|
1345
|
+
|
1346
|
+
if response.code == 201
|
1347
|
+
json_data = JSON.parse(response.body)
|
1348
|
+
if json_data && json_data.has_key?('id')
|
1349
|
+
return OneLogin::Api::Models::OneLoginApp.new(json_data)
|
1350
|
+
end
|
1351
|
+
else
|
1352
|
+
@error = extract_status_code_from_response(response)
|
1353
|
+
@error_description = extract_error_message_from_response(response)
|
1354
|
+
@error_attribute = extract_error_attribute_from_response(response)
|
1355
|
+
end
|
1356
|
+
rescue Exception => e
|
1357
|
+
@error = '500'
|
1358
|
+
@error_description = e.message
|
1359
|
+
end
|
1360
|
+
|
1361
|
+
nil
|
1362
|
+
end
|
1363
|
+
|
1364
|
+
# Gets a OneLoginApp resource.
|
1365
|
+
#
|
1366
|
+
# @return [OneLoginApp] OneLoginApp object
|
1367
|
+
#
|
1368
|
+
# @see {https://developers.onelogin.com/api-docs/1/apps/get-app Get App documentation}
|
1369
|
+
def get_app(app_id)
|
1370
|
+
clean_error
|
1371
|
+
prepare_token
|
1372
|
+
|
1373
|
+
begin
|
1374
|
+
if app_id.nil? || app_id.to_s.empty?
|
1375
|
+
@error = '400'
|
1376
|
+
@error_description = "app_id is required"
|
1377
|
+
@error_attribute = "app_id"
|
1378
|
+
return
|
1379
|
+
end
|
1380
|
+
|
1381
|
+
url = url_for(GET_APP_URL, app_id)
|
1382
|
+
|
1383
|
+
response = self.class.get(
|
1384
|
+
url,
|
1385
|
+
headers: authorized_headers
|
1386
|
+
)
|
1387
|
+
|
1388
|
+
if response.code == 200
|
1389
|
+
json_data = JSON.parse(response.body)
|
1390
|
+
if json_data && json_data.has_key?('id')
|
1391
|
+
return OneLogin::Api::Models::OneLoginApp.new(json_data)
|
1392
|
+
end
|
1393
|
+
else
|
1394
|
+
@error = extract_status_code_from_response(response)
|
1395
|
+
@error_description = extract_error_message_from_response(response)
|
1396
|
+
end
|
1397
|
+
rescue Exception => e
|
1398
|
+
@error = '500'
|
1399
|
+
@error_description = e.message
|
1400
|
+
end
|
1401
|
+
|
1402
|
+
nil
|
1403
|
+
end
|
1404
|
+
|
1405
|
+
# Updates an app
|
1406
|
+
#
|
1407
|
+
# @param app_id [Integer] Id of the app
|
1408
|
+
# @param app_params [Hash] App data (name, visible, policy_id, is_available, parameters, allow_assumed_signin,
|
1409
|
+
# configuration, notes, description, provisioning,
|
1410
|
+
# connector_id, auth_method, tab_id)
|
1411
|
+
#
|
1412
|
+
# @return [User] the modified user
|
1413
|
+
#
|
1414
|
+
# @see {https://developers.onelogin.com/api-docs/1/apps/update-app Update App by ID documentation}
|
1415
|
+
def update_app(app_id, app_params)
|
1416
|
+
clean_error
|
1417
|
+
prepare_token
|
1418
|
+
|
1419
|
+
begin
|
1420
|
+
if app_id.nil? || app_id.to_s.empty?
|
1421
|
+
@error = '400'
|
1422
|
+
@error_description = "app_id is required"
|
1423
|
+
@error_attribute = "app_id"
|
1424
|
+
return
|
1425
|
+
end
|
1426
|
+
|
1427
|
+
url = url_for(UPDATE_APP_URL, app_id)
|
1428
|
+
|
1429
|
+
response = self.class.put(
|
1430
|
+
url,
|
1431
|
+
headers: authorized_headers,
|
1432
|
+
body: app_params.to_json
|
1433
|
+
)
|
1434
|
+
|
1435
|
+
if response.code == 200
|
1436
|
+
json_data = JSON.parse(response.body)
|
1437
|
+
if json_data && json_data.has_key?('id')
|
1438
|
+
return OneLogin::Api::Models::OneLoginApp.new(json_data)
|
1439
|
+
end
|
1440
|
+
else
|
1441
|
+
@error = response.code.to_s
|
1442
|
+
@error_description = extract_error_message_from_response(response)
|
1443
|
+
@error_attribute = extract_error_attribute_from_response(response)
|
1444
|
+
end
|
1445
|
+
rescue Exception => e
|
1446
|
+
@error = '500'
|
1447
|
+
@error_description = e.message
|
1448
|
+
end
|
1449
|
+
|
1450
|
+
nil
|
1451
|
+
end
|
1452
|
+
|
1453
|
+
# Deletes an app
|
1454
|
+
#
|
1455
|
+
# @param app_id [Integer] Id of the app to be removed
|
1456
|
+
#
|
1457
|
+
# @return [Boolean] if the action succeed
|
1458
|
+
#
|
1459
|
+
# @see {https://developers.onelogin.com/api-docs/1/apps/delete-app Delete App by ID documentation}
|
1460
|
+
def delete_app(app_id)
|
1461
|
+
clean_error
|
1462
|
+
prepare_token
|
1463
|
+
|
1464
|
+
begin
|
1465
|
+
if app_id.nil? || app_id.to_s.empty?
|
1466
|
+
@error = '400'
|
1467
|
+
@error_description = "app_id is required"
|
1468
|
+
@error_attribute = "app_id"
|
1469
|
+
return
|
1470
|
+
end
|
1471
|
+
|
1472
|
+
url = url_for(DELETE_APP_URL, app_id)
|
1473
|
+
|
1474
|
+
response = self.class.delete(
|
1475
|
+
url,
|
1476
|
+
headers: authorized_headers
|
1477
|
+
)
|
1478
|
+
|
1479
|
+
if response.code == 204
|
1480
|
+
return true
|
1481
|
+
else
|
1482
|
+
@error = response.code.to_s
|
1483
|
+
@error_description = extract_error_message_from_response(response)
|
1484
|
+
@error_attribute = extract_error_attribute_from_response(response)
|
1485
|
+
end
|
1486
|
+
rescue Exception => e
|
1487
|
+
@error = '500'
|
1488
|
+
@error_description = e.message
|
1489
|
+
end
|
1490
|
+
|
1491
|
+
false
|
1492
|
+
end
|
1493
|
+
|
1494
|
+
# Deletes an App Parameter
|
1495
|
+
#
|
1496
|
+
# @param app_id [Integer] Id of the app
|
1497
|
+
# @param parameter_id [Integer] Id of the parameter to be removed
|
1498
|
+
#
|
1499
|
+
# @return [Boolean] if the action succeed
|
1500
|
+
#
|
1501
|
+
# @see {https://developers.onelogin.com/api-docs/1/apps/delete-parameter Delete an App Parameter documentation}
|
1502
|
+
def delete_parameter_from_app(app_id, parameter_id)
|
1503
|
+
clean_error
|
1504
|
+
prepare_token
|
1505
|
+
|
1506
|
+
begin
|
1507
|
+
if app_id.nil? || app_id.to_s.empty?
|
1508
|
+
@error = '400'
|
1509
|
+
@error_description = "app_id is required"
|
1510
|
+
@error_attribute = "app_id"
|
1511
|
+
return
|
1512
|
+
end
|
1513
|
+
|
1514
|
+
if parameter_id.nil? || parameter_id.to_s.empty?
|
1515
|
+
@error = '400'
|
1516
|
+
@error_description = "parameter_id is required"
|
1517
|
+
@error_attribute = "parameter_id"
|
1518
|
+
return
|
1519
|
+
end
|
1520
|
+
|
1521
|
+
url = url_for(DELETE_APP_PARAMETER_URL, app_id, parameter_id)
|
1522
|
+
|
1523
|
+
response = self.class.delete(
|
1524
|
+
url,
|
1525
|
+
headers: authorized_headers
|
1526
|
+
)
|
1527
|
+
|
1528
|
+
if response.code == 204
|
1529
|
+
return true
|
1530
|
+
else
|
1531
|
+
@error = response.code.to_s
|
1532
|
+
@error_description = extract_error_message_from_response(response)
|
1533
|
+
@error_attribute = extract_error_attribute_from_response(response)
|
1534
|
+
end
|
1535
|
+
rescue Exception => e
|
1536
|
+
@error = '500'
|
1537
|
+
@error_description = e.message
|
1538
|
+
end
|
1539
|
+
|
1540
|
+
false
|
1541
|
+
end
|
1125
1542
|
|
1126
1543
|
################
|
1127
1544
|
# Role Methods #
|
@@ -1146,7 +1563,7 @@ module OneLogin
|
|
1146
1563
|
params: params
|
1147
1564
|
}
|
1148
1565
|
|
1149
|
-
return Cursor.new(self
|
1566
|
+
return Cursor.new(self, url_for(GET_ROLES_URL), options)
|
1150
1567
|
|
1151
1568
|
rescue Exception => e
|
1152
1569
|
@error = '500'
|
@@ -1168,6 +1585,13 @@ module OneLogin
|
|
1168
1585
|
prepare_token
|
1169
1586
|
|
1170
1587
|
begin
|
1588
|
+
if role_id.nil? || role_id.to_s.empty?
|
1589
|
+
@error = '400'
|
1590
|
+
@error_description = "role_id is required"
|
1591
|
+
@error_attribute = "role_id"
|
1592
|
+
return
|
1593
|
+
end
|
1594
|
+
|
1171
1595
|
url = url_for(GET_ROLE_URL, role_id)
|
1172
1596
|
|
1173
1597
|
response = self.class.get(
|
@@ -1212,7 +1636,7 @@ module OneLogin
|
|
1212
1636
|
max_results: @max_results
|
1213
1637
|
}
|
1214
1638
|
|
1215
|
-
return Cursor.new(self
|
1639
|
+
return Cursor.new(self, url_for(GET_EVENT_TYPES_URL), options)
|
1216
1640
|
|
1217
1641
|
rescue Exception => e
|
1218
1642
|
@error = '500'
|
@@ -1241,7 +1665,7 @@ module OneLogin
|
|
1241
1665
|
params: params
|
1242
1666
|
}
|
1243
1667
|
|
1244
|
-
return Cursor.new(self
|
1668
|
+
return Cursor.new(self, url_for(GET_EVENTS_URL), options)
|
1245
1669
|
|
1246
1670
|
rescue Exception => e
|
1247
1671
|
@error = '500'
|
@@ -1263,6 +1687,13 @@ module OneLogin
|
|
1263
1687
|
prepare_token
|
1264
1688
|
|
1265
1689
|
begin
|
1690
|
+
if event_id.nil? || event_id.to_s.empty?
|
1691
|
+
@error = '400'
|
1692
|
+
@error_description = "event_id is required"
|
1693
|
+
@error_attribute = "event_id"
|
1694
|
+
return
|
1695
|
+
end
|
1696
|
+
|
1266
1697
|
url = url_for(GET_EVENT_URL, event_id)
|
1267
1698
|
|
1268
1699
|
response = self.class.get(
|
@@ -1349,7 +1780,7 @@ module OneLogin
|
|
1349
1780
|
params: params
|
1350
1781
|
}
|
1351
1782
|
|
1352
|
-
return Cursor.new(self
|
1783
|
+
return Cursor.new(self, url_for(GET_GROUPS_URL), options)
|
1353
1784
|
|
1354
1785
|
rescue Exception => e
|
1355
1786
|
@error = '500'
|
@@ -1371,6 +1802,13 @@ module OneLogin
|
|
1371
1802
|
prepare_token
|
1372
1803
|
|
1373
1804
|
begin
|
1805
|
+
if group_id.nil? || group_id.to_s.empty?
|
1806
|
+
@error = '400'
|
1807
|
+
@error_description = "group_id is required"
|
1808
|
+
@error_attribute = "group_id"
|
1809
|
+
return
|
1810
|
+
end
|
1811
|
+
|
1374
1812
|
url = url_for(GET_GROUP_URL, group_id)
|
1375
1813
|
|
1376
1814
|
response = self.class.get(
|
@@ -1465,6 +1903,19 @@ module OneLogin
|
|
1465
1903
|
prepare_token
|
1466
1904
|
|
1467
1905
|
begin
|
1906
|
+
if app_id.nil? || app_id.to_s.empty?
|
1907
|
+
@error = '400'
|
1908
|
+
@error_description = "app_id is required"
|
1909
|
+
@error_attribute = "app_id"
|
1910
|
+
return
|
1911
|
+
end
|
1912
|
+
|
1913
|
+
if device_id.nil? || device_id.to_s.empty?
|
1914
|
+
@error = '400'
|
1915
|
+
@error_description = "device_id is required"
|
1916
|
+
@error_attribute = "device_id"
|
1917
|
+
return
|
1918
|
+
end
|
1468
1919
|
|
1469
1920
|
if url_endpoint.nil? || url_endpoint.empty?
|
1470
1921
|
url = url_for(GET_SAML_VERIFY_FACTOR)
|
@@ -1519,6 +1970,13 @@ module OneLogin
|
|
1519
1970
|
prepare_token
|
1520
1971
|
|
1521
1972
|
begin
|
1973
|
+
if user_id.nil? || user_id.to_s.empty?
|
1974
|
+
@error = '400'
|
1975
|
+
@error_description = "user_id is required"
|
1976
|
+
@error_attribute = "user_id"
|
1977
|
+
return
|
1978
|
+
end
|
1979
|
+
|
1522
1980
|
url = url_for(GET_FACTORS_URL, user_id)
|
1523
1981
|
|
1524
1982
|
response = self.class.get(
|
@@ -1562,6 +2020,20 @@ module OneLogin
|
|
1562
2020
|
prepare_token
|
1563
2021
|
|
1564
2022
|
begin
|
2023
|
+
if user_id.nil? || user_id.to_s.empty?
|
2024
|
+
@error = '400'
|
2025
|
+
@error_description = "user_id is required"
|
2026
|
+
@error_attribute = "user_id"
|
2027
|
+
return
|
2028
|
+
end
|
2029
|
+
|
2030
|
+
if factor_id.nil? || factor_id.to_s.empty?
|
2031
|
+
@error = '400'
|
2032
|
+
@error_description = "factor_id is required"
|
2033
|
+
@error_attribute = "factor_id"
|
2034
|
+
return
|
2035
|
+
end
|
2036
|
+
|
1565
2037
|
url = url_for(ENROLL_FACTOR_URL, user_id)
|
1566
2038
|
|
1567
2039
|
data = {
|
@@ -1605,6 +2077,13 @@ module OneLogin
|
|
1605
2077
|
prepare_token
|
1606
2078
|
|
1607
2079
|
begin
|
2080
|
+
if user_id.nil? || user_id.to_s.empty?
|
2081
|
+
@error = '400'
|
2082
|
+
@error_description = "user_id is required"
|
2083
|
+
@error_attribute = "user_id"
|
2084
|
+
return
|
2085
|
+
end
|
2086
|
+
|
1608
2087
|
url = url_for(GET_ENROLLED_FACTORS_URL, user_id)
|
1609
2088
|
|
1610
2089
|
response = self.class.get(
|
@@ -1647,6 +2126,20 @@ module OneLogin
|
|
1647
2126
|
prepare_token
|
1648
2127
|
|
1649
2128
|
begin
|
2129
|
+
if user_id.nil? || user_id.to_s.empty?
|
2130
|
+
@error = '400'
|
2131
|
+
@error_description = "user_id is required"
|
2132
|
+
@error_attribute = "user_id"
|
2133
|
+
return
|
2134
|
+
end
|
2135
|
+
|
2136
|
+
if device_id.nil? || device_id.to_s.empty?
|
2137
|
+
@error = '400'
|
2138
|
+
@error_description = "device_id is required"
|
2139
|
+
@error_attribute = "device_id"
|
2140
|
+
return
|
2141
|
+
end
|
2142
|
+
|
1650
2143
|
url = url_for(ACTIVATE_FACTOR_URL, user_id, device_id)
|
1651
2144
|
|
1652
2145
|
response = self.class.post(
|
@@ -1691,6 +2184,21 @@ module OneLogin
|
|
1691
2184
|
prepare_token
|
1692
2185
|
|
1693
2186
|
begin
|
2187
|
+
if user_id.nil? || user_id.to_s.empty?
|
2188
|
+
@error = '400'
|
2189
|
+
@error_description = "user_id is required"
|
2190
|
+
@error_attribute = "user_id"
|
2191
|
+
return
|
2192
|
+
end
|
2193
|
+
|
2194
|
+
if device_id.nil? || device_id.to_s.empty?
|
2195
|
+
@error = '400'
|
2196
|
+
@error_description = "device_id is required"
|
2197
|
+
@error_attribute = "device_id"
|
2198
|
+
return
|
2199
|
+
end
|
2200
|
+
|
2201
|
+
|
1694
2202
|
url = url_for(VERIFY_FACTOR_URL, user_id, device_id)
|
1695
2203
|
|
1696
2204
|
data = {
|
@@ -1739,6 +2247,21 @@ module OneLogin
|
|
1739
2247
|
prepare_token
|
1740
2248
|
|
1741
2249
|
begin
|
2250
|
+
|
2251
|
+
if user_id.nil? || user_id.to_s.empty?
|
2252
|
+
@error = '400'
|
2253
|
+
@error_description = "user_id is required"
|
2254
|
+
@error_attribute = "user_id"
|
2255
|
+
return
|
2256
|
+
end
|
2257
|
+
|
2258
|
+
if device_id.nil? || device_id.to_s.empty?
|
2259
|
+
@error = '400'
|
2260
|
+
@error_description = "device_id is required"
|
2261
|
+
@error_attribute = "device_id"
|
2262
|
+
return
|
2263
|
+
end
|
2264
|
+
|
1742
2265
|
url = url_for(REMOVE_FACTOR_URL, user_id, device_id)
|
1743
2266
|
|
1744
2267
|
response = self.class.delete(
|
@@ -1777,6 +2300,13 @@ module OneLogin
|
|
1777
2300
|
prepare_token
|
1778
2301
|
|
1779
2302
|
begin
|
2303
|
+
if email.nil? || email.to_s.empty?
|
2304
|
+
@error = '400'
|
2305
|
+
@error_description = "email is required"
|
2306
|
+
@error_attribute = "email"
|
2307
|
+
return
|
2308
|
+
end
|
2309
|
+
|
1780
2310
|
url = url_for(GENERATE_INVITE_LINK_URL)
|
1781
2311
|
|
1782
2312
|
data = {
|
@@ -1827,7 +2357,7 @@ module OneLogin
|
|
1827
2357
|
'email'=> email
|
1828
2358
|
}
|
1829
2359
|
|
1830
|
-
unless personal_email.nil? || personal_email.empty?
|
2360
|
+
unless personal_email.nil? || personal_email.to_s.empty?
|
1831
2361
|
data['personal_email'] = personal_email
|
1832
2362
|
end
|
1833
2363
|
|
@@ -2030,6 +2560,12 @@ module OneLogin
|
|
2030
2560
|
prepare_token
|
2031
2561
|
|
2032
2562
|
begin
|
2563
|
+
if privilege_id.nil? || privilege_id.to_s.empty?
|
2564
|
+
@error = '400'
|
2565
|
+
@error_description = "privilege_id is required"
|
2566
|
+
@error_attribute = "privilege_id"
|
2567
|
+
return
|
2568
|
+
end
|
2033
2569
|
|
2034
2570
|
url = url_for(GET_PRIVILEGE_URL, privilege_id)
|
2035
2571
|
|
@@ -2071,9 +2607,16 @@ module OneLogin
|
|
2071
2607
|
prepare_token
|
2072
2608
|
|
2073
2609
|
begin
|
2610
|
+
if privilege_id.nil? || privilege_id.to_s.empty?
|
2611
|
+
@error = '400'
|
2612
|
+
@error_description = "privilege_id is required"
|
2613
|
+
@error_attribute = "privilege_id"
|
2614
|
+
return
|
2615
|
+
end
|
2616
|
+
|
2074
2617
|
url = url_for(UPDATE_PRIVILEGE_URL, privilege_id)
|
2075
2618
|
|
2076
|
-
|
2619
|
+
statement_data = []
|
2077
2620
|
for statement in statements
|
2078
2621
|
if statement.instance_of?(OneLogin::Api::Models::Statement)
|
2079
2622
|
statement_data << {
|
@@ -2133,6 +2676,13 @@ module OneLogin
|
|
2133
2676
|
prepare_token
|
2134
2677
|
|
2135
2678
|
begin
|
2679
|
+
if privilege_id.nil? || privilege_id.to_s.empty?
|
2680
|
+
@error = '400'
|
2681
|
+
@error_description = "privilege_id is required"
|
2682
|
+
@error_attribute = "privilege_id"
|
2683
|
+
return
|
2684
|
+
end
|
2685
|
+
|
2136
2686
|
url = url_for(DELETE_PRIVILEGE_URL, privilege_id)
|
2137
2687
|
|
2138
2688
|
response = self.class.delete(
|
@@ -2166,13 +2716,20 @@ module OneLogin
|
|
2166
2716
|
prepare_token
|
2167
2717
|
|
2168
2718
|
begin
|
2719
|
+
if privilege_id.nil? || privilege_id.to_s.empty?
|
2720
|
+
@error = '400'
|
2721
|
+
@error_description = "privilege_id is required"
|
2722
|
+
@error_attribute = "privilege_id"
|
2723
|
+
return
|
2724
|
+
end
|
2725
|
+
|
2169
2726
|
options = {
|
2170
2727
|
headers: authorized_headers,
|
2171
2728
|
max_results: @max_results,
|
2172
2729
|
container: 'roles'
|
2173
2730
|
}
|
2174
2731
|
|
2175
|
-
return Cursor.new(self
|
2732
|
+
return Cursor.new(self, url_for(GET_ROLES_ASSIGNED_TO_PRIVILEGE_URL, privilege_id), options)
|
2176
2733
|
|
2177
2734
|
rescue Exception => e
|
2178
2735
|
@error = '500'
|
@@ -2195,6 +2752,13 @@ module OneLogin
|
|
2195
2752
|
prepare_token
|
2196
2753
|
|
2197
2754
|
begin
|
2755
|
+
if privilege_id.nil? || privilege_id.to_s.empty?
|
2756
|
+
@error = '400'
|
2757
|
+
@error_description = "privilege_id is required"
|
2758
|
+
@error_attribute = "privilege_id"
|
2759
|
+
return
|
2760
|
+
end
|
2761
|
+
|
2198
2762
|
url = url_for(ASSIGN_ROLES_TO_PRIVILEGE_URL, privilege_id)
|
2199
2763
|
|
2200
2764
|
data = {
|
@@ -2235,6 +2799,13 @@ module OneLogin
|
|
2235
2799
|
prepare_token
|
2236
2800
|
|
2237
2801
|
begin
|
2802
|
+
if privilege_id.nil? || privilege_id.to_s.empty?
|
2803
|
+
@error = '400'
|
2804
|
+
@error_description = "privilege_id is required"
|
2805
|
+
@error_attribute = "privilege_id"
|
2806
|
+
return
|
2807
|
+
end
|
2808
|
+
|
2238
2809
|
url = url_for(REMOVE_ROLE_FROM_PRIVILEGE_URL, privilege_id, role_id)
|
2239
2810
|
|
2240
2811
|
response = self.class.delete(
|
@@ -2268,13 +2839,20 @@ module OneLogin
|
|
2268
2839
|
prepare_token
|
2269
2840
|
|
2270
2841
|
begin
|
2842
|
+
if privilege_id.nil? || privilege_id.to_s.empty?
|
2843
|
+
@error = '400'
|
2844
|
+
@error_description = "privilege_id is required"
|
2845
|
+
@error_attribute = "privilege_id"
|
2846
|
+
return
|
2847
|
+
end
|
2848
|
+
|
2271
2849
|
options = {
|
2272
2850
|
headers: authorized_headers,
|
2273
2851
|
max_results: @max_results,
|
2274
2852
|
container: 'users'
|
2275
2853
|
}
|
2276
2854
|
|
2277
|
-
return Cursor.new(self
|
2855
|
+
return Cursor.new(self, url_for(GET_USERS_ASSIGNED_TO_PRIVILEGE_URL, privilege_id), options)
|
2278
2856
|
|
2279
2857
|
rescue Exception => e
|
2280
2858
|
@error = '500'
|
@@ -2297,6 +2875,13 @@ module OneLogin
|
|
2297
2875
|
prepare_token
|
2298
2876
|
|
2299
2877
|
begin
|
2878
|
+
if privilege_id.nil? || privilege_id.to_s.empty?
|
2879
|
+
@error = '400'
|
2880
|
+
@error_description = "privilege_id is required"
|
2881
|
+
@error_attribute = "privilege_id"
|
2882
|
+
return
|
2883
|
+
end
|
2884
|
+
|
2300
2885
|
url = url_for(ASSIGN_USERS_TO_PRIVILEGE_URL, privilege_id)
|
2301
2886
|
|
2302
2887
|
data = {
|
@@ -2336,6 +2921,13 @@ module OneLogin
|
|
2336
2921
|
prepare_token
|
2337
2922
|
|
2338
2923
|
begin
|
2924
|
+
if privilege_id.nil? || privilege_id.to_s.empty?
|
2925
|
+
@error = '400'
|
2926
|
+
@error_description = "privilege_id is required"
|
2927
|
+
@error_attribute = "privilege_id"
|
2928
|
+
return
|
2929
|
+
end
|
2930
|
+
|
2339
2931
|
url = url_for(REMOVE_USER_FROM_PRIVILEGE_URL, privilege_id, user_id)
|
2340
2932
|
|
2341
2933
|
response = self.class.delete(
|