onelogin 1.4.1 → 3.0.0.pre.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Gemfile +7 -4
- data/README.md +245 -423
- data/Rakefile +7 -3
- data/docs/Action.md +26 -0
- data/docs/ActivateFactorRequest.md +24 -0
- data/docs/AddAccessTokenClaimRequest.md +22 -0
- data/docs/AddClientAppRequest.md +20 -0
- data/docs/AddRoleUsers200ResponseInner.md +18 -0
- data/docs/AddScopeRequest.md +20 -0
- data/docs/AuthMethod.md +15 -0
- data/docs/AuthServerConfiguration.md +24 -0
- data/docs/ClientApp.md +20 -0
- data/docs/Condition.md +22 -0
- data/docs/Connector.md +26 -0
- data/docs/CreateAuthorizationServerRequest.md +22 -0
- data/docs/CreateEnvironmentVariableRequest.md +20 -0
- data/docs/CreateRoles201ResponseInner.md +18 -0
- data/docs/DefaultApi.md +6812 -0
- data/docs/Device.md +26 -0
- data/docs/EnrollFactorRequest.md +28 -0
- data/docs/Envvar.md +24 -0
- data/docs/ErrorStatus.md +22 -0
- data/docs/ErrorStatusErrorsInner.md +20 -0
- data/docs/FactorInner.md +32 -0
- data/docs/FactorInnerFactorData.md +20 -0
- data/docs/GenerateMfaToken200Response.md +24 -0
- data/docs/GenerateMfaToken422Response.md +24 -0
- data/docs/GenerateMfaToken422ResponseDetails.md +18 -0
- data/docs/GenerateMfaTokenRequest.md +20 -0
- data/docs/GenerateSamlAssertionRequest.md +26 -0
- data/docs/GenerateToken200Response.md +28 -0
- data/docs/GenerateToken400Response.md +18 -0
- data/docs/GenerateTokenRequest.md +18 -0
- data/docs/GetAuthorizationServer200Response.md +24 -0
- data/docs/GetAvailableFactors200ResponseInner.md +22 -0
- data/docs/GetClientApps200ResponseInner.md +24 -0
- data/docs/GetClientApps200ResponseInnerScopesInner.md +22 -0
- data/docs/GetRateLimit200Response.md +20 -0
- data/docs/GetRateLimit200ResponseData.md +22 -0
- data/docs/GetRiskScore200Response.md +20 -0
- data/docs/GetRiskScore400Response.md +18 -0
- data/docs/GetRiskScoreRequest.md +30 -0
- data/docs/GetScoreInsights200Response.md +20 -0
- data/docs/GetScoreInsights200ResponseScores.md +26 -0
- data/docs/GetUserApps200ResponseInner.md +32 -0
- data/docs/Hook.md +46 -0
- data/docs/HookConditionsInner.md +22 -0
- data/docs/HookOptions.md +22 -0
- data/docs/HookStatus.md +20 -0
- data/docs/Id.md +18 -0
- data/docs/ListAccessTokenClaims200ResponseInner.md +34 -0
- data/docs/ListActions200ResponseInner.md +20 -0
- data/docs/ListAppUsers200ResponseInner.md +26 -0
- data/docs/ListAuthorizationServers200ResponseInner.md +24 -0
- data/docs/ListAuthorizationServers200ResponseInnerConfiguration.md +20 -0
- data/docs/ListConditionOperators200ResponseInner.md +20 -0
- data/docs/ListConditionValues200ResponseInner.md +20 -0
- data/docs/ListConditions200ResponseInner.md +20 -0
- data/docs/ListMappingConditionOperators200ResponseInner.md +20 -0
- data/docs/ListMappingConditions200ResponseInner.md +20 -0
- data/docs/ListScopes200ResponseInner.md +22 -0
- data/docs/Log.md +24 -0
- data/docs/Mapping.md +30 -0
- data/docs/Registration.md +22 -0
- data/docs/RemoveRoleUsersRequest.md +18 -0
- data/docs/RevokeTokenRequest.md +18 -0
- data/docs/RiskDevice.md +18 -0
- data/docs/RiskRule.md +30 -0
- data/docs/RiskUser.md +22 -0
- data/docs/Role.md +26 -0
- data/docs/Rule.md +30 -0
- data/docs/RuleId.md +18 -0
- data/docs/Schema.md +56 -0
- data/docs/Schema1.md +28 -0
- data/docs/Schema1AddedBy.md +20 -0
- data/docs/SchemaProvisioning.md +18 -0
- data/docs/Session.md +18 -0
- data/docs/SetRoleApps200ResponseInner.md +18 -0
- data/docs/Source.md +20 -0
- data/docs/Status.md +24 -0
- data/docs/Status1.md +22 -0
- data/docs/Status2.md +18 -0
- data/docs/Status2Status.md +24 -0
- data/docs/TrackEventRequest.md +34 -0
- data/docs/UpdateAuthorizationServer400Response.md +24 -0
- data/docs/UpdateClientAppRequest.md +18 -0
- data/docs/UpdateEnvironmentVariableRequest.md +18 -0
- data/docs/UpdateRole200Response.md +18 -0
- data/docs/User.md +90 -0
- data/docs/VerifyEnrollmentRequest.md +18 -0
- data/docs/VerifyFactorRequest.md +20 -0
- data/docs/VerifyFactorSaml200Response.md +20 -0
- data/docs/VerifyFactorSamlRequest.md +26 -0
- data/docs/VerifyFactorVoice200ResponseInner.md +22 -0
- data/git_push.sh +57 -0
- data/lib/onelogin/api/default_api.rb +7334 -0
- data/lib/onelogin/api_client.rb +391 -0
- data/lib/onelogin/api_error.rb +57 -0
- data/lib/onelogin/configuration.rb +282 -0
- data/lib/onelogin/models/action.rb +262 -0
- data/lib/onelogin/models/activate_factor_request.rb +250 -0
- data/lib/onelogin/models/add_access_token_claim_request.rb +237 -0
- data/lib/onelogin/models/add_client_app_request.rb +230 -0
- data/lib/onelogin/models/add_role_users200_response_inner.rb +219 -0
- data/lib/onelogin/models/add_scope_request.rb +228 -0
- data/lib/onelogin/models/auth_method.rb +43 -0
- data/lib/onelogin/models/auth_server_configuration.rb +248 -0
- data/lib/onelogin/models/client_app.rb +228 -0
- data/lib/onelogin/models/condition.rb +240 -0
- data/lib/onelogin/models/connector.rb +259 -0
- data/lib/onelogin/models/create_authorization_server_request.rb +237 -0
- data/lib/onelogin/models/create_environment_variable_request.rb +240 -0
- data/lib/onelogin/models/create_roles201_response_inner.rb +219 -0
- data/lib/onelogin/models/device.rb +255 -0
- data/lib/onelogin/models/enroll_factor_request.rb +280 -0
- data/lib/onelogin/models/envvar.rb +250 -0
- data/lib/onelogin/models/error_status.rb +239 -0
- data/lib/onelogin/models/error_status_errors_inner.rb +230 -0
- data/lib/onelogin/models/factor_inner.rb +323 -0
- data/lib/onelogin/models/factor_inner_factor_data.rb +231 -0
- data/lib/onelogin/models/generate_mfa_token200_response.rb +250 -0
- data/lib/onelogin/models/generate_mfa_token422_response.rb +246 -0
- data/lib/onelogin/models/generate_mfa_token422_response_details.rb +221 -0
- data/lib/onelogin/models/generate_mfa_token_request.rb +230 -0
- data/lib/onelogin/models/generate_saml_assertion_request.rb +280 -0
- data/lib/onelogin/models/generate_token200_response.rb +264 -0
- data/lib/onelogin/models/generate_token400_response.rb +219 -0
- data/lib/onelogin/models/generate_token_request.rb +253 -0
- data/lib/onelogin/models/get_authorization_server200_response.rb +246 -0
- data/lib/onelogin/models/get_available_factors200_response_inner.rb +240 -0
- data/lib/onelogin/models/get_client_apps200_response_inner.rb +248 -0
- data/lib/onelogin/models/get_client_apps200_response_inner_scopes_inner.rb +237 -0
- data/lib/onelogin/models/get_rate_limit200_response.rb +228 -0
- data/lib/onelogin/models/get_rate_limit200_response_data.rb +237 -0
- data/lib/onelogin/models/get_risk_score200_response.rb +256 -0
- data/lib/onelogin/models/get_risk_score400_response.rb +221 -0
- data/lib/onelogin/models/get_risk_score_request.rb +291 -0
- data/lib/onelogin/models/get_score_insights200_response.rb +228 -0
- data/lib/onelogin/models/get_score_insights200_response_scores.rb +255 -0
- data/lib/onelogin/models/get_user_apps200_response_inner.rb +335 -0
- data/lib/onelogin/models/hook.rb +462 -0
- data/lib/onelogin/models/hook_conditions_inner.rb +237 -0
- data/lib/onelogin/models/hook_options.rb +238 -0
- data/lib/onelogin/models/hook_status.rb +228 -0
- data/lib/onelogin/models/id.rb +219 -0
- data/lib/onelogin/models/list_access_token_claims200_response_inner.rb +293 -0
- data/lib/onelogin/models/list_actions200_response_inner.rb +230 -0
- data/lib/onelogin/models/list_app_users200_response_inner.rb +255 -0
- data/lib/onelogin/models/list_authorization_servers200_response_inner.rb +246 -0
- data/lib/onelogin/models/list_authorization_servers200_response_inner_configuration.rb +230 -0
- data/lib/onelogin/models/list_condition_operators200_response_inner.rb +230 -0
- data/lib/onelogin/models/list_condition_values200_response_inner.rb +228 -0
- data/lib/onelogin/models/list_conditions200_response_inner.rb +230 -0
- data/lib/onelogin/models/list_mapping_condition_operators200_response_inner.rb +230 -0
- data/lib/onelogin/models/list_mapping_conditions200_response_inner.rb +230 -0
- data/lib/onelogin/models/list_scopes200_response_inner.rb +237 -0
- data/lib/onelogin/models/log.rb +248 -0
- data/lib/onelogin/models/mapping.rb +342 -0
- data/lib/onelogin/models/registration.rb +274 -0
- data/lib/onelogin/models/remove_role_users_request.rb +221 -0
- data/lib/onelogin/models/revoke_token_request.rb +219 -0
- data/lib/onelogin/models/risk_device.rb +221 -0
- data/lib/onelogin/models/risk_rule.rb +325 -0
- data/lib/onelogin/models/risk_user.rb +248 -0
- data/lib/onelogin/models/role.rb +266 -0
- data/lib/onelogin/models/rule.rb +317 -0
- data/lib/onelogin/models/rule_id.rb +219 -0
- data/lib/onelogin/models/schema.rb +441 -0
- data/lib/onelogin/models/schema1.rb +265 -0
- data/lib/onelogin/models/schema1_added_by.rb +228 -0
- data/lib/onelogin/models/schema_provisioning.rb +220 -0
- data/lib/onelogin/models/session.rb +221 -0
- data/lib/onelogin/models/set_role_apps200_response_inner.rb +220 -0
- data/lib/onelogin/models/source.rb +230 -0
- data/lib/onelogin/models/status.rb +246 -0
- data/lib/onelogin/models/status1.rb +237 -0
- data/lib/onelogin/models/status2.rb +219 -0
- data/lib/onelogin/models/status2_status.rb +246 -0
- data/lib/onelogin/models/track_event_request.rb +316 -0
- data/lib/onelogin/models/update_authorization_server400_response.rb +246 -0
- data/lib/onelogin/models/update_client_app_request.rb +221 -0
- data/lib/onelogin/models/update_environment_variable_request.rb +225 -0
- data/lib/onelogin/models/update_role200_response.rb +219 -0
- data/lib/onelogin/models/user.rb +615 -0
- data/lib/onelogin/models/verify_enrollment_request.rb +219 -0
- data/lib/onelogin/models/verify_factor_request.rb +230 -0
- data/lib/onelogin/models/verify_factor_saml200_response.rb +230 -0
- data/lib/onelogin/models/verify_factor_saml_request.rb +275 -0
- data/lib/onelogin/models/verify_factor_voice200_response_inner.rb +271 -0
- data/lib/onelogin/version.rb +13 -1
- data/lib/onelogin.rb +130 -1
- data/onelogin.gemspec +36 -43
- data/spec/api/default_api_spec.rb +1259 -0
- data/spec/api_client_spec.rb +226 -0
- data/spec/configuration_spec.rb +42 -0
- data/spec/models/action_spec.rb +58 -0
- data/spec/models/activate_factor_request_spec.rb +52 -0
- data/spec/models/add_access_token_claim_request_spec.rb +46 -0
- data/spec/models/add_client_app_request_spec.rb +40 -0
- data/spec/models/add_role_users200_response_inner_spec.rb +34 -0
- data/spec/models/add_scope_request_spec.rb +40 -0
- data/spec/models/auth_method_spec.rb +28 -0
- data/spec/models/auth_server_configuration_spec.rb +52 -0
- data/spec/models/client_app_spec.rb +40 -0
- data/spec/models/condition_spec.rb +46 -0
- data/spec/models/connector_spec.rb +58 -0
- data/spec/models/create_authorization_server_request_spec.rb +46 -0
- data/spec/models/create_environment_variable_request_spec.rb +40 -0
- data/spec/models/create_roles201_response_inner_spec.rb +34 -0
- data/spec/models/device_spec.rb +58 -0
- data/spec/models/enroll_factor_request_spec.rb +64 -0
- data/spec/models/envvar_spec.rb +52 -0
- data/spec/models/error_status_errors_inner_spec.rb +40 -0
- data/spec/models/error_status_spec.rb +46 -0
- data/spec/models/factor_inner_factor_data_spec.rb +40 -0
- data/spec/models/factor_inner_spec.rb +80 -0
- data/spec/models/generate_mfa_token200_response_spec.rb +52 -0
- data/spec/models/generate_mfa_token422_response_details_spec.rb +34 -0
- data/spec/models/generate_mfa_token422_response_spec.rb +52 -0
- data/spec/models/generate_mfa_token_request_spec.rb +40 -0
- data/spec/models/generate_saml_assertion_request_spec.rb +58 -0
- data/spec/models/generate_token200_response_spec.rb +64 -0
- data/spec/models/generate_token400_response_spec.rb +34 -0
- data/spec/models/generate_token_request_spec.rb +38 -0
- data/spec/models/get_authorization_server200_response_spec.rb +52 -0
- data/spec/models/get_available_factors200_response_inner_spec.rb +46 -0
- data/spec/models/get_client_apps200_response_inner_scopes_inner_spec.rb +46 -0
- data/spec/models/get_client_apps200_response_inner_spec.rb +52 -0
- data/spec/models/get_rate_limit200_response_data_spec.rb +46 -0
- data/spec/models/get_rate_limit200_response_spec.rb +40 -0
- data/spec/models/get_risk_score200_response_spec.rb +40 -0
- data/spec/models/get_risk_score400_response_spec.rb +34 -0
- data/spec/models/get_risk_score_request_spec.rb +70 -0
- data/spec/models/get_score_insights200_response_scores_spec.rb +58 -0
- data/spec/models/get_score_insights200_response_spec.rb +40 -0
- data/spec/models/get_user_apps200_response_inner_spec.rb +84 -0
- data/spec/models/hook_conditions_inner_spec.rb +46 -0
- data/spec/models/hook_options_spec.rb +46 -0
- data/spec/models/hook_spec.rb +122 -0
- data/spec/models/hook_status_spec.rb +40 -0
- data/spec/models/id_spec.rb +34 -0
- data/spec/models/list_access_token_claims200_response_inner_spec.rb +82 -0
- data/spec/models/list_actions200_response_inner_spec.rb +40 -0
- data/spec/models/list_app_users200_response_inner_spec.rb +58 -0
- data/spec/models/list_authorization_servers200_response_inner_configuration_spec.rb +40 -0
- data/spec/models/list_authorization_servers200_response_inner_spec.rb +52 -0
- data/spec/models/list_condition_operators200_response_inner_spec.rb +40 -0
- data/spec/models/list_condition_values200_response_inner_spec.rb +40 -0
- data/spec/models/list_conditions200_response_inner_spec.rb +40 -0
- data/spec/models/list_mapping_condition_operators200_response_inner_spec.rb +40 -0
- data/spec/models/list_mapping_conditions200_response_inner_spec.rb +40 -0
- data/spec/models/list_scopes200_response_inner_spec.rb +46 -0
- data/spec/models/log_spec.rb +52 -0
- data/spec/models/mapping_spec.rb +74 -0
- data/spec/models/registration_spec.rb +50 -0
- data/spec/models/remove_role_users_request_spec.rb +34 -0
- data/spec/models/revoke_token_request_spec.rb +34 -0
- data/spec/models/risk_device_spec.rb +34 -0
- data/spec/models/risk_rule_spec.rb +78 -0
- data/spec/models/risk_user_spec.rb +46 -0
- data/spec/models/role_spec.rb +58 -0
- data/spec/models/rule_id_spec.rb +34 -0
- data/spec/models/rule_spec.rb +74 -0
- data/spec/models/schema1_added_by_spec.rb +40 -0
- data/spec/models/schema1_spec.rb +64 -0
- data/spec/models/schema_provisioning_spec.rb +34 -0
- data/spec/models/schema_spec.rb +152 -0
- data/spec/models/session_spec.rb +34 -0
- data/spec/models/set_role_apps200_response_inner_spec.rb +34 -0
- data/spec/models/source_spec.rb +40 -0
- data/spec/models/status1_spec.rb +46 -0
- data/spec/models/status2_spec.rb +34 -0
- data/spec/models/status2_status_spec.rb +52 -0
- data/spec/models/status_spec.rb +52 -0
- data/spec/models/track_event_request_spec.rb +82 -0
- data/spec/models/update_authorization_server400_response_spec.rb +52 -0
- data/spec/models/update_client_app_request_spec.rb +34 -0
- data/spec/models/update_environment_variable_request_spec.rb +34 -0
- data/spec/models/update_role200_response_spec.rb +34 -0
- data/spec/models/user_spec.rb +258 -0
- data/spec/models/verify_enrollment_request_spec.rb +34 -0
- data/spec/models/verify_factor_request_spec.rb +40 -0
- data/spec/models/verify_factor_saml200_response_spec.rb +40 -0
- data/spec/models/verify_factor_saml_request_spec.rb +58 -0
- data/spec/models/verify_factor_voice200_response_inner_spec.rb +50 -0
- data/spec/spec_helper.rb +111 -0
- metadata +402 -210
- data/.gitignore +0 -12
- data/.travis.yml +0 -6
- data/bin/console +0 -14
- data/bin/setup +0 -6
- data/examples/Gemfile +0 -3
- data/examples/Gemfile.lock +0 -21
- data/examples/README.md +0 -19
- data/examples/all-users-to-csv.rb +0 -48
- data/examples/create-user.rb +0 -16
- data/examples/events-to-csv.rb +0 -93
- data/examples/last-app-user-login-to-csv.rb +0 -72
- data/examples/list-users.rb +0 -15
- data/examples/rails-custom-login-page/.gitignore +0 -45
- data/examples/rails-custom-login-page/.ruby-version +0 -1
- data/examples/rails-custom-login-page/Gemfile +0 -57
- data/examples/rails-custom-login-page/Gemfile.lock +0 -208
- data/examples/rails-custom-login-page/README.md +0 -105
- data/examples/rails-custom-login-page/Rakefile +0 -6
- data/examples/rails-custom-login-page/app/assets/config/manifest.js +0 -3
- data/examples/rails-custom-login-page/app/assets/images/.keep +0 -0
- data/examples/rails-custom-login-page/app/assets/javascripts/application.js +0 -18
- data/examples/rails-custom-login-page/app/assets/javascripts/cable.js +0 -13
- data/examples/rails-custom-login-page/app/assets/javascripts/channels/.keep +0 -0
- data/examples/rails-custom-login-page/app/assets/javascripts/dashboard.coffee +0 -3
- data/examples/rails-custom-login-page/app/assets/javascripts/home.coffee +0 -3
- data/examples/rails-custom-login-page/app/assets/javascripts/sessions.coffee +0 -3
- data/examples/rails-custom-login-page/app/assets/stylesheets/application.css +0 -15
- data/examples/rails-custom-login-page/app/assets/stylesheets/dashboard.scss +0 -3
- data/examples/rails-custom-login-page/app/assets/stylesheets/home.scss +0 -3
- data/examples/rails-custom-login-page/app/assets/stylesheets/sessions.scss +0 -3
- data/examples/rails-custom-login-page/app/channels/application_cable/channel.rb +0 -4
- data/examples/rails-custom-login-page/app/channels/application_cable/connection.rb +0 -4
- data/examples/rails-custom-login-page/app/controllers/application_controller.rb +0 -23
- data/examples/rails-custom-login-page/app/controllers/concerns/.keep +0 -0
- data/examples/rails-custom-login-page/app/controllers/dashboard_controller.rb +0 -10
- data/examples/rails-custom-login-page/app/controllers/home_controller.rb +0 -4
- data/examples/rails-custom-login-page/app/controllers/sessions_controller.rb +0 -46
- data/examples/rails-custom-login-page/app/controllers/users_controller.rb +0 -116
- data/examples/rails-custom-login-page/app/helpers/application_helper.rb +0 -2
- data/examples/rails-custom-login-page/app/helpers/dashboard_helper.rb +0 -28
- data/examples/rails-custom-login-page/app/helpers/home_helper.rb +0 -2
- data/examples/rails-custom-login-page/app/helpers/sessions_helper.rb +0 -87
- data/examples/rails-custom-login-page/app/helpers/users_helper.rb +0 -3
- data/examples/rails-custom-login-page/app/jobs/application_job.rb +0 -2
- data/examples/rails-custom-login-page/app/mailers/application_mailer.rb +0 -4
- data/examples/rails-custom-login-page/app/models/application_record.rb +0 -3
- data/examples/rails-custom-login-page/app/models/concerns/.keep +0 -0
- data/examples/rails-custom-login-page/app/views/dashboard/index.html.erb +0 -50
- data/examples/rails-custom-login-page/app/views/home/index.html.erb +0 -209
- data/examples/rails-custom-login-page/app/views/layouts/application.html.erb +0 -31
- data/examples/rails-custom-login-page/app/views/layouts/mailer.html.erb +0 -13
- data/examples/rails-custom-login-page/app/views/layouts/mailer.text.erb +0 -1
- data/examples/rails-custom-login-page/app/views/users/_form.html.erb +0 -1
- data/examples/rails-custom-login-page/app/views/users/_user.json.jbuilder +0 -2
- data/examples/rails-custom-login-page/app/views/users/edit.html.erb +0 -27
- data/examples/rails-custom-login-page/app/views/users/index.html.erb +0 -30
- data/examples/rails-custom-login-page/app/views/users/index.json.jbuilder +0 -1
- data/examples/rails-custom-login-page/app/views/users/new.html.erb +0 -60
- data/examples/rails-custom-login-page/app/views/users/onboard.html.erb +0 -54
- data/examples/rails-custom-login-page/app/views/users/show.html.erb +0 -14
- data/examples/rails-custom-login-page/app/views/users/show.json.jbuilder +0 -1
- data/examples/rails-custom-login-page/bin/bundle +0 -3
- data/examples/rails-custom-login-page/bin/rails +0 -9
- data/examples/rails-custom-login-page/bin/rake +0 -9
- data/examples/rails-custom-login-page/bin/setup +0 -38
- data/examples/rails-custom-login-page/bin/spring +0 -17
- data/examples/rails-custom-login-page/bin/update +0 -29
- data/examples/rails-custom-login-page/bin/yarn +0 -11
- data/examples/rails-custom-login-page/config/application.rb +0 -18
- data/examples/rails-custom-login-page/config/boot.rb +0 -3
- data/examples/rails-custom-login-page/config/cable.yml +0 -10
- data/examples/rails-custom-login-page/config/database.yml +0 -25
- data/examples/rails-custom-login-page/config/environment.rb +0 -5
- data/examples/rails-custom-login-page/config/environments/development.rb +0 -54
- data/examples/rails-custom-login-page/config/environments/production.rb +0 -91
- data/examples/rails-custom-login-page/config/environments/test.rb +0 -42
- data/examples/rails-custom-login-page/config/initializers/application_controller_renderer.rb +0 -8
- data/examples/rails-custom-login-page/config/initializers/assets.rb +0 -14
- data/examples/rails-custom-login-page/config/initializers/backtrace_silencers.rb +0 -7
- data/examples/rails-custom-login-page/config/initializers/cookies_serializer.rb +0 -5
- data/examples/rails-custom-login-page/config/initializers/filter_parameter_logging.rb +0 -4
- data/examples/rails-custom-login-page/config/initializers/inflections.rb +0 -16
- data/examples/rails-custom-login-page/config/initializers/mime_types.rb +0 -4
- data/examples/rails-custom-login-page/config/initializers/onelogin.rb +0 -4
- data/examples/rails-custom-login-page/config/initializers/wrap_parameters.rb +0 -14
- data/examples/rails-custom-login-page/config/locales/en.yml +0 -33
- data/examples/rails-custom-login-page/config/puma.rb +0 -56
- data/examples/rails-custom-login-page/config/routes.rb +0 -23
- data/examples/rails-custom-login-page/config/secrets.yml.sample +0 -36
- data/examples/rails-custom-login-page/config/spring.rb +0 -6
- data/examples/rails-custom-login-page/config.ru +0 -5
- data/examples/rails-custom-login-page/db/seeds.rb +0 -7
- data/examples/rails-custom-login-page/lib/assets/.keep +0 -0
- data/examples/rails-custom-login-page/lib/tasks/.keep +0 -0
- data/examples/rails-custom-login-page/package.json +0 -5
- data/examples/rails-custom-login-page/public/404.html +0 -67
- data/examples/rails-custom-login-page/public/422.html +0 -67
- data/examples/rails-custom-login-page/public/500.html +0 -66
- data/examples/rails-custom-login-page/public/apple-touch-icon-precomposed.png +0 -0
- data/examples/rails-custom-login-page/public/apple-touch-icon.png +0 -0
- data/examples/rails-custom-login-page/public/favicon.ico +0 -0
- data/examples/rails-custom-login-page/public/robots.txt +0 -1
- data/examples/rails-custom-login-page/test/application_system_test_case.rb +0 -5
- data/examples/rails-custom-login-page/test/controllers/.keep +0 -0
- data/examples/rails-custom-login-page/test/controllers/dashboard_controller_test.rb +0 -9
- data/examples/rails-custom-login-page/test/controllers/home_controller_test.rb +0 -9
- data/examples/rails-custom-login-page/test/controllers/sessions_controller_test.rb +0 -7
- data/examples/rails-custom-login-page/test/controllers/users_controller_test.rb +0 -48
- data/examples/rails-custom-login-page/test/fixtures/.keep +0 -0
- data/examples/rails-custom-login-page/test/fixtures/files/.keep +0 -0
- data/examples/rails-custom-login-page/test/helpers/.keep +0 -0
- data/examples/rails-custom-login-page/test/integration/.keep +0 -0
- data/examples/rails-custom-login-page/test/mailers/.keep +0 -0
- data/examples/rails-custom-login-page/test/models/.keep +0 -0
- data/examples/rails-custom-login-page/test/system/.keep +0 -0
- data/examples/rails-custom-login-page/test/test_helper.rb +0 -9
- data/examples/rails-custom-login-page/vendor/.keep +0 -0
- data/lib/onelogin/api/apiexception.rb +0 -10
- data/lib/onelogin/api/client.rb +0 -2328
- data/lib/onelogin/api/cursor.rb +0 -113
- data/lib/onelogin/api/models/app.rb +0 -22
- data/lib/onelogin/api/models/auth_factor.rb +0 -16
- data/lib/onelogin/api/models/device.rb +0 -18
- data/lib/onelogin/api/models/embed_app.rb +0 -31
- data/lib/onelogin/api/models/event.rb +0 -54
- data/lib/onelogin/api/models/event_type.rb +0 -17
- data/lib/onelogin/api/models/factor_enrollment_response.rb +0 -22
- data/lib/onelogin/api/models/group.rb +0 -17
- data/lib/onelogin/api/models/mfa.rb +0 -26
- data/lib/onelogin/api/models/mfa_token.rb +0 -18
- data/lib/onelogin/api/models/onelogin_token.rb +0 -20
- data/lib/onelogin/api/models/otp_device.rb +0 -25
- data/lib/onelogin/api/models/privilege.rb +0 -51
- data/lib/onelogin/api/models/rate_limit.rb +0 -17
- data/lib/onelogin/api/models/role.rb +0 -16
- data/lib/onelogin/api/models/saml_endpoint_response.rb +0 -18
- data/lib/onelogin/api/models/session_token_info.rb +0 -21
- data/lib/onelogin/api/models/session_token_mfa_info.rb +0 -26
- data/lib/onelogin/api/models/statement.rb +0 -36
- data/lib/onelogin/api/models/user.rb +0 -135
- data/lib/onelogin/api/models/user_data.rb +0 -13
- data/lib/onelogin/api/models/user_metadata.rb +0 -13
- data/lib/onelogin/api/models.rb +0 -22
- data/lib/onelogin/api/util/constants.rb +0 -160
- data/lib/onelogin/api/util/parser.rb +0 -56
- data/lib/onelogin/api/util/url_builder.rb +0 -24
- data/lib/onelogin/api/util.rb +0 -13
- data/lib/onelogin/api.rb +0 -2
@@ -1,105 +0,0 @@
|
|
1
|
-
# Customized Login Page
|
2
|
-
|
3
|
-
This sample is a default [Ruby on Rails 5](http://rubyonrails.org/) app that makes use of the OneLogin ruby sdk for authenticating users.
|
4
|
-
|
5
|
-
It is the recommended approach when building a customized login flow where you want complete control
|
6
|
-
over the look & feel.
|
7
|
-
|
8
|
-
The downside to this approach is that you have to implement MFA and password resets etc yourself. However we do have the APIs for these actions available and have demonstrated how to use them in this app.
|
9
|
-
|
10
|
-
If you want a standards based, out of the box way to authenticate users then we recommend you use [our OpenId Connect implementation](https://github.com/onelogin/onelogin-oidc-ruby).
|
11
|
-
|
12
|
-
## Get Started
|
13
|
-
|
14
|
-
The sample tries to keep everything as simple as possible so only
|
15
|
-
implements
|
16
|
-
* Login - Authenticate users in a single request to OneLogin with out any redirects
|
17
|
-
* MFA - Does MFA verification if required
|
18
|
-
* Password Reset with user verification via MFA
|
19
|
-
* Self sign Up / Create a new user
|
20
|
-
* Onboard / Activate a user
|
21
|
-
* User Apps - List apps available to a user and provides SSO links
|
22
|
-
* User Roles - Lists a users roles
|
23
|
-
* Logout - destroying the local session and revoking the token at OneLogin
|
24
|
-
|
25
|
-
In order to run this sample you need API credentials for a OneLogin account. If you don't have a OneLogin developer account [you can sign up here](https://www.onelogin.com/developer-signup).
|
26
|
-
|
27
|
-
1. Clone this repo
|
28
|
-
|
29
|
-
```sh
|
30
|
-
git clone https://github.com/onelogin/onelogin-ruby-sdk.git
|
31
|
-
```
|
32
|
-
|
33
|
-
2. Move to the rails example and install the required gems
|
34
|
-
```sh
|
35
|
-
cd onelogin-ruby-sdk/examples/rails-custom-login-page && bundle install
|
36
|
-
```
|
37
|
-
|
38
|
-
3. Rename `config/secrets.yml.sample` to `config/secrets.yml` and update with your OneLogin API credentials, region and subdomain.
|
39
|
-
|
40
|
-
```yaml
|
41
|
-
development:
|
42
|
-
secret_key_base: xxx
|
43
|
-
ONELOGIN_CLIENT_ID: xxx
|
44
|
-
ONELOGIN_CLIENT_SECRET: xxx
|
45
|
-
ONELOGIN_REGION: us
|
46
|
-
ONELOGIN_SUBDOMAIN: xxx
|
47
|
-
```
|
48
|
-
4. Run the sample and browse to `http://localhost:3000`
|
49
|
-
```sh
|
50
|
-
rails s
|
51
|
-
```
|
52
|
-
|
53
|
-
The `/dashboard` route renders a protected page to prove the authentication works and creates a session. You will need to be authenticated to view it. If you are not authenticate you will be redirected back to the login page.
|
54
|
-
|
55
|
-
### Authenticate the user
|
56
|
-
|
57
|
-
*helpers/sessions_helper.rb*
|
58
|
-
```ruby
|
59
|
-
response = api_client.create_session_login_token({
|
60
|
-
'username_or_email' => username,
|
61
|
-
'password' => password,
|
62
|
-
'subdomain' => ONELOGIN_SUBDOMAIN,
|
63
|
-
},
|
64
|
-
request.base_url # included for CORS session cookie request
|
65
|
-
)
|
66
|
-
```
|
67
|
-
|
68
|
-
### Verify MFA
|
69
|
-
|
70
|
-
*helpers/sessions_helper.rb*
|
71
|
-
```ruby
|
72
|
-
response = api_client.get_session_token_verified(
|
73
|
-
device_id,
|
74
|
-
session[:state_token],
|
75
|
-
otp_token,
|
76
|
-
request.base_url
|
77
|
-
)
|
78
|
-
```
|
79
|
-
|
80
|
-
### Destroy the session
|
81
|
-
|
82
|
-
*helpers/sessions_helper.rb*
|
83
|
-
```ruby
|
84
|
-
api_client.log_user_out(current_user_id)
|
85
|
-
session.delete(:user)
|
86
|
-
```
|
87
|
-
|
88
|
-
### Make CORS request to establish SSO session
|
89
|
-
|
90
|
-
Using the `session_token` returned from the `session_controller` after a new login or successful MFA verification.
|
91
|
-
|
92
|
-
*views/home/index.html.erb*
|
93
|
-
```javascript
|
94
|
-
function makeCors(session_token) {
|
95
|
-
var xhr = new XMLHttpRequest();
|
96
|
-
xhr.withCredentials = true;
|
97
|
-
method = "POST";
|
98
|
-
var url = "https://" + ONELOGIN_SUBDOMAIN + ".onelogin.com/session_via_api_token";
|
99
|
-
xhr.open(method, url, true);
|
100
|
-
xhr.setRequestHeader("Content-Type", "application/json");
|
101
|
-
body = {"session_token": session_token};
|
102
|
-
xhr.send(JSON.stringify(body));
|
103
|
-
};
|
104
|
-
```
|
105
|
-
|
File without changes
|
@@ -1,18 +0,0 @@
|
|
1
|
-
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
-
// listed below.
|
3
|
-
//
|
4
|
-
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's
|
5
|
-
// vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
-
//
|
7
|
-
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
-
// compiled file. JavaScript code in this file should be added after the last require_* statement.
|
9
|
-
//
|
10
|
-
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
-
// about supported directives.
|
12
|
-
//
|
13
|
-
//= require rails-ujs
|
14
|
-
//= require turbolinks
|
15
|
-
//= require_tree .
|
16
|
-
//= require jquery
|
17
|
-
//= require jquery_ujs
|
18
|
-
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// Action Cable provides the framework to deal with WebSockets in Rails.
|
2
|
-
// You can generate new channels where WebSocket features live using the `rails generate channel` command.
|
3
|
-
//
|
4
|
-
//= require action_cable
|
5
|
-
//= require_self
|
6
|
-
//= require_tree ./channels
|
7
|
-
|
8
|
-
(function() {
|
9
|
-
this.App || (this.App = {});
|
10
|
-
|
11
|
-
App.cable = ActionCable.createConsumer();
|
12
|
-
|
13
|
-
}).call(this);
|
File without changes
|
@@ -1,15 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
-
* listed below.
|
4
|
-
*
|
5
|
-
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
|
6
|
-
* vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
-
*
|
8
|
-
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
-
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
|
10
|
-
* files in this directory. Styles in this file should be added after the last require_* statement.
|
11
|
-
* It is generally better to create a new file per style scope.
|
12
|
-
*
|
13
|
-
*= require_tree .
|
14
|
-
*= require_self
|
15
|
-
*/
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'onelogin'
|
2
|
-
|
3
|
-
class ApplicationController < ActionController::Base
|
4
|
-
protect_from_forgery with: :exception
|
5
|
-
include SessionsHelper
|
6
|
-
|
7
|
-
def require_current_user
|
8
|
-
if current_user
|
9
|
-
return true
|
10
|
-
else
|
11
|
-
redirect_to root_url, error: "Please sign in."
|
12
|
-
return false
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def api_client
|
17
|
-
@api_client ||= OneLogin::Api::Client.new(
|
18
|
-
client_id: ONELOGIN_CLIENT_ID,
|
19
|
-
client_secret: ONELOGIN_CLIENT_SECRET,
|
20
|
-
region: ONELOGIN_REGION
|
21
|
-
)
|
22
|
-
end
|
23
|
-
end
|
File without changes
|
@@ -1,46 +0,0 @@
|
|
1
|
-
class SessionsController < ApplicationController
|
2
|
-
def new
|
3
|
-
response = log_in(params['username'], params['password'])
|
4
|
-
status = response[:error] ? :unauthorized : :ok
|
5
|
-
|
6
|
-
render json: response, status: status
|
7
|
-
end
|
8
|
-
|
9
|
-
def verify
|
10
|
-
response = verify_mfa(params['device_id'], params['otp_token'])
|
11
|
-
status = response ? :ok : :unauthorized
|
12
|
-
|
13
|
-
render json: response, status: status
|
14
|
-
end
|
15
|
-
|
16
|
-
# Checks for user and gets MFA devices
|
17
|
-
# available to verify token before
|
18
|
-
# password reset is completed
|
19
|
-
def forgot_password
|
20
|
-
user = validate_user(params['forgot_username'])
|
21
|
-
|
22
|
-
devices = get_mfa_devices(user.id)
|
23
|
-
|
24
|
-
status = user ? :ok : :not_found
|
25
|
-
|
26
|
-
render json: devices, status: status
|
27
|
-
end
|
28
|
-
|
29
|
-
# Verify MFA token and then update password
|
30
|
-
def reset_password
|
31
|
-
if verify_token(params['reset_device_id'], params['reset_otp_token'])
|
32
|
-
status = :ok
|
33
|
-
response = set_password(session[:user_id], params['new_password'])
|
34
|
-
else
|
35
|
-
status = :unauthorized
|
36
|
-
response = 'Invalid token'
|
37
|
-
end
|
38
|
-
|
39
|
-
render json: response, status: status
|
40
|
-
end
|
41
|
-
|
42
|
-
def destroy
|
43
|
-
log_out
|
44
|
-
redirect_to root_url
|
45
|
-
end
|
46
|
-
end
|
@@ -1,116 +0,0 @@
|
|
1
|
-
class UsersController < ApplicationController
|
2
|
-
|
3
|
-
before_action :require_current_user, except: [:new, :create, :onboard, :activate]
|
4
|
-
before_action :set_user, only: [:show, :edit, :update, :destroy]
|
5
|
-
|
6
|
-
# GET /users
|
7
|
-
# GET /users.json
|
8
|
-
def index
|
9
|
-
@users = api_client.get_users.take(25) # only fetch the first 50 users
|
10
|
-
end
|
11
|
-
|
12
|
-
# GET /users/1
|
13
|
-
# GET /users/1.json
|
14
|
-
def show
|
15
|
-
end
|
16
|
-
|
17
|
-
# GET /users/new
|
18
|
-
def new
|
19
|
-
end
|
20
|
-
|
21
|
-
# GET /users/1/edit
|
22
|
-
def edit
|
23
|
-
end
|
24
|
-
|
25
|
-
# POST /users
|
26
|
-
# POST /users.json
|
27
|
-
def create
|
28
|
-
# Create a user
|
29
|
-
user = api_client.create_user(user_params)
|
30
|
-
# Update custom attributes
|
31
|
-
api_client.set_custom_attribute_to_user(user.id, custom_user_params)
|
32
|
-
# Set status to unactivated
|
33
|
-
api_client.update_user(user.id, status: 0)
|
34
|
-
|
35
|
-
if api_client.error
|
36
|
-
puts api_client.error_description
|
37
|
-
end
|
38
|
-
|
39
|
-
redirect_to onboard_path, notice: 'User has been created with status set to unactivated'
|
40
|
-
end
|
41
|
-
|
42
|
-
# GET /onboard
|
43
|
-
def onboard
|
44
|
-
end
|
45
|
-
|
46
|
-
# POST /activate
|
47
|
-
def activate
|
48
|
-
# Search for a user with this email address
|
49
|
-
@user = api_client.get_users(email: user_params[:email]).first
|
50
|
-
|
51
|
-
unless @user && verify_dob && verify_ssn
|
52
|
-
return redirect_to onboard_path, notice: "User #{user_params[:email]} was not verified"
|
53
|
-
end
|
54
|
-
|
55
|
-
# Update password
|
56
|
-
unless api_client.set_password_using_clear_text(@user.id, user_params[:password], user_params[:password])
|
57
|
-
return redirect_to onboard_path, notice: "Password update failed. #{api_client.error_description}"
|
58
|
-
end
|
59
|
-
|
60
|
-
# Activate user
|
61
|
-
api_client.update_user(@user.id, status: 1)
|
62
|
-
|
63
|
-
# Redirect to login page
|
64
|
-
redirect_to home_index_path
|
65
|
-
end
|
66
|
-
|
67
|
-
# Verify dob and ssn match
|
68
|
-
def verify_ssn
|
69
|
-
@user.custom_attributes["custom_ssn"].eql? (custom_user_params[:custom_ssn])
|
70
|
-
end
|
71
|
-
|
72
|
-
def verify_dob
|
73
|
-
@user.custom_attributes["custom_dob"].eql? (custom_user_params[:custom_dob])
|
74
|
-
end
|
75
|
-
|
76
|
-
# PATCH/PUT /users/1
|
77
|
-
# PATCH/PUT /users/1.json
|
78
|
-
def update
|
79
|
-
# update the user
|
80
|
-
api_client.update_user(params[:id], user_params)
|
81
|
-
|
82
|
-
# update custom attributes
|
83
|
-
api_client.set_custom_attribute_to_user(params[:id], custom_user_params)
|
84
|
-
|
85
|
-
respond_to do |format|
|
86
|
-
unless api_client.error
|
87
|
-
format.html { redirect_to user_path(params[:id]), notice: 'User was successfully updated.' }
|
88
|
-
format.json { render :show, status: :ok, location: @user }
|
89
|
-
else
|
90
|
-
format.html { render :edit }
|
91
|
-
format.json { render json: @user.errors, status: :unprocessable_entity }
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
# DELETE /users/1
|
97
|
-
# DELETE /users/1.json
|
98
|
-
def destroy
|
99
|
-
@user.destroy
|
100
|
-
respond_to do |format|
|
101
|
-
format.html { redirect_to users_url, notice: 'User was successfully destroyed.' }
|
102
|
-
format.json { head :no_content }
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
private
|
107
|
-
|
108
|
-
# Never trust parameters from the scary internet, only allow the white list through.
|
109
|
-
def user_params
|
110
|
-
params.permit(:firstname, :lastname, :email, :phone, :custom_field, :username, :password)
|
111
|
-
end
|
112
|
-
|
113
|
-
def custom_user_params
|
114
|
-
params.permit(:custom_field, :custom_dob, :custom_ssn)
|
115
|
-
end
|
116
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module DashboardHelper
|
2
|
-
|
3
|
-
#
|
4
|
-
# Get a list of app for the current user
|
5
|
-
#
|
6
|
-
def user_apps
|
7
|
-
api_client.get_user_apps(current_user_id)
|
8
|
-
end
|
9
|
-
|
10
|
-
#
|
11
|
-
# Get a list of roles for the current user
|
12
|
-
#
|
13
|
-
def user_roles
|
14
|
-
role_ids = api_client.get_user_roles(current_user_id)
|
15
|
-
|
16
|
-
roles.map do |role|
|
17
|
-
role if role_ids.include?(role.id)
|
18
|
-
end.compact
|
19
|
-
end
|
20
|
-
|
21
|
-
#
|
22
|
-
# Get a list of all roles in onelogin account
|
23
|
-
#
|
24
|
-
def roles
|
25
|
-
@roles ||= api_client.get_roles
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
@@ -1,87 +0,0 @@
|
|
1
|
-
module SessionsHelper
|
2
|
-
|
3
|
-
def log_in(username, password)
|
4
|
-
response = api_client.create_session_login_token({
|
5
|
-
'username_or_email' => username,
|
6
|
-
'password' => password,
|
7
|
-
'subdomain' => ONELOGIN_SUBDOMAIN,
|
8
|
-
},
|
9
|
-
request.base_url # included for CORS session cookie request
|
10
|
-
)
|
11
|
-
return { error: api_client.error_description } unless response
|
12
|
-
|
13
|
-
if response.is_a? OneLogin::Api::Models::SessionTokenMFAInfo
|
14
|
-
session[:state_token] = response.state_token
|
15
|
-
{
|
16
|
-
requires_mfa: true,
|
17
|
-
devices: response.devices
|
18
|
-
}
|
19
|
-
else
|
20
|
-
create_session(response.user)
|
21
|
-
{
|
22
|
-
requires_mfa: false,
|
23
|
-
session_token: response.session_token
|
24
|
-
}
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def verify_mfa(device_id, otp_token)
|
29
|
-
response = api_client.get_session_token_verified(
|
30
|
-
device_id,
|
31
|
-
session[:state_token],
|
32
|
-
otp_token,
|
33
|
-
request.base_url
|
34
|
-
)
|
35
|
-
return nil unless response
|
36
|
-
|
37
|
-
create_session(response.user)
|
38
|
-
{
|
39
|
-
session_token: response.session_token
|
40
|
-
}
|
41
|
-
end
|
42
|
-
|
43
|
-
def create_session(user)
|
44
|
-
session[:user] = user
|
45
|
-
end
|
46
|
-
|
47
|
-
def log_out
|
48
|
-
return unless current_user
|
49
|
-
api_client.log_user_out(current_user_id)
|
50
|
-
session.delete(:user)
|
51
|
-
end
|
52
|
-
|
53
|
-
def current_user
|
54
|
-
session[:user]
|
55
|
-
end
|
56
|
-
|
57
|
-
def current_user_id
|
58
|
-
session[:user]['id'] if current_user
|
59
|
-
end
|
60
|
-
|
61
|
-
def validate_user(username)
|
62
|
-
user = api_client.get_users(username: username).first
|
63
|
-
|
64
|
-
if user
|
65
|
-
session[:user_id] = user.id
|
66
|
-
end
|
67
|
-
|
68
|
-
user
|
69
|
-
end
|
70
|
-
|
71
|
-
def get_mfa_devices(user_id)
|
72
|
-
devices = api_client.get_enrolled_factors(user_id)
|
73
|
-
|
74
|
-
# only return devices that dont need a trigger.
|
75
|
-
# i.e. this sample does not support push yet
|
76
|
-
devices.select {|d| d.needs_trigger == true }
|
77
|
-
end
|
78
|
-
|
79
|
-
def verify_token(device_id, mfa_token)
|
80
|
-
puts "VERIFY MFA TOKEN User:#{session[:user_id]}, Device:#{device_id}, Token:#{mfa_token}"
|
81
|
-
api_client.verify_factor(session[:user_id], device_id, mfa_token)
|
82
|
-
end
|
83
|
-
|
84
|
-
def set_password(user_id, password)
|
85
|
-
api_client.set_password_using_clear_text(user_id, password, password)
|
86
|
-
end
|
87
|
-
end
|
File without changes
|
@@ -1,50 +0,0 @@
|
|
1
|
-
<div class="jumbotron">
|
2
|
-
<h1>Dashboard</h1>
|
3
|
-
<p>
|
4
|
-
You must be authenticated to see this page so if you're seeing it then
|
5
|
-
everything worked as expected 🎉
|
6
|
-
</p>
|
7
|
-
<p>
|
8
|
-
<a href="/users">List Users</a> | <a href="/logout">Log Out</a>
|
9
|
-
</p>
|
10
|
-
</div>
|
11
|
-
|
12
|
-
<div class="container">
|
13
|
-
<div class="row">
|
14
|
-
<div class="col-sm">
|
15
|
-
<h2>Apps</h2>
|
16
|
-
<ul class="list-group">
|
17
|
-
<%@apps.each do |app|%>
|
18
|
-
<li class="list-group-item"><a href="https://<%= ONELOGIN_SUBDOMAIN %>.onelogin.com/launch/<%= app.id %>"><%= app.name %></a></li>
|
19
|
-
<%end%>
|
20
|
-
</ul>
|
21
|
-
</div>
|
22
|
-
<div class="col-sm">
|
23
|
-
<h2>Roles</h2>
|
24
|
-
<ul class="list-group">
|
25
|
-
<%@roles.each do |role|%>
|
26
|
-
<li class="list-group-item"><%= role.name %></li>
|
27
|
-
<%end%>
|
28
|
-
</ul>
|
29
|
-
|
30
|
-
<br/>
|
31
|
-
|
32
|
-
<h2>Profile</h2>
|
33
|
-
<ul class="list-group">
|
34
|
-
<%current_user.each do |k, v|%>
|
35
|
-
<li class="list-group-item">
|
36
|
-
<b><%= k%>:</b> <%= v%>
|
37
|
-
</li>
|
38
|
-
<%end%>
|
39
|
-
</ul>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|