diff --git a/changelog/24947.txt b/changelog/24947.txt new file mode 100644 index 000000000000..498158e2c530 --- /dev/null +++ b/changelog/24947.txt @@ -0,0 +1,3 @@ +```release-note:bug +ui: Fixed minor bugs with database secrets engine +``` \ No newline at end of file diff --git a/ui/app/adapters/database/connection.js b/ui/app/adapters/database/connection.js index 5555d74cb6c9..beea13f36f27 100644 --- a/ui/app/adapters/database/connection.js +++ b/ui/app/adapters/database/connection.js @@ -56,6 +56,7 @@ export default ApplicationAdapter.extend({ return { data: { id, + name: id, ...data, }, }; diff --git a/ui/app/adapters/database/role.js b/ui/app/adapters/database/role.js index 2a3002c1d1fc..560def403c67 100644 --- a/ui/app/adapters/database/role.js +++ b/ui/app/adapters/database/role.js @@ -144,7 +144,7 @@ export default ApplicationAdapter.extend({ async _updateAllowedRoles(store, { role, backend, db, type = 'add' }) { const connection = await store.queryRecord('database/connection', { backend, id: db }); - const roles = [...connection.allowed_roles]; + const roles = [...(connection.allowed_roles || [])]; const allowedRoles = type === 'add' ? addToArray([roles, role]) : removeFromArray([roles, role]); connection.allowed_roles = allowedRoles; return connection.save(); diff --git a/ui/app/components/database-connection.js b/ui/app/components/database-connection.js index 420b83f1f360..ef3d0061a53b 100644 --- a/ui/app/components/database-connection.js +++ b/ui/app/components/database-connection.js @@ -59,8 +59,6 @@ export default class DatabaseConnectionEdit extends Component { async handleCreateConnection(evt) { evt.preventDefault(); const secret = this.args.model; - const secretId = secret.name; - secret.set('id', secretId); secret .save() .then(() => { diff --git a/ui/app/models/database/connection.js b/ui/app/models/database/connection.js index c6037eb4cfd0..fc1a595bcc46 100644 --- a/ui/app/models/database/connection.js +++ b/ui/app/models/database/connection.js @@ -49,9 +49,7 @@ export default Model.extend({ label: 'Connection will be verified', defaultValue: true, }), - allowed_roles: attr('array', { - readOnly: true, - }), + allowed_roles: attr('array'), password_policy: attr('string', { label: 'Use custom password policy', editType: 'optionalText', diff --git a/ui/app/serializers/database/connection.js b/ui/app/serializers/database/connection.js index 942148940768..f6f2347a3b2d 100644 --- a/ui/app/serializers/database/connection.js +++ b/ui/app/serializers/database/connection.js @@ -41,7 +41,7 @@ export default RESTSerializer.extend({ normalizeResponse(store, primaryModelClass, payload, id, requestType) { const nullResponses = ['updateRecord', 'createRecord', 'deleteRecord']; const connections = nullResponses.includes(requestType) - ? { name: id, backend: payload.backend } + ? { name: payload.data.name, backend: payload.data.backend } : this.normalizeSecrets(payload); const { modelName } = primaryModelClass; let transformedPayload = { [modelName]: connections }; @@ -66,7 +66,8 @@ export default RESTSerializer.extend({ // filter data to only allow plugin specific attrs const allowedAttributes = Object.keys(data).filter((dataAttrs) => pluginAttributes.includes(dataAttrs)); for (const key in data) { - if (!allowedAttributes.includes(key)) { + // All connections allow allowed_roles but it's not shown on the form + if (key !== 'allowed_roles' && !allowedAttributes.includes(key)) { delete data[key]; } } diff --git a/ui/app/templates/components/database-connection.hbs b/ui/app/templates/components/database-connection.hbs index 73f64935cb1a..0e9fb24776c4 100644 --- a/ui/app/templates/components/database-connection.hbs +++ b/ui/app/templates/components/database-connection.hbs @@ -358,6 +358,7 @@ @isActive={{this.showSaveModal}} @type="info" @showCloseButton={{false}} + data-test-database-rotate-root-modal >