Go to [Site_URL] and try the best open source chat solution available today!
You may login using your email: [email] and password: [password]. You may be required to change it after your first login.",
"Accounts_TwoFactorAuthentication_MaxDelta_Description": "The Maximum Delta determines how many tokens are valid at any given time. Tokens are generated every 30 seconds, and are valid for (30 * Maximum Delta) seconds.
Example: With a Maximum Delta set to 10, each token can be used up to 300 seconds before or after it's timestamp. This is useful when the client's clock is not properly synced with the server.",
@@ -1316,6 +1318,7 @@
"E2E_password_reveal_text": "You can now create encrypted private groups and direct messages. You may also change existing private groups or DMs to encrypted.
This is end to end encryption so the key to encode/decode your messages will not be saved on the server. For that reason you need to store this password somewhere safe. You will be required to enter it on other devices you wish to use e2e encryption on. Learn more here!
Your password is: %s
This is an auto generated password, you can setup a new password for your encryption key any time from any browser you have entered the existing password.
This password is only stored on this browser until you store the password and dismiss this message.",
"E2E_password_request_text": "To access your encrypted private groups and direct messages, enter your encryption password.
You need to enter this password to encode/decode your messages on every client you use, since the key is not stored on the server.",
"E2E_Reset_Key_Explanation": "This option will remove your current E2E key and log you out.
When you login again, Rocket.Chat will generate you a new key and restore your access to any encrypted room that has one or more members online.
Due to the nature of the E2E encryption, Rocket.Chat will not be able to restore access to any encrypted room that has no member online.",
+ "E2E_Reset_Other_Key_Warning": "Reset the current E2E key will log out the user. When the user login again, Rocket.Chat will generate a new key and restore the user access to any encrypted room that has one or more members online. Due to the nature of the E2E encryption, Rocket.Chat will not be able to restore access to any encrypted room that has no member online.",
"Edit": "Edit",
"Edit_User": "Edit User",
"Edit_Invite": "Edit Invite",
@@ -1330,6 +1333,8 @@
"edit-other-user-info_description": "Permission to change other user's name, username or email address.",
"edit-other-user-password": "Edit Other User Password",
"edit-other-user-password_description": "Permission to modify other user's passwords. Requires edit-other-user-info permission.",
+ "edit-other-user-e2ee": "Edit Other User E2E Encryption",
+ "edit-other-user-e2ee_description": "Permission to modify other user's E2E Encryption.",
"edit-privileged-setting": "Edit privileged Setting",
"edit-privileged-setting_description": "Permission to edit settings",
"edit-room": "Edit Room",
@@ -3792,6 +3797,7 @@
"Users_by_time_of_day": "Users by time of day",
"Users_in_role": "Users in role",
"Users must use Two Factor Authentication": "Users must use Two Factor Authentication",
+ "Users_key_has_been_reset": "User's key has been reset",
"Leave_the_description_field_blank_if_you_dont_want_to_show_the_role": "Leave the description field blank if you don't want to show the role",
"Uses": "Uses",
"Uses_left": "Uses left",
diff --git a/server/lib/resetUserE2EKey.ts b/server/lib/resetUserE2EKey.ts
new file mode 100644
index 00000000000..879d9417b79
--- /dev/null
+++ b/server/lib/resetUserE2EKey.ts
@@ -0,0 +1,11 @@
+import { Users, Subscriptions } from '../../app/models/server';
+
+export function resetUserE2EEncriptionKey(uid: string): boolean {
+ Users.resetE2EKey(uid);
+ Subscriptions.resetUserE2EKey(uid);
+
+ // Force the user to logout, so that the keys can be generated again
+ Users.removeResumeService(uid);
+
+ return true;
+}
diff --git a/server/startup/migrations/index.js b/server/startup/migrations/index.js
index 78f747f2173..8b7c280b2ae 100644
--- a/server/startup/migrations/index.js
+++ b/server/startup/migrations/index.js
@@ -201,4 +201,5 @@ import './v201';
import './v202';
import './v203';
import './v204';
+import './v205';
import './xrun';
diff --git a/server/startup/migrations/v205.js b/server/startup/migrations/v205.js
new file mode 100644
index 00000000000..69143a62775
--- /dev/null
+++ b/server/startup/migrations/v205.js
@@ -0,0 +1,16 @@
+import { Migrations } from '../../../app/migrations';
+import { Settings } from '../../../app/models/server';
+
+Migrations.add({
+ version: 205,
+ up() {
+ // Disable this new enforcement setting for existent installations.
+ Settings.upsert({
+ _id: 'Accounts_TwoFactorAuthentication_Enforce_Password_Fallback',
+ }, {
+ $set: {
+ value: false,
+ },
+ });
+ },
+});