diff --git a/api/lib/application/sco-organization-learners/index.js b/api/lib/application/sco-organization-learners/index.js index c8a444dc4f9..9f2ce8eeb4d 100644 --- a/api/lib/application/sco-organization-learners/index.js +++ b/api/lib/application/sco-organization-learners/index.js @@ -183,7 +183,7 @@ const register = async function (server) { }, { method: 'POST', - path: '/api/sco-organization-learners/password-reset', + path: '/api/sco-organization-learners/batch-username-password-generate', config: { pre: [ { diff --git a/api/tests/acceptance/application/sco-organization-learners/sco-organization-learner-controller_test.js b/api/tests/acceptance/application/sco-organization-learners/sco-organization-learner-controller_test.js index f2b6f71b7a6..83096773db9 100644 --- a/api/tests/acceptance/application/sco-organization-learners/sco-organization-learner-controller_test.js +++ b/api/tests/acceptance/application/sco-organization-learners/sco-organization-learner-controller_test.js @@ -598,7 +598,7 @@ describe('Acceptance | Controller | sco-organization-learners', function () { }); }); - describe('POST /api/sco-organization-learners/password-reset', function () { + describe('POST /api/sco-organization-learners/batch-username-password-generate', function () { context('when successfully update organization learners passwords', function () { it('returns an HTTP status code 200 with generated CSV file', async function () { // given @@ -631,7 +631,7 @@ describe('Acceptance | Controller | sco-organization-learners', function () { // when const { headers, payload, statusCode } = await server.inject({ method: 'POST', - url: '/api/sco-organization-learners/password-reset', + url: '/api/sco-organization-learners/batch-username-password-generate', headers: { authorization: generateValidRequestAuthorizationHeader(userId) }, payload: { data: { diff --git a/api/tests/integration/application/sco-organization-learners/sco-organization-learner-controller_test.js b/api/tests/integration/application/sco-organization-learners/sco-organization-learner-controller_test.js index 21f58b98d67..6af08f6645e 100644 --- a/api/tests/integration/application/sco-organization-learners/sco-organization-learner-controller_test.js +++ b/api/tests/integration/application/sco-organization-learners/sco-organization-learner-controller_test.js @@ -276,7 +276,7 @@ describe('Integration | Application | sco-organization-learners | sco-organizati // when const response = await httpTestServer.request( 'POST', - '/api/sco-organization-learners/password-reset', + '/api/sco-organization-learners/batch-username-password-generate', payload, auth, ); diff --git a/orga/app/adapters/sco-organization-participant.js b/orga/app/adapters/sco-organization-participant.js index e67f79c7ae8..11ca8f7f31c 100644 --- a/orga/app/adapters/sco-organization-participant.js +++ b/orga/app/adapters/sco-organization-participant.js @@ -8,8 +8,14 @@ export default class ScoOrganizationParticipantAdapter extends ApplicationAdapte return `${this.host}/${this.namespace}/organizations/${organizationId}/sco-participants`; } - async resetOrganizationLearnersPassword({ fetch, fileSaver, organizationId, organizationLearnersIds, token }) { - const url = `${this.host}/${this.namespace}/sco-organization-learners/password-reset`; + async generateOrganizationLearnersUsernamePassword({ + fetch, + fileSaver, + organizationId, + organizationLearnersIds, + token, + }) { + const url = `${this.host}/${this.namespace}/sco-organization-learners/batch-username-password-generate`; const payload = JSON.stringify( { data: { diff --git a/orga/app/components/sco-organization-participant/list.hbs b/orga/app/components/sco-organization-participant/list.hbs index 8c9a83fe2d9..a427bf9ebf5 100644 --- a/orga/app/components/sco-organization-participant/list.hbs +++ b/orga/app/components/sco-organization-participant/list.hbs @@ -52,13 +52,13 @@ @showModal={{this.showResetPasswordModal}} @totalSelectedStudents={{selectedStudents.length}} @totalAffectedStudents={{this.affectedStudents.length}} - @onTriggerAction={{fn this.resetPasswordForStudents this.affectedStudents reset}} + @onTriggerAction={{fn this.generateUsernamePasswordForStudents this.affectedStudents reset}} @onCloseModal={{this.closeResetPasswordModal}} /> diff --git a/orga/app/components/sco-organization-participant/list.js b/orga/app/components/sco-organization-participant/list.js index 2e88f9e11e8..2d82db6f452 100644 --- a/orga/app/components/sco-organization-participant/list.js +++ b/orga/app/components/sco-organization-participant/list.js @@ -113,10 +113,10 @@ export default class ScoList extends Component { } @action - async resetPasswordForStudents(affectedStudents, resetSelectedStudents) { + async generateUsernamePasswordForStudents(affectedStudents, resetSelectedStudents) { const affectedStudentsIds = affectedStudents.map((affectedStudents) => affectedStudents.id); try { - await this.store.adapterFor('sco-organization-participant').resetOrganizationLearnersPassword({ + await this.store.adapterFor('sco-organization-participant').generateOrganizationLearnersUsernamePassword({ fetch, fileSaver: this.fileSaver, organizationId: this.currentUser.organization.id, diff --git a/orga/tests/integration/components/sco-organization-participant/list-test.js b/orga/tests/integration/components/sco-organization-participant/list-test.js index c059d83d26e..78b4c658df5 100644 --- a/orga/tests/integration/components/sco-organization-participant/list-test.js +++ b/orga/tests/integration/components/sco-organization-participant/list-test.js @@ -1419,7 +1419,9 @@ module('Integration | Component | ScoOrganizationParticipant::List', function (h test('closes dialog', async function (assert) { // given const store = this.owner.lookup('service:store'); - sinon.stub(store, 'adapterFor').returns({ resetOrganizationLearnersPassword: sinon.stub().resolves() }); + sinon + .stub(store, 'adapterFor') + .returns({ generateOrganizationLearnersUsernamePassword: sinon.stub().resolves() }); const students = [ { id: '1', firstName: 'Spider', lastName: 'Man', authenticationMethods: ['mediacentre'] }, @@ -1469,7 +1471,9 @@ module('Integration | Component | ScoOrganizationParticipant::List', function (h test('displays a successful notification', async function (assert) { // given const store = this.owner.lookup('service:store'); - sinon.stub(store, 'adapterFor').returns({ resetOrganizationLearnersPassword: sinon.stub().resolves() }); + sinon + .stub(store, 'adapterFor') + .returns({ generateOrganizationLearnersUsernamePassword: sinon.stub().resolves() }); notificationsStub = this.owner.lookup('service:notifications'); sinon.stub(notificationsStub, 'sendSuccess'); @@ -1524,7 +1528,7 @@ module('Integration | Component | ScoOrganizationParticipant::List', function (h // given const store = this.owner.lookup('service:store'); sinon.stub(store, 'adapterFor').returns({ - resetOrganizationLearnersPassword: sinon + generateOrganizationLearnersUsernamePassword: sinon .stub() .rejects([{ code: 'USER_DOES_NOT_BELONG_TO_ORGANIZATION' }]), }); @@ -1585,7 +1589,7 @@ module('Integration | Component | ScoOrganizationParticipant::List', function (h // given const store = this.owner.lookup('service:store'); sinon.stub(store, 'adapterFor').returns({ - resetOrganizationLearnersPassword: sinon + generateOrganizationLearnersUsernamePassword: sinon .stub() .rejects([{ code: 'ORGANIZATION_LEARNER_DOES_NOT_BELONG_TO_ORGANIZATION' }]), }); @@ -1648,7 +1652,7 @@ module('Integration | Component | ScoOrganizationParticipant::List', function (h // given const store = this.owner.lookup('service:store'); sinon.stub(store, 'adapterFor').returns({ - resetOrganizationLearnersPassword: sinon.stub().rejects([ + generateOrganizationLearnersUsernamePassword: sinon.stub().rejects([ { code: 'ORGANIZATION_LEARNER_WITHOUT_USERNAME', }, @@ -1711,7 +1715,7 @@ module('Integration | Component | ScoOrganizationParticipant::List', function (h // given const store = this.owner.lookup('service:store'); sinon.stub(store, 'adapterFor').returns({ - resetOrganizationLearnersPassword: sinon.stub().rejects([{ status: 500 }]), + generateOrganizationLearnersUsernamePassword: sinon.stub().rejects([{ status: 500 }]), }); notificationsStub = this.owner.lookup('service:notifications'); sinon.stub(notificationsStub, 'sendError'); diff --git a/orga/tests/unit/adapters/sco-organization-participant-test.js b/orga/tests/unit/adapters/sco-organization-participant-test.js index ef3b75c40fe..50b0666314f 100644 --- a/orga/tests/unit/adapters/sco-organization-participant-test.js +++ b/orga/tests/unit/adapters/sco-organization-participant-test.js @@ -24,8 +24,8 @@ module('Unit | Adapters | sco-organization-participant', function (hooks) { }); }); - module('#resetOrganizationLearnersPassword', function () { - test('resets organization learners password and saves a CSV file', async function (assert) { + module('#generateOrganizationLearnersUsernamePassword', function () { + test('generates organization learners username with password and saves a CSV file', async function (assert) { // given const fetch = sinon.stub().resolves(); const fileSaver = { save: sinon.stub().resolves() }; @@ -36,7 +36,7 @@ module('Unit | Adapters | sco-organization-participant', function (hooks) { adapter.namespace = 'api'; // when - await adapter.resetOrganizationLearnersPassword({ + await adapter.generateOrganizationLearnersUsernamePassword({ fetch, fileSaver, organizationId, @@ -45,7 +45,7 @@ module('Unit | Adapters | sco-organization-participant', function (hooks) { }); // then - const expectedUrl = `${adapter.host}/${adapter.namespace}/sco-organization-learners/password-reset`; + const expectedUrl = `${adapter.host}/${adapter.namespace}/sco-organization-learners/batch-username-password-generate`; const expectedOptions = { method: 'POST', headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },