Skip to content

Commit

Permalink
Merge branch 'develop' into fix-flex-on-admin
Browse files Browse the repository at this point in the history
  • Loading branch information
tassoevan committed Apr 25, 2019
2 parents 46cd149 + 5ada58f commit 2e5db1f
Show file tree
Hide file tree
Showing 68 changed files with 414 additions and 449 deletions.
60 changes: 5 additions & 55 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,11 @@ test-save-npm-cache: &test-save-npm-cache
test-docker-image: &test-docker-image
circleci/node:8.11-stretch-browsers

test: &test
test-with-oplog: &test-with-oplog
<<: *defaults
environment: &test-environment
environment:
TEST_MODE: "true"
MONGO_URL: mongodb://localhost:27017/rocketchat


test-with-oplog: &test-with-oplog
<<: *test
environment:
<<: *test-environment
MONGO_OPLOG_URL: mongodb://localhost:27017/local

steps:
Expand All @@ -69,19 +63,6 @@ test-with-oplog: &test-with-oplog
- save_cache: *test-save-npm-cache
- store_artifacts: *test-store_artifacts

test-without-oplog: &test-without-oplog
<<: *test
steps:
- attach_workspace: *attach_workspace
- checkout
- run: *test-install-dependencies
- restore_cache: *test-restore-npm-cache
- run: *test-npm-install
- run: *test-run
- save_cache: *test-save-npm-cache
- store_artifacts: *test-store_artifacts


version: 2
jobs:
build:
Expand Down Expand Up @@ -136,6 +117,9 @@ jobs:
# rm -rf node_modules
# rm -f package-lock.json
meteor npm install
cd packages/rocketchat-livechat/.app
meteor npm install
cd -
- run:
name: Lint
Expand Down Expand Up @@ -248,32 +232,6 @@ jobs:
- image: mongo:4.0
command: [mongod, --noprealloc, --smallfiles, --replSet=rs0]


test-without-oplog-mongo-3-2:
<<: *test-without-oplog
docker:
- image: *test-docker-image
- image: mongo:3.2

test-without-oplog-mongo-3-4:
<<: *test-without-oplog
docker:
- image: *test-docker-image
- image: mongo:3.4

test-without-oplog-mongo-3-6:
<<: *test-without-oplog
docker:
- image: *test-docker-image
- image: mongo:3.6

test-without-oplog-mongo-4-0:
<<: *test-without-oplog
docker:
- image: *test-docker-image
- image: mongo:4.0


