Set custom oidc client id and secret in the backend

This commit is contained in:
Johannes Zellner
2023-10-06 14:11:54 +02:00
parent 41319bc817
commit 5e7bc78d35
6 changed files with 91 additions and 70 deletions

View File

@@ -298,16 +298,12 @@ angular.module('Application').controller('UserSettingsController', ['$scope', '$
$scope.clientAdd = {
busy: false,
error: {},
id: '',
error: null,
name: '',
secret: '',
loginRedirectUri: '',
tokenSignatureAlgorithm: '',
show: function () {
$scope.clientAdd.id = '';
$scope.clientAdd.secret = '';
$scope.clientAdd.name = '';
$scope.clientAdd.loginRedirectUri = '';
$scope.clientAdd.tokenSignatureAlgorithm = 'RS256';
@@ -320,19 +316,13 @@ angular.module('Application').controller('UserSettingsController', ['$scope', '$
submit: function () {
$scope.clientAdd.busy = true;
$scope.clientAdd.error = {};
$scope.clientAdd.error = null;
Client.addOidcClient($scope.clientAdd.id, $scope.clientAdd.name, $scope.clientAdd.secret, $scope.clientAdd.loginRedirectUri, $scope.clientAdd.tokenSignatureAlgorithm, function (error) {
Client.addOidcClient($scope.clientAdd.name, $scope.clientAdd.loginRedirectUri, $scope.clientAdd.tokenSignatureAlgorithm, function (error) {
if (error) {
if (error.statusCode === 409) {
$scope.clientAdd.error.id = 'Client ID already exists';
$('#clientId').focus();
} else {
console.error('Unable to add openid client.', error);
}
$scope.clientAdd.error = error.message;
console.error('Unable to add openid client.', error);
$scope.clientAdd.busy = false;
return;
}
@@ -346,17 +336,17 @@ angular.module('Application').controller('UserSettingsController', ['$scope', '$
$scope.clientEdit = {
busy: false,
error: {},
error: null,
id: '',
name: '',
secret: '',
name: '',
loginRedirectUri: '',
tokenSignatureAlgorithm: '',
show: function (client) {
$scope.clientEdit.id = client.id;
$scope.clientEdit.name = client.name;
$scope.clientEdit.secret = client.secret;
$scope.clientEdit.name = client.name;
$scope.clientEdit.loginRedirectUri = client.loginRedirectUri;
$scope.clientEdit.tokenSignatureAlgorithm = client.tokenSignatureAlgorithm;
$scope.clientEdit.busy = false;
@@ -368,14 +358,13 @@ angular.module('Application').controller('UserSettingsController', ['$scope', '$
submit: function () {
$scope.clientEdit.busy = true;
$scope.clientEdit.error = {};
$scope.clientEdit.error = null;
Client.updateOidcClient($scope.clientEdit.id, $scope.clientEdit.name, $scope.clientEdit.secret, $scope.clientEdit.loginRedirectUri, $scope.clientEdit.tokenSignatureAlgorithm, function (error) {
Client.updateOidcClient($scope.clientEdit.id, $scope.clientEdit.name, $scope.clientEdit.loginRedirectUri, $scope.clientEdit.tokenSignatureAlgorithm, function (error) {
if (error) {
$scope.clientEdit.error = error.message;
console.error('Unable to edit openid client.', error);
$scope.clientEdit.busy = false;
return;
}
@@ -444,5 +433,41 @@ angular.module('Application').controller('UserSettingsController', ['$scope', '$
$timeout(function () { $('#userDirectoryUrlClipboardButton').tooltip('hide'); }, 2000);
});
new Clipboard('#clientIdInputClipboardButton').on('success', function(e) {
$('#clientIdInputClipboardButton').tooltip({
title: 'Copied!',
trigger: 'manual'
}).tooltip('show');
$timeout(function () { $('#clientIdInputClipboardButton').tooltip('hide'); }, 2000);
e.clearSelection();
}).on('error', function(/*e*/) {
$('#clientIdInputClipboardButton').tooltip({
title: 'Press Ctrl+C to copy',
trigger: 'manual'
}).tooltip('show');
$timeout(function () { $('#clientIdInputClipboardButton').tooltip('hide'); }, 2000);
});
new Clipboard('#clientSecretInputClipboardButton').on('success', function(e) {
$('#clientSecretInputClipboardButton').tooltip({
title: 'Copied!',
trigger: 'manual'
}).tooltip('show');
$timeout(function () { $('#clientSecretInputClipboardButton').tooltip('hide'); }, 2000);
e.clearSelection();
}).on('error', function(/*e*/) {
$('#clientSecretInputClipboardButton').tooltip({
title: 'Press Ctrl+C to copy',
trigger: 'manual'
}).tooltip('show');
$timeout(function () { $('#clientSecretInputClipboardButton').tooltip('hide'); }, 2000);
});
$('.modal-backdrop').remove();
}]);