3.15.0


2021-05-28 · 8 · 12 · 62 · 47 · 34 ‍‍

Engine versions

  • Node: 12.22.1
  • NPM: 6.14.1
  • MongoDB: 3.4, 3.6, 4.0, 4.2
  • Apps-Engine: 1.26.0

New features

  • APPS: Ability for Rocket.Chat Apps to delete rooms (#21875)

    Adds a new delete method on the rooms bridge in order to trigger the deletion of rooms via the Apps-Engine.

  • ENTERPRISE: Introduce Load Rotation routing algorithm for Omnichannel (#22090)

    This PR introduces a new Auto Chat Distribution (ACD) algorithm for Omnichannel: Load Rotation.
    The algorithm distributes chats to agents one by one, which means that when a new chat arrives, the agent with the oldest routing assignment time will be selected to serve the chat, regardless of the number of chats in progress each agent has.

    Screen Shot 2021-05-20 at 5 17 40 PM

  • Back button for Omnichannel (#21647)

  • New Message Parser (#21962)

    The objective is to put an end to the confusion that we face having multiple parsers, and the problems that this brings, it is still experimental then users need to choose to use it.

    The benefits are multiple. no more unexpected cases or grammatical collisions (in addition to more flexible nested cases like bold within link labels).
    Besides, we no longer render raw html, instead we use components, so the xss attacks are over (the easy ones at least). Without further discoveries and at the fronted, we only reder what is delivered thus improving our performance.
    This can be used in multiple places, (message, alert, sidenav and in the entire mobile application.)

  • Option to notify failed login attempts to a channel (#21968)

  • Option to prevent users from using Invisible status (#20084)

    Add an admin option to allow/disallow the Invisible status option from all users. This option is available in the Accounts section.

    2021-01-06-11-55-22

    If the option is turned off, the users.setStatus endpoint is also restricted from users trying to change their status to Invisible, throwing the following error:

    {
      "success": false,
      "error": "Invisible status is disabled [error-not-allowed]",
      "stack": "Error: Invisible status is disabled [error-not-allowed]\n    at DDPCommon.MethodInvocation.<anonymous> (app/api/server/v1/users.js:425:13)\n    at packages/dispatch_run-as-user.js:211:14\n    at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1234:12)\n    at Object.Meteor.runAsUser (packages/dispatch_run-as-user.js:210:33)\n    at Object.post (app/api/server/v1/users.js:415:10)\n    at app/api/server/api.js:394:82\n    at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1234:12)\n    at Object._internalRouteActionHandler [as action] (app/api/server/api.js:394:39)\n    at Route.share.Route.Route._callEndpoint (packages/nimble_restivus/lib/route.coffee:150:32)\n    at packages/nimble_restivus/lib/route.coffee:59:33\n    at packages/simple_json-routes.js:98:9",
      "errorType": "error-not-allowed",
      "details": {
          "method": "users.setStatus"
      }
    }
  • Paginated and Filtered selects on new/edit unit (#22052)

    REQUIRES RocketChat/Rocket.Chat.Fuselage#447

    Adds infinite scrolling selects to the units edit/create with the ability to be filtered by text as well

    Screen Shot 2021-05-17 at 9 24 19 AM

    This Affects the monitors and departments inputs

  • Remove exif metadata from uploaded files (#22044)

Improvements

  • Add groups to the directory channels list (#21687)

    • Add groups (private channels) to the directory channels list. Only groups in which the logged user is subscribed are shown in the list.
  • Add support to queries in channels.members and groups.members endpoints (#21414)

    • Add support to queries (within the query parameter) in channels.members and groups.members endpoints.
  • Add support to queries in the im.members endpoint (#21471)

    • Add support to queries within the name, username and status parameters.
  • Add team members to channel when set as auto join (#22056)

    Create a channels.autojoin endpoint to set a channel as autojoin. Also make it so that old team members join this channel automatically

  • CAS popup login size input type (#21907 by @Deepak-learner)

  • Inconsistent and misleading 2FA settings (#22042)

    Currently, there are some inconsistencies and incorrect behaviors on the 2FA settings, such as:

    • When disabling the TOTP 2FA, all 2FA are disabled;

    • There are no option to disable only the TOTP 2FA;

    • If 2FA are disabled, the other settings aren't blocked (the e-mail 2FA setting, for example);

    • It lacks some labels to warn the user of some specific 2FA options.

    This PR looks to fix those issues.

  • LDAP port setting input type to allow only numbers (#21912 by @Deepak-learner)

  • Missing modal on deleting a role (#22020)

    image

  • Omnichannel Room Information panel flow when user save or close on form page. (#21688)

  • Prevent gallery to close when clicking on a non-zoomable image (#21854)

  • Replace method to API Endpoint on Prune Messages (#21836)

  • Support for Google OAuth for mobile app (#22014)

Bug fixes

  • APPS: Scheduler duplicating recurrent tasks after server restart (#21866)

    Reintroduces the old method for creating recurring tasks in the apps' scheduler bridge to ensure tasks won't be duplicated.

    By introducing the skipImmediate property option at the scheduleRecurring method, the every method from agenda.js, which ensured no duplicates were created, was removed in favor of a more manual procedure. The new procedure was not taking into account the management of duplicates and as a result multiple copies of the same task could be created and they would get executed at the same time.

    In the case of server restarts, every time this event happened and the app had the startupSetting configured to use recurring tasks, they would get recreated the same number of times. In the case of a server that restarts frequently (n times), there would be the same (n) number of tasks duplicated (and running) in the system.

  • ENTERPRISE: Omnichannel Monitors can't forward chats to departments that they are not supervising (#22128)

    Currently, Omnichannel Monitors just can't forward chats to a department that is part of a Business Unit they're not supervising. This issue is causing critical problems on customer operations since this behaviour is not by design.
    The reason this issue is taking place is that, by design, Monitors just have access to departments related to the Business Units they're monitoring, but this restriction is designed only for Omnichannel management areas, which means in case the monitor is, also, an agent, they're supposed to be able to forward a chat to any available departments regardless the Business Units it's associated with.
    So, initially, the restriction was implemented on the Department Model and, now, we're implementing the logic properly and introducing a new parameter to department endpoints, so the client will define which type of departments it needs.

  • ENTERPRISE: Omnichannel Monitors can't forward chats to departments that they are not supervising (#22142)

  • Adding Custom Fields to show on user info check (#20955 by @yash-rajpal)

    The setting custom fields to show under user info was not being used when rendering fields in user info. This pr adds those checks and only renders the fields mentioned under in admin -> accounts -> Custom Fields to Show in User Info.

  • Adding permission 'add-team-channel' for Team Channels Contextual bar (#21591 by @yash-rajpal)

    Added 'add-team-channel' permission to the 2 buttons in team channels contextual bar, for adding channels to teams.

  • Adding retentionEnabledDefault check before showing warning message (#20692 by @yash-rajpal)

    Added check for retentionEnabledDefault before showing prune warning message.

  • App crashes when downloads come from WebDAV and the server is not available (#21985)

  • App license error detail message removed (#22091)

    Banner in the App Detail page that showed a message explaining why the license validation had failed was removed previously, likely during the React rewrite.

    We're bringing it back.

  • Auto-join Tags misalignment (#21980)

    Captura de Tela 2021-05-06 às 18 07 07
  • Close stream properly at Omnichannel room when move to queue (#22015)

  • Contact Bar not reactive (#22016)

  • Convert a channel to Team Modal Visual Issues (#21967)

    image

  • Correcting a the wrong Archived label in edit room (#21717 by @Jeanstaquet)

    image

    A label exists for Archived, and it has not been used. So I replaced it with the existing one. the label 'Archived' does not exist.

  • Custom OAuth not being completely deleted (#21637 by @siva2204)

  • Directory Table's Sort Function (#21921)

    TableRow Margin Issue:

    image

    Table Sort Action Issue:

    directory

  • Discussion names showing a random value (#22172)

  • Dismiss button for save your encryption password dialog Issue#13557 (#19872 by @savish28)

  • Display Modes (#22058)

  • Emails being sent with HTML entities getting escaped multiple times (#21994 by @bhavayAnand9)

    fixes an issue where if password contains special HTML character like &, in the email it would end up something like &amp;amp;

    password was going through multiple escapeHTML function calls
    secure&123 => secure&amp;123 => secure&amp;amp;123

  • Error when you look at the members list of a room in which you are not a member (#21952 by @Jeanstaquet)

    Before, when you look at the members of a room in which you are not a member the app crashed, i corrected this problem.
    Indeed, there was a check on each currentSubscription. to see if it was not undefined except on currentSubscription.blocker

    https://user-images.githubusercontent.com/45966964/117087470-d3101400-ad4f-11eb-8f44-0ebca830a4d8.mp4

  • errors when viewing a room that you're not subscribed to (#21984)

  • Files list will not show deleted files. (#21732 by @Darshilp326)

    When you delete files from the header option, deleted files will not be shown.

    https://user-images.githubusercontent.com/55157259/115730786-38552400-a3a4-11eb-9684-7f510920db66.mp4

  • Fixed the fact that when a team was deleted, not all channels were unlinked from the team (#21942 by @Jeanstaquet)

    Fixed the fact that when a team was deleted, not all channels were unlinked from the team. Only the first room of the rooms list was unlinked.

    After the fix, there is nos more errors:

    https://user-images.githubusercontent.com/45966964/117055182-2a47c180-ad1b-11eb-806f-07fb3fa7ec12.mp4

  • Fixing Jitsi call ended Issue. (#21808)

    The new rewrite in react of contextual call component broke the Jitsi "click to join" messages. The issue being after 10 seconds of initiating the call, the message "click to join" always returned "Call Ended" even if the call was still going on.
    This was due to the fact that after closing the contextual bar, the react component gets unmounted and we are not able to keep track of ongoing call and increase jitsi room timeout.

    This PR solves this issue by using the setInterval methods on component will unmount. When the call component unmounts, we keep on checking the state of jitsi call and based on conditions increase the jitsi room timeout. After the call is ended all setInterval calls are closed.

    This PR also removes the implementation of HEARTBEAT events of JitsiBridge. This is because this is no longer needed and all logic is being taken care of by the unmount function.

  • Handle NPS errors instead of throwing them (#21945)

  • Header Tag Visual Issues (#21991)

    Normal

    image

    Hover

    image

  • Horizontal scrollbar not showing on tables (#21852)

  • IE11 support (#21893)

  • iFrame size on embedded videos (#21992)

    Before

    image

    After

    image

  • Incorrect error message when opening channel in anonymous read (#22066)

    Every time you open a public channel with threads in it when using anonymous read an Incorrect User error will be thrown.
    This is an incorrect behaviour as everything that is public should be valid for an anonymous user.

    Some files are adapted to that and have already removed this kind of incorrect error, but there are some that need some fix, this PR aims to do that.

  • Incorrect Team's Info spacing (#22021)

    image

  • Label's disabled color on Create New Modal (#21975)

    Captura de Tela 2021-05-06 às 13 20 06
  • Make the FR translation consistent with the 'room' translation + typos (#21913 by @Jeanstaquet)

    In the FR translation files, there were two terms that were used to refer to 'room':

    • 'salon' (149 times used)

    image

    • 'salle' (46 times used)

    image

    The problem is that both were used in the same context and sometimes even in the same option list.
    However, since 'salon' is a better translation and was also in the majority, I used the translation 'salon' wherever 'salle' was marked.

    For example:
    image

  • Maximum 25 channels can be loaded in the teams' channels list (#21708 by @Jeanstaquet)

    Before a maximum 25 of channels was able to be displayed in the teams' channels list.

  • Missing margins on select team modal (#21965)

    select_team

  • Missing proper permissions on Teams Channels (#21946)

  • No warning message is sent when user is removed from a team's main channel (#21949)

    • Send a warning message to a team's main channel when a user is removed from the team;
    • Trigger events while removing a user from a team's main channel;
    • Fix usersCount field in the team's main room when a user is removed from the team (usersCount is now decreased by 1).
  • Not possible accept video call if "Hide right sidebar with click" is enabled (#22175)

  • Notify with sound first message in queue list (#21969)

  • Open a new DM throwing error 404 (#22100)

    Adapts the openRoom function to the new signature of createDirectMessage.

  • Permission's scope on Teams Channels (#22083)

    Allow moderators and owners to add or create channels on Teams Channels

  • Presence.get method (#22129)

    closes #21873

  • Prevent the userInfo tab to return 'User not found' each time if a certain member of a DM group has been deleted (#21970 by @Jeanstaquet)

    Prevent the userInfo tab to return 'User not found' if a member of a DM group has been deleted.
    This happens if the user that has been deleted is the one originally displayed on the userInfo tab in a DM group with >2 users.

    https://user-images.githubusercontent.com/45966964/117221081-db785580-ae08-11eb-9b33-2314a99eb037.mp4

  • Prune messages not cleaning up unread threads (#21326 by @renancleyson-dev)

    Fixes permanent unread messages when admin prune at least two different thread messages in the room that were unread by some user.
    screencapture-localhost-3000-channel-general-thread-2021-03-26-13_17_16

  • Redirect on remove user from channel by user profile tab (#21951)

    redirect

  • Remove referer header when requesting attachment data (#21987)

  • Removed fields from User Info for which the user doesn't have permissions. (#20923 by @Darshilp326)

    Removed LastLogin, CreatedAt and Roles for users who don't have permission.

    https://user-images.githubusercontent.com/55157259/109381351-f2c62e80-78ff-11eb-9289-e11072bf62f8.mp4

  • Replace query param by name, username and status on the teams.members endpoint (#21539)

    • Replace query param by name, username and status on the teams.members endpoint.
  • Scenarios where 2FA enforcement was not working properly (#22017)

  • Tooltip pointer is blocking Text (#21645 by @sumukhah)

  • Unable to edit a 'direct' room setting in the admin due to the room name (#21636 by @Jeanstaquet)

    When you are in the admin and want to change a room 'd' setting, it doesn't work because it takes into account the name that is set automatically and therefore tries to save that name. Since the name is not valid and should not be registered, we cannot change the setting for the 'd' room.
    I made sure that when you want to change a setting in a 'd' room, that you don't take the name into account

    https://user-images.githubusercontent.com/45966964/115150919-cd85af00-a06a-11eb-9667-ef3dcfc5adb6.mp4

    Behind the scene, the name is not saved

  • Unable to edit a user who does not have an email via the admin or via the user's profile (#21626 by @Jeanstaquet)

    If a user does not have an email address, they cannot change it via their profile or via the admin. I fixed this issue. I have created several profiles and there was one that didn't have an email, I don't know how I did it, I am working on it. I had not modified the db to delete his email, hence the fix

    in admin

    https://user-images.githubusercontent.com/45966964/115112617-9b9b1c80-9f86-11eb-8e3a-950c3c1a1746.mp4

    in the user profile

    https://user-images.githubusercontent.com/45966964/115112620-a0f86700-9f86-11eb-97b1-56eaba42216b.mp4

  • Unable to get channels, sort by most recent message (#21701 by @sumukhah)

  • Unable to update app manually (#21215)

    It allows for update of apps using a zip file.

    When installing apps using the zip file, either by url or the file form, if the app was already installed, an error would be thrown stating the condition and forbidding the installation. Now, when sending a zip file of an app that is already installed, the user is presented with the following modal:

    2021-04-30-113936_627x235_scrot

    If the app also requires permissions to be reviewed, the modal that handles permission reviews will be shown after this one is accepted.

  • Unpin message reactivity (#22029)

    Peek 2021-05-13 11-18

  • Uploading files from WebDAV (#21948)

  • User Impersonation through sendMessage API (#20391)

    Create a new permission: message-impersonate. For new installs only bot role will have the permission and for updating installs the permission will also be given to user role, so it won't break running deployments.

    If a message is being sent with avatar or alias properties, it validates if the sender has the message-impersonate permission, if not, an error is throwed:

    {
      "success": false,
      "error": "Not enough permission",
      "stack": "Error: Not enough permission\n ..."
    }
  • Visibility of burger menu on certain width (#20736 by @yash-rajpal)

    Burger was not visible on a certain width, specifically between 600 to 780. if width is more than 780px sidebar is shown, if less than 600 then burger icon was shown. But it wasn't shown between 600px to 780 px.
    It was because for showing burger icon we were only checking for isMobile which is lenght only less than 600. So i added one more check for condition if length is less than 780 px.

  • When closing chats a comment is always required (#21947)

    Fixes issue with the setting Livechat_request_comment_when_closing_conversation not working as intended

  • Workaround for Autolinker phone problem (#21515)

  • Wrong color and size, thread list Metrics (#21950)

    image

  • Wrong icon on "Move to team" option in the channel info actions (#21944)

    image

    Depends on RocketChat/Rocket.Chat.Fuselage#444

Minor changes
  • [EE] Improve Forwarding Department behaviour with Waiting queue feature (#22043)

  • [EE] Omnichannel monitors not authorized to view departments (#22048)

  • [FIXf] Parent Room Tag Overlapping (#22009)

    tag

  • Add two more test cases to the slash-command test suite (#21317 by @EduardoPicolo)

    Added two more test cases to the slash-command test suite:

    • 'should return an error when the command does not exist'';

    • 'should return an error when no command is provided';

  • Bump actions/stale from v3.0.8 to v3.0.18 (#21877 by @dependabot[bot])

  • Bump: Fuselage 0.26.0 (#22178)

  • Chore: Add missing 'Teams' label in the i18n files for every languages (#21751 by @Jeanstaquet)

    I added the missing Teams label in the i18n folder for EN, FR & NL

  • Chore: Add mongo 4.2 to array of mongo versions supported (#21550)

    • MongoDB 4.2 is now supported
  • Chore: Bump message parser (#22101)

  • Chore: Correct some spelling/typos in English for descriptions/modal (#21832 by @Jeanstaquet)

    I found typos, spelling mistakes, I corrected them

  • Chore: Doc Client Readme (#21588 by @umakantv)

  • Chore: fix invalid type name on TS file (#21814)

  • Chore: Storybook organization and errors (#21923)

  • Chore: Update Docker container references to use registry.rocket.chat endpoint (#22080 by @aviaviavi)

    This change updates the Docker installation instructions to use the new registry.rocket.chat endpoint to pull the rocketchat/rocket.chat container. This is part of the rollout described here: https://rocket.chat/blog/product/docker-images-change/

  • Chore: update fuselage && icons (#22092)

  • i18n: Add missing translation string in account preference (#21448 by @sumukhah)

    "Test Desktop Notifications" was missing in translation, Added to the file.
    Screenshot 2021-04-05 at 3 58 01 PM

    Screenshot 2021-04-05 at 3 58 32 PM
  • i18n: Correct a typo in German (#21711 by @Jeanstaquet)

  • Language update from LingoHub on 2021-04-26Z (#21801)

  • Language update from LingoHub on 2021-05-03Z (#21917)

  • Language update from LingoHub on 2021-05-10Z (#21998)

  • Language update from LingoHub on 2021-05-18Z (#22065)

  • Merge master into develop & Set version to 3.15.0-develop (#21847)

  • Regression: Add "User left team" message type (#22109)

    • Add 'ult' system message type, which is sent when a user leaves a team ("Has left the team.").
  • Regression: Add i18n to license error messages (#22171)

  • Regression: Add impersonate permission to app role (#22006)

  • regression: bump Rocket.Chat.Fuselage package with paginated selects (#22059)

  • Regression: discussions display on sidebar (#22157)

    group by type active

    image

    group by type inactive

    image

  • regression: fix departments with empty ancestors not being returned (#22068)

  • Regression: Fix new 'message-impersonate' permission blocking livechat messages (#21961)

  • Regression: Fix send message validation (#21982)

  • regression: Fix Users list in the Administration (#22034 by @Jeanstaquet)

    The app crashed if no custom fields for user profiles have been created by the admin. I fixed this issue. This bug was introduced by a recent commit.

    https://user-images.githubusercontent.com/45966964/118210838-5b3a9b80-b46b-11eb-9fe5-5b813848190c.mp4

  • Regression: Improve migration 225 (#22099)

  • Regression: Make referrer header configurable (#22126)

  • Regression: Match name or fname when fetching room to send notification for blocked log in attemps (#22067)

  • regression: Migration 225 setting not being fetched correctly (#22108)

  • Regression: Missing room scope on teams channels permission (#22137)

  • regression: Misspelled property in migration 225 (#22093)

  • Regression: not allowed to edit roles due to a new verification (#22159)

    introduced by #21905
    Peek 2021-05-26 22-21

  • regression: Select Team Modal margin (#22030)

    image

  • regression: UserInfoTab Broken (#22019)

  • Regression: Visual issue on sort list item (#22158)

    before

    image

    after

    image

  • Release 3.14.2 (#22135)

  • Release 3.14.4 (#22181)

  • Remove memory leak from userData (#22094)

  • String helpers (#21988)

    It uses string helpers from a external package (@rocket.chat/string-helpers).

  • Update Apps-Engine version (#22176)

  • Upgrade to GitHub-native Dependabot (#21874 by @dependabot-preview[bot])

‍‍ Contributors

‍‍ Core Team