Skip to content

Commit d57a64d

Browse files
authored
Merge pull request #16274 from RocketChat/release-2.4.2
Release 2.4.2
2 parents 09269af + c6645d1 commit d57a64d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+978
-669
lines changed

.docker/Dockerfile.rhel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
FROM registry.access.redhat.com/rhscl/nodejs-8-rhel7
22

3-
ENV RC_VERSION 2.4.1
3+
ENV RC_VERSION 2.4.2
44

55
66

.github/history.json

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38137,6 +38137,71 @@
3813738137
]
3813838138
}
3813938139
]
38140+
},
38141+
"2.3.3": {
38142+
"node_version": "8.15.1",
38143+
"npm_version": "6.9.0",
38144+
"mongo_versions": [],
38145+
"pull_requests": [
38146+
{
38147+
"pr": "16171",
38148+
"title": "[FIX] Add missing password field back to administration area",
38149+
"userLogin": "rodrigok",
38150+
"milestone": "2.4.1",
38151+
"contributors": [
38152+
"rodrigok",
38153+
"sampaiodiego"
38154+
]
38155+
}
38156+
]
38157+
},
38158+
"2.4.2": {
38159+
"node_version": "8.17.0",
38160+
"npm_version": "6.13.4",
38161+
"mongo_versions": [
38162+
"3.4",
38163+
"3.6",
38164+
"4.0"
38165+
],
38166+
"pull_requests": [
38167+
{
38168+
"pr": "16147",
38169+
"title": "[FIX] Setup Wizard inputs and Admin Settings",
38170+
"userLogin": "tassoevan",
38171+
"milestone": "2.4.2",
38172+
"contributors": [
38173+
"tassoevan",
38174+
"ggazzo"
38175+
]
38176+
},
38177+
{
38178+
"pr": "16253",
38179+
"title": "[FIX] Slack CSV User Importer",
38180+
"userLogin": "ggazzo",
38181+
"milestone": "2.4.2",
38182+
"contributors": [
38183+
"ggazzo"
38184+
]
38185+
},
38186+
{
38187+
"pr": "16233",
38188+
"title": "[FIX] Integrations list without pagination and outgoing integration creation",
38189+
"userLogin": "MarcosSpessatto",
38190+
"milestone": "2.4.2",
38191+
"contributors": [
38192+
"MarcosSpessatto"
38193+
]
38194+
},
38195+
{
38196+
"pr": "16184",
38197+
"title": "[FIX] User stuck after reset password",
38198+
"userLogin": "sampaiodiego",
38199+
"milestone": "2.4.2",
38200+
"contributors": [
38201+
"sampaiodiego"
38202+
]
38203+
}
38204+
]
3814038205
}
3814138206
}
3814238207
}

HISTORY.md

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
11