deploy:
<<: *defaults
docker:
Expand Down Expand Up @@ -449,20 +407,12 @@ workflows:
only: /^[0-9]+\.[0-9]+\.[0-9]+(?:-(?:rc|beta)\.[0-9]+)?$/
- test-with-oplog-mongo-3-6: *test-mongo-no-pr
- test-with-oplog-mongo-4-0: *test-mongo
- test-without-oplog-mongo-3-2: *test-mongo-no-pr
- test-without-oplog-mongo-3-4: *test-mongo-no-pr
- test-without-oplog-mongo-3-6: *test-mongo-no-pr
- test-without-oplog-mongo-4-0: *test-mongo-no-pr
- deploy:
requires:
- test-with-oplog-mongo-3-2
- test-with-oplog-mongo-3-4
- test-with-oplog-mongo-3-6
- test-with-oplog-mongo-4-0
- test-without-oplog-mongo-3-2
- test-without-oplog-mongo-3-4
- test-without-oplog-mongo-3-6
- test-without-oplog-mongo-4-0
filters:
branches:
only: develop
Expand Down
18 changes: 18 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
{
"extends": ["@rocket.chat/eslint-config"],
"parser": "babel-eslint",
"rules": {
"import/no-unresolved": [2, {
"commonjs": true,
"amd": true,
"ignore": [
"^meteor\/.+$"
]
}],
"import/named": 0,
"import/namespace": 0,
"import/default": 0,
"import/export": 2,
"import/no-cycle": 0,
"import/no-useless-path-segments": 2,
"import/no-duplicates": 2,
"import/no-named-as-default": 0,
"import/no-named-as-default-member": 0
},
"globals": {
"__meteor_bootstrap__" : false,
"__meteor_runtime_config__" : false,
Expand Down
4 changes: 2 additions & 2 deletions app/api/server/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import { Restivus } from 'meteor/nimble:restivus';
import { Logger } from '../../logger';
import { settings } from '../../settings';
import { metrics } from '../../metrics';
import { hasPermission } from '../../authorization';
import { hasPermission, hasAllPermission } from '../../authorization';
import { RateLimiter } from 'meteor/rate-limit';
import { hasAllPermission } from '../../authorization';

import _ from 'underscore';

const logger = new Logger('API', {});
Expand Down
4 changes: 2 additions & 2 deletions app/apps/client/admin/appManage.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { Meteor } from 'meteor/meteor';
import { ReactiveVar } from 'meteor/reactive-var';
import { FlowRouter } from 'meteor/kadira:flow-router';
import { Template } from 'meteor/templating';
import { TAPi18n } from 'meteor/tap:i18n';
import { TAPi18next } from 'meteor/tap:i18n';
import { TAPi18n, TAPi18next } from 'meteor/tap:i18n';
import { Tracker } from 'meteor/tracker';

import { isEmail, APIClient } from '../../../utils';
import { settings } from '../../../settings';
import { Markdown } from '../../../markdown/client';
Expand Down
4 changes: 2 additions & 2 deletions app/assets/server/assets.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { Meteor } from 'meteor/meteor';
import { WebApp } from 'meteor/webapp';
import { WebApp, WebAppInternals } from 'meteor/webapp';
import { settings } from '../../settings';
import { Settings } from '../../models';
import { getURL } from '../../utils/lib/getURL';
import { mime } from '../../utils/lib/mimeTypes';
import { hasPermission } from '../../authorization';
import { RocketChatFile } from '../../file';
import { WebAppHashing } from 'meteor/webapp-hashing';
import { WebAppInternals } from 'meteor/webapp';

import _ from 'underscore';
import sizeOf from 'image-size';
import crypto from 'crypto';
Expand Down
2 changes: 1 addition & 1 deletion app/bigbluebutton/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from './server/bigbluebutton-api';
export { default } from './server/bigbluebutton-api';
2 changes: 1 addition & 1 deletion app/bot-helpers/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from './server/index';
import './server/index';
2 changes: 1 addition & 1 deletion app/emoji-custom/client/lib/emojiCustom.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Meteor } from 'meteor/meteor';
import { Blaze } from 'meteor/blaze';
import { Session } from 'meteor/session';
import { isSetNotNull } from '../lib/function-isSet';
import { isSetNotNull } from './function-isSet';
import { RoomManager, call } from '../../../ui-utils';
import { emoji, EmojiPicker } from '../../../emoji';
import { CachedCollectionManager } from '../../../ui-cached-collection';
Expand Down
2 changes: 1 addition & 1 deletion app/emoji/client/emojiParser.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Tracker.autorun(() => {
continue;
}

if (s.trim(childNode.innerText) === '') {
if (s.trim(childNode.nodeValue) === '') {
continue;
}

Expand Down
2 changes: 1 addition & 1 deletion app/federation/server/PeerClient.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { FederationEvents, FederationKeys, Messages, Rooms, Subscriptions, Users
import { updateStatus } from './settingsUpdater';
import { logger } from './logger';
import { FederatedMessage, FederatedRoom, FederatedUser } from './federatedResources';
import { Federation } from './';
import { Federation } from '.';

export class PeerClient {
constructor() {
Expand Down
2 changes: 1 addition & 1 deletion app/federation/server/PeerDNS.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { FederationDNSCache } from '../../models';

import { logger } from './logger';
import { updateStatus } from './settingsUpdater';
import { Federation } from './';
import { Federation } from '.';

const dnsResolveSRV = Meteor.wrapAsync(dns.resolveSrv);
const dnsResolveTXT = Meteor.wrapAsync(dns.resolveTxt);
Expand Down
2 changes: 1 addition & 1 deletion app/federation/server/PeerHTTP/PeerHTTP.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Meteor } from 'meteor/meteor';
import { HTTP } from 'meteor/http';

import { logger } from '../logger';
import { Federation } from '../';
import { Federation } from '..';

import { skipRetryOnSpecificError, delay } from './utils';

Expand Down
2 changes: 1 addition & 1 deletion app/federation/server/PeerServer/PeerServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Rooms, Subscriptions } from '../../../models';

import { FederatedMessage, FederatedRoom, FederatedUser } from '../federatedResources';
import { logger } from '../logger.js';
import { Federation } from '../';
import { Federation } from '..';

export class PeerServer {
constructor() {
Expand Down
2 changes: 1 addition & 1 deletion app/federation/server/PeerServer/routes/uploads.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { API } from '../../../../api';
import { Uploads } from '../../../../models';
import { FileUpload } from '../../../../file-upload';

import { Federation } from '../../';
import { Federation } from '../..';

API.v1.addRoute('federation.uploads', { authRequired: false }, {
get() {
Expand Down
2 changes: 1 addition & 1 deletion app/federation/server/PeerServer/routes/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { API } from '../../../../api';
import { Users } from '../../../../models';

import { FederatedUser } from '../../federatedResources';
import { Federation } from '../../';
import { Federation } from '../..';

API.v1.addRoute('federation.users', { authRequired: false }, {
get() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { FileUpload } from '../../../file-upload';
import { FederatedResource } from './FederatedResource';
import { FederatedRoom } from './FederatedRoom';
import { FederatedUser } from './FederatedUser';
import { Federation } from '../';
import { Federation } from '..';

export class FederatedMessage extends FederatedResource {
constructor(localPeerIdentifier, message) {
Expand Down
2 changes: 1 addition & 1 deletion app/federation/server/methods/addUser.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Meteor } from 'meteor/meteor';
import { Users } from '../../../models';

import { Federation } from '../';
import { Federation } from '..';
import { logger } from '../logger';

export function addUser(identifier) {
Expand Down
2 changes: 1 addition & 1 deletion app/federation/server/methods/searchUsers.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Meteor } from 'meteor/meteor';

import { Federation } from '../';
import { Federation } from '..';

export function searchUsers(identifier) {
if (!Meteor.userId()) {
Expand Down
4 changes: 2 additions & 2 deletions app/file-upload/server/config/AmazonS3.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import _ from 'underscore';
import { settings } from '../../../settings';
import { FileUploadClass } from '../lib/FileUpload';
import { FileUpload } from '../lib/FileUpload';
import { FileUploadClass, FileUpload } from '../lib/FileUpload';

import '../../ufs/AmazonS3/server.js';
import http from 'http';
import https from 'https';
Expand Down
2 changes: 1 addition & 1 deletion app/lazy-load/client/lazyloadImage.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ReactiveVar } from 'meteor/reactive-var';
import { Template } from 'meteor/templating';
import './lazyloadImage.html';
import { addImage } from './';
import { addImage } from '.';

const emptyImageEncoded =
'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8+/u3PQAJJAM0dIyWdgAAAABJRU5ErkJggg==';
Expand Down
6 changes: 0 additions & 6 deletions app/ldap/server/ldap.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { settings } from '../../settings';
import { Logger } from '../../logger';
import ldapjs from 'ldapjs';
import Bunyan from 'bunyan';
import ldapEscape from 'ldap-escape';

const logger = new Logger('LDAP', {
sections: {
Expand Down Expand Up @@ -183,7 +182,6 @@ export default class LDAP {
}

getUserFilter(username) {
username = ldapEscape.filter`${ username }`;
const filter = [];

if (this.options.User_Search_Filter !== '') {
Expand Down Expand Up @@ -320,9 +318,6 @@ export default class LDAP {
}

isUserInGroup(username, userdn) {
username = ldapEscape.filter`${ username }`;
userdn = ldapEscape.dn`${ userdn }`;

if (!this.options.group_filter_enabled) {
return true;
}
Expand Down Expand Up @@ -484,7 +479,6 @@ export default class LDAP {
}

authSync(dn, password) {
dn = ldapEscape.dn`${ dn }`;
logger.auth.info('Authenticating', dn);

try {
Expand Down
12 changes: 8 additions & 4 deletions app/ldap/server/loginHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import { Logger } from '../../logger';
import { slug, getLdapUsername, getLdapUserUniqueID, syncUserData, addLdapUser } from './sync';
import LDAP from './ldap';

import ldapEscape from 'ldap-escape';

const logger = new Logger('LDAPHandler', {});

function fallbackDefaultAccountSystem(bind, username, password) {
Expand Down Expand Up @@ -46,23 +48,25 @@ Accounts.registerLoginHandler('ldap', function(loginRequest) {
const ldap = new LDAP();
let ldapUser;

const escapedUsername = ldapEscape.filter`${ loginRequest.username }`;

try {
ldap.connectSync();
const users = ldap.searchUsersSync(loginRequest.username);
const users = ldap.searchUsersSync(escapedUsername);

if (users.length !== 1) {
logger.info('Search returned', users.length, 'record(s) for', loginRequest.username);
logger.info('Search returned', users.length, 'record(s) for', escapedUsername);
throw new Error('User not Found');
}

if (ldap.authSync(users[0].dn, loginRequest.ldapPass) === true) {
if (ldap.isUserInGroup(loginRequest.username, users[0].dn)) {
if (ldap.isUserInGroup(escapedUsername, users[0].dn)) {
ldapUser = users[0];
} else {
throw new Error('User not in a valid group');
}
} else {
logger.info('Wrong password for', loginRequest.username);
logger.info('Wrong password for', escapedUsername);
}
} catch (error) {
logger.error(error);
Expand Down
4 changes: 2 additions & 2 deletions app/lib/lib/roomTypes/private.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ import { ChatRoom, ChatSubscription } from '../../../models';
import { openRoom } from '../../../ui-utils';
import { settings } from '../../../settings';
import { hasAtLeastOnePermission, hasPermission } from '../../../authorization';
import { getUserPreference, RoomSettingsEnum, RoomTypeConfig, RoomTypeRouteConfig, UiTextContext } from '../../../utils';
import { getUserPreference, RoomSettingsEnum, RoomTypeConfig, RoomTypeRouteConfig, UiTextContext, roomTypes } from '../../../utils';
import { getRoomAvatarURL } from '../../../utils/lib/getRoomAvatarURL';
import { getAvatarURL } from '../../../utils/lib/getAvatarURL';
import { roomTypes } from '../../../utils';


export class PrivateRoomRoute extends RoomTypeRouteConfig {
constructor() {
Expand Down
2 changes: 1 addition & 1 deletion app/lib/server/functions/notifications/mobile.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Meteor.startup(() => {
});

async function getBadgeCount(userId) {
const [result] = await SubscriptionRaw.aggregate([
const [result = {}] = await SubscriptionRaw.aggregate([
{ $match: { 'u._id': userId } },
{
$group: {
Expand Down
1 change: 0 additions & 1 deletion app/lib/server/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
export { hostname } from '../lib/startup/settingsOnLoadSiteUrl';
export * from './lib';
export * from './functions';
import './startup/email';
Expand Down
Loading

0 comments on commit 2e5db1f

Please sign in to comment.