[FIX] Fixed E2E default room settings not being honoured (#23468)

Co-authored-by: Tasso Evangelista <tasso.evangelista@rocket.chat>
pull/23673/head^2
Leonardo Ostjen Couto 4 years ago committed by GitHub
parent eb0f205096
commit 7660464d08
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      app/e2e/server/beforeCreateRoom.js
  2. 2
      app/e2e/server/settings.ts
  3. 45
      tests/end-to-end/api/03-groups.js

@ -3,9 +3,8 @@ import { settings } from '../../settings/server';
callbacks.add('beforeCreateRoom', ({ type, extraData }) => {
if (
settings.get('E2E_Enabled') && ((type === 'd' && settings.get('E2E_Enabled_Default_DirectRooms'))
|| (type === 'p' && settings.get('E2E_Enabled_Default_PrivateRooms')))
) {
settings.get('E2E_Enable') && ((type === 'd' && settings.get('E2E_Enabled_Default_DirectRooms'))
|| (type === 'p' && settings.get('E2E_Enabled_Default_PrivateRooms')))) {
extraData.encrypted = extraData.encrypted ?? true;
}
});

@ -11,11 +11,13 @@ settingsRegistry.addGroup('E2E Encryption', function() {
this.add('E2E_Enabled_Default_DirectRooms', false, {
type: 'boolean',
public: true,
enableQuery: { _id: 'E2E_Enable', value: true },
});
this.add('E2E_Enabled_Default_PrivateRooms', false, {
type: 'boolean',
public: true,
enableQuery: { _id: 'E2E_Enable', value: true },
});
});

@ -3,7 +3,7 @@ import { expect } from 'chai';
import { getCredentials, api, request, credentials, group, apiPrivateChannelName } from '../../data/api-data.js';
import { adminUsername, password } from '../../data/user.js';
import { createUser, login } from '../../data/users.helper';
import { updatePermission } from '../../data/permissions.helper';
import { updatePermission, updateSetting } from '../../data/permissions.helper';
import { createRoom } from '../../data/rooms.helper';
import { createIntegration, removeIntegration } from '../../data/integration.helper';
@ -43,7 +43,49 @@ describe('[Groups]', function() {
})
.end(done);
});
describe('/groups.create (encrypted)', () => {
it('should create a new encrypted group', async () => {
await request.post(api('groups.create'))
.set(credentials)
.send({
name: `encrypted-${ apiPrivateChannelName }`,
extraData: {
encrypted: true,
},
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.nested.property('group.name', `encrypted-${ apiPrivateChannelName }`);
expect(res.body).to.have.nested.property('group.t', 'p');
expect(res.body).to.have.nested.property('group.msgs', 0);
expect(res.body).to.have.nested.property('group.encrypted', true);
});
});
it('should create the encrypted room by default', async () => {
await updateSetting('E2E_Enabled_Default_PrivateRooms', true);
try {
await request.post(api('groups.create'))
.set(credentials)
.send({
name: `default-encrypted-${ apiPrivateChannelName }`,
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.nested.property('group.name', `default-encrypted-${ apiPrivateChannelName }`);
expect(res.body).to.have.nested.property('group.t', 'p');
expect(res.body).to.have.nested.property('group.msgs', 0);
expect(res.body).to.have.nested.property('group.encrypted', true);
});
} finally {
await updateSetting('E2E_Enabled_Default_PrivateRooms', false);
}
});
});
describe('[/groups.info]', () => {
let testGroup = {};
let groupMessage = {};
@ -177,7 +219,6 @@ describe('[Groups]', function() {
it('/groups.invite', async () => {
const roomInfo = await getRoomInfo(group._id);
return request.post(api('groups.invite'))
.set(credentials)
.send({

Loading…
Cancel
Save