From f36f10a702ecef2dbcef23834544779c5649da81 Mon Sep 17 00:00:00 2001 From: Christian Adams Date: Wed, 2 Oct 2019 14:44:34 -0400 Subject: [PATCH] add RefreshToken Expiration setting in UI --- .../configuration/forms/settings-form.controller.js | 11 ++++++++--- .../forms/system-form/sub-forms/system-misc.form.js | 4 ++++ awx/ui/client/src/configuration/settings.service.js | 4 ++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/awx/ui/client/src/configuration/forms/settings-form.controller.js b/awx/ui/client/src/configuration/forms/settings-form.controller.js index 9b5796fb75..7fe61999ba 100644 --- a/awx/ui/client/src/configuration/forms/settings-form.controller.js +++ b/awx/ui/client/src/configuration/forms/settings-form.controller.js @@ -96,6 +96,8 @@ export default [ // OAUTH2_PROVIDER key data.ACCESS_TOKEN_EXPIRE_SECONDS = data .OAUTH2_PROVIDER.ACCESS_TOKEN_EXPIRE_SECONDS; + data.REFRESH_TOKEN_EXPIRE_SECONDS = data + .OAUTH2_PROVIDER.REFRESH_TOKEN_EXPIRE_SECONDS; data.AUTHORIZATION_CODE_EXPIRE_SECONDS = data .OAUTH2_PROVIDER.AUTHORIZATION_CODE_EXPIRE_SECONDS; var currentKeys = _.keys(data); @@ -225,11 +227,12 @@ export default [ $scope.resetValue = function(key) { Wait('start'); var payload = {}; - if (key === 'ACCESS_TOKEN_EXPIRE_SECONDS' || key === 'AUTHORIZATION_CODE_EXPIRE_SECONDS') { + if (key === 'ACCESS_TOKEN_EXPIRE_SECONDS' || key === 'REFRESH_TOKEN_EXPIRE_SECONDS' || key === 'AUTHORIZATION_CODE_EXPIRE_SECONDS') { // the reset for these two keys needs to be nested under OAUTH2_PROVIDER if (payload.OAUTH2_PROVIDER === undefined) { payload.OAUTH2_PROVIDER = { ACCESS_TOKEN_EXPIRE_SECONDS: $scope.ACCESS_TOKEN_EXPIRE_SECONDS, + REFRESH_TOKEN_EXPIRE_SECONDS: $scope.REFRESH_TOKEN_EXPIRE_SECONDS, AUTHORIZATION_CODE_EXPIRE_SECONDS: $scope.AUTHORIZATION_CODE_EXPIRE_SECONDS }; } @@ -314,11 +317,12 @@ export default [ var keys = _.keys(formDefs[formTracker.getCurrent()].fields); var payload = {}; _.each(keys, function(key) { - if (key === 'ACCESS_TOKEN_EXPIRE_SECONDS' || key === 'AUTHORIZATION_CODE_EXPIRE_SECONDS') { + if (key === 'ACCESS_TOKEN_EXPIRE_SECONDS' || key === 'REFRESH_TOKEN_EXPIRE_SECONDS' || key === 'AUTHORIZATION_CODE_EXPIRE_SECONDS') { // These two values need to be POSTed nested under the OAUTH2_PROVIDER key if (payload.OAUTH2_PROVIDER === undefined) { payload.OAUTH2_PROVIDER = { ACCESS_TOKEN_EXPIRE_SECONDS: $scope.ACCESS_TOKEN_EXPIRE_SECONDS, + REFRESH_TOKEN_EXPIRE_SECONDS: $scope.REFRESH_TOKEN_EXPIRE_SECONDS, AUTHORIZATION_CODE_EXPIRE_SECONDS: $scope.AUTHORIZATION_CODE_EXPIRE_SECONDS }; } @@ -539,11 +543,12 @@ export default [ var payload = {}; clearApiErrors(); _.each(keys, function(key) { - if (key === 'ACCESS_TOKEN_EXPIRE_SECONDS' || key === 'AUTHORIZATION_CODE_EXPIRE_SECONDS') { + if (key === 'ACCESS_TOKEN_EXPIRE_SECONDS' || key === 'REFRESH_TOKEN_EXPIRE_SECONDS' || key === 'AUTHORIZATION_CODE_EXPIRE_SECONDS') { // the reset for these two keys needs to be nested under OAUTH2_PROVIDER if (payload.OAUTH2_PROVIDER === undefined) { payload.OAUTH2_PROVIDER = { ACCESS_TOKEN_EXPIRE_SECONDS: $scope.ACCESS_TOKEN_EXPIRE_SECONDS, + REFRESH_TOKEN_EXPIRE_SECONDS: $scope.REFRESH_TOKEN_EXPIRE_SECONDS, AUTHORIZATION_CODE_EXPIRE_SECONDS: $scope.AUTHORIZATION_CODE_EXPIRE_SECONDS }; } diff --git a/awx/ui/client/src/configuration/forms/system-form/sub-forms/system-misc.form.js b/awx/ui/client/src/configuration/forms/system-form/sub-forms/system-misc.form.js index f7c94e0139..b283107729 100644 --- a/awx/ui/client/src/configuration/forms/system-form/sub-forms/system-misc.form.js +++ b/awx/ui/client/src/configuration/forms/system-form/sub-forms/system-misc.form.js @@ -47,6 +47,10 @@ export default ['i18n', function(i18n) { type: 'text', reset: 'ACCESS_TOKEN_EXPIRE_SECONDS' }, + REFRESH_TOKEN_EXPIRE_SECONDS: { + type: 'text', + reset: 'REFRESH_TOKEN_EXPIRE_SECONDS' + }, AUTHORIZATION_CODE_EXPIRE_SECONDS: { type: 'text', reset: 'AUTHORIZATION_CODE_EXPIRE_SECONDS' diff --git a/awx/ui/client/src/configuration/settings.service.js b/awx/ui/client/src/configuration/settings.service.js index e72a43e7b4..0c74a4fe9f 100644 --- a/awx/ui/client/src/configuration/settings.service.js +++ b/awx/ui/client/src/configuration/settings.service.js @@ -39,6 +39,10 @@ export default ['GetBasePath', '$q', 'Rest', 'i18n', i18n._('The duration (in seconds) access tokens remain valid since their creation.'), i18n._('Access Token Expiration'), 'OAUTH2_PROVIDER'); + unnestOauth2ProviderKey('REFRESH_TOKEN_EXPIRE_SECONDS', + i18n._('The duration (in seconds) refresh tokens remain valid after the expiration of their associated access token.'), + i18n._('Refresh Token Expiration'), + 'OAUTH2_PROVIDER'); unnestOauth2ProviderKey('AUTHORIZATION_CODE_EXPIRE_SECONDS', i18n._('The duration (in seconds) authorization codes remain valid since their creation.'), i18n._('Authorization Code Expiration'),