2+
# 2.4.2
3+
`2020-01-17 · 4 🐛 · 4 👩‍💻👨‍💻`
4+
5+
### Engine versions
6+
- Node: `8.17.0`
7+
- NPM: `6.13.4`
8+
- MongoDB: `3.4, 3.6, 4.0`
9+
10+
### 🐛 Bug fixes
11+
12+
- Setup Wizard inputs and Admin Settings ([#16147](https://github.com/RocketChat/Rocket.Chat/pull/16147))
13+
- Slack CSV User Importer ([#16253](https://github.com/RocketChat/Rocket.Chat/pull/16253))
14+
- Integrations list without pagination and outgoing integration creation ([#16233](https://github.com/RocketChat/Rocket.Chat/pull/16233))
15+
- User stuck after reset password ([#16184](https://github.com/RocketChat/Rocket.Chat/pull/16184))
16+
17+
### 👩‍💻👨‍💻 Core Team 🤓
18+
19+
- [@MarcosSpessatto](https://github.com/MarcosSpessatto)
20+
- [@ggazzo](https://github.com/ggazzo)
21+
- [@sampaiodiego](https://github.com/sampaiodiego)
22+
- [@tassoevan](https://github.com/tassoevan)
23+
224
# 2.4.1
3-
`2020-01-10 · 3 🐛 · 4 👩‍💻👨‍💻`
25+
`2020-01-10 · 2 🐛 · 3 👩‍💻👨‍💻`
426

527
### Engine versions
628
- Node: `8.17.0`
@@ -10,14 +32,12 @@
1032
### 🐛 Bug fixes
1133

1234
- Enable apps change properties of the sender on the message as before ([#16189](https://github.com/RocketChat/Rocket.Chat/pull/16189))
13-
- Add missing password field back to administration area ([#16171](https://github.com/RocketChat/Rocket.Chat/pull/16171))
1435
- JS errors on Administration page ([#16139](https://github.com/RocketChat/Rocket.Chat/pull/16139))
1536

1637
### 👩‍💻👨‍💻 Core Team 🤓
1738

1839
- [@d-gubert](https://github.com/d-gubert)
1940
- [@mariaeduardacunha](https://github.com/mariaeduardacunha)
20-
- [@rodrigok](https://github.com/rodrigok)
2141
- [@sampaiodiego](https://github.com/sampaiodiego)
2242

2343
# 2.4.0
@@ -142,6 +162,23 @@
142162
- [@sampaiodiego](https://github.com/sampaiodiego)
143163
- [@tassoevan](https://github.com/tassoevan)
144164

165+
# 2.3.3
166+
`2020-01-10 · 1 🐛 · 2 👩‍💻👨‍💻`
167+
168+
### Engine versions
169+
- Node: `8.15.1`
170+
- NPM: `6.9.0`
171+
- MongoDB: ``
172+
173+
### 🐛 Bug fixes
174+
175+
- Add missing password field back to administration area ([#16171](https://github.com/RocketChat/Rocket.Chat/pull/16171))
176+
177+
### 👩‍💻👨‍💻 Core Team 🤓
178+
179+
- [@rodrigok](https://github.com/rodrigok)
180+
- [@sampaiodiego](https://github.com/sampaiodiego)
181+
145182
# 2.3.2
146183
`2019-12-12 · 2 🐛 · 2 👩‍💻👨‍💻`
147184

app/importer-slack-users/server/importer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export class SlackUsersImporter extends Base {
102102
// since we have an existing user, let's try a few things
103103
userId = existantUser._id;
104104
u.rocketId = existantUser._id;
105-
Users.update({ _id: u.rocketId }, { $addToSet: { importIds: u.id } });
105+
Users.update({ _id: u.rocketId }, { $addToSet: { importIds: u.user_id } });
106106

107107
Users.setEmail(existantUser._id, u.email);
108108
Users.setEmailVerified(existantUser._id, u.email);
@@ -117,7 +117,7 @@ export class SlackUsersImporter extends Base {
117117
Meteor.runAsUser(userId, () => {
118118
Meteor.call('setUsername', u.username, { joinDefaultChannelsSilenced: true });
119119
Users.setName(userId, u.name);
120-
Users.update({ _id: userId }, { $addToSet: { importIds: u.id } });
120+
Users.update({ _id: userId }, { $addToSet: { importIds: u.user_id } });
121121
Users.setEmail(userId, u.email);
122122
Users.setEmailVerified(userId, u.email);
123123
u.rocketId = userId;

app/integrations/client/views/integrations.js

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@ import { ReactiveVar } from 'meteor/reactive-var';
33
import { TAPi18n } from 'meteor/rocketchat:tap-i18n';
44
import { Tracker } from 'meteor/tracker';
55
import moment from 'moment';
6+
import _ from 'underscore';
67

78
import { hasAtLeastOnePermission } from '../../../authorization';
89
import { integrations } from '../../lib/rocketchat';
910
import { SideNav } from '../../../ui-utils/client';
1011
import { APIClient } from '../../../utils/client';
1112

13+
const ITEMS_COUNT = 50;
14+
1215
Template.integrations.helpers({
1316
hasPermission() {
1417
return hasAtLeastOnePermission([
@@ -38,7 +41,25 @@ Template.integrations.onRendered(() => {
3841

3942
Template.integrations.onCreated(async function() {
4043
this.integrations = new ReactiveVar([]);
44+
this.offset = new ReactiveVar(0);
45+
this.total = new ReactiveVar(0);
46+
47+
this.autorun(async () => {
48+
const offset = this.offset.get();
49+
const { integrations, total } = await APIClient.v1.get(`integrations.list?count=${ ITEMS_COUNT }&offset=${ offset }`);
50+
this.total.set(total);
51+
this.integrations.set(this.integrations.get().concat(integrations));
52+
});
53+
});
4154

42-
const { integrations } = await APIClient.v1.get('integrations.list');
43-
this.integrations.set(integrations);
55+
Template.integrations.events({
56+
'scroll .content': _.throttle(function(e, instance) {
57+
if (e.target.scrollTop >= (e.target.scrollHeight - e.target.clientHeight)) {
58+
const integrations = instance.integrations.get();
59+
if (instance.total.get() <= integrations.length) {
60+
return;
61+
}
62+
return instance.offset.set(instance.offset.get() + ITEMS_COUNT);
63+
}
64+
}, 200),
4465
});

app/integrations/client/views/integrationsOutgoing.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Template.integrationsOutgoing.onCreated(async function _integrationsOutgoingOnCr
5151
};
5252

5353
const integration = await getIntegration(params.id, Meteor.userId());
54-
if (!integration) {
54+
if (params.id && !integration) {
5555
toastr.error(TAPi18n.__('No_integration_found'));
5656
FlowRouter.go('admin-integrations');
5757
return;

app/ui-login/client/reset-password/resetPassword.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,24 @@ const resetPassword = (token, password) => new Promise((resolve, reject) => {
4747
});
4848
});
4949

50+
async function setUserPassword(password) {
51+
try {
52+
const result = await call('setUserPassword', password);
53+
if (!result) {
54+
return toastr.error(t('Error'));
55+
}
56+
57+
Meteor.users.update({ _id: Meteor.userId() }, {
58+
$set: {
59+
requirePasswordChange: false,
60+
},
61+
});
62+
} catch (e) {
63+
console.error(e);
64+
toastr.error(t('Error'));
65+
}
66+
}
67+
5068
Template.resetPassword.events({
5169
'input #newPassword'(e, i) {
5270
i.state.set('password', e.currentTarget.value);
@@ -65,7 +83,7 @@ Template.resetPassword.events({
6583

6684
try {
6785
if (Meteor.userId() && !token) {
68-
return call('setUserPassword', password);
86+
return setUserPassword(password);
6987
}
7088
await resetPassword(token, password);
7189
} catch (error) {

app/utils/rocketchat.info

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"version": "2.4.1"
2+
"version": "2.4.2"
33
}

client/components/admin/info/DescriptionList.stories.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
import React from 'react';
22

33
import { DescriptionList } from './DescriptionList';
4+
import { Page } from '../../basic/Page';
45

56
export default {
67
title: 'admin/info/DescriptionList',
78
component: DescriptionList,
89
decorators: [
910
(fn) => <div className='rc-old'>{fn()}</div>,
10-
(fn) => <section className='page-container page-list'>
11-
<div className='content'>
11+
(fn) => <Page>
12+
<Page.Content>
1213
{fn()}
13-
</div>
14-
</section>,
14+
</Page.Content>
15+
</Page>,
1516
],
1617
};
1718

client/components/admin/info/InformationPage.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { Button, Callout, Icon, Margins } from '@rocket.chat/fuselage';
1+
import { Button, ButtonGroup, Callout, Icon, Margins } from '@rocket.chat/fuselage';
22
import React from 'react';
33

44
import { Link } from '../../basic/Link';
5-
import { Header } from '../../header/Header';
5+
import { Page } from '../../basic/Page';
66
import { useTranslation } from '../../../contexts/TranslationContext';
77
import { RocketChatSection } from './RocketChatSection';
88
import { CommitSection } from './CommitSection';
@@ -27,19 +27,19 @@ export function InformationPage({
2727

2828
const alertOplogForMultipleInstances = statistics && statistics.instanceCount > 1 && !statistics.oplogEnabled;
2929

30-
return <section className='page-container' data-qa='admin-info'>
31-
<Header rawSectionName={t('Info')} hideHelp>
30+
return <Page data-qa='admin-info'>
31+
<Page.Header title={t('Info')}>
3232
{canViewStatistics
33-
&& <Header.ActionBlock>
33+
&& <ButtonGroup>
3434
<Button disabled={isLoading} primary type='button' onClick={onClickRefreshButton}>
3535
<Icon name='reload' /> {t('Refresh')}
3636
</Button>
37-
</Header.ActionBlock>}
38-
</Header>
37+
</ButtonGroup>}
38+
</Page.Header>
3939

40-
<div className='content'>
40+
<Page.Content>
4141
{alertOplogForMultipleInstances
42-
&& <Margins blockEnd='16'>
42+
&& <Margins blockEnd='x16'>
4343
<Callout type='danger' title={t('Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances')}>
4444
<p>
4545
{t('Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances_details')}
@@ -58,6 +58,6 @@ export function InformationPage({
5858
<BuildEnvironmentSection info={info} />
5959
{canViewStatistics && <UsageSection statistics={statistics} isLoading={isLoading} />}
6060
<InstancesSection instances={instances} />
61-
</div>
62-
</section>;
61+
</Page.Content>
62+
</Page>;
6363
}

0 commit comments

Comments
 (0)