From 2f28ec495d5ba2f9368020391dd52da16ed008cd Mon Sep 17 00:00:00 2001 From: Bennett Date: Sun, 3 May 2020 16:07:02 +0200 Subject: Add password hashing to lock password (#694) --- src/containers/auth/LockedScreen.js | 4 +- src/containers/settings/EditSettingsScreen.js | 18 ++- src/i18n/locales/defaultMessages.json | 152 ++++++++++----------- .../containers/settings/EditSettingsScreen.json | 152 ++++++++++----------- src/stores/SettingsStore.js | 21 +++ 5 files changed, 192 insertions(+), 155 deletions(-) (limited to 'src') diff --git a/src/containers/auth/LockedScreen.js b/src/containers/auth/LockedScreen.js index 8f6ce85c3..a04107072 100644 --- a/src/containers/auth/LockedScreen.js +++ b/src/containers/auth/LockedScreen.js @@ -4,6 +4,8 @@ import { inject, observer } from 'mobx-react'; import Locked from '../../components/auth/Locked'; import SettingsStore from '../../stores/SettingsStore'; +import { hash } from '../../helpers/password-helpers'; + export default @inject('stores', 'actions') @observer class LockedScreen extends Component { state = { error: false, @@ -24,7 +26,7 @@ export default @inject('stores', 'actions') @observer class LockedScreen extends correctPassword = ''; } - if (String(password) === String(correctPassword)) { + if (hash(String(password)) === String(correctPassword)) { this.props.actions.settings.update({ type: 'app', data: { diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index f6c2d4360..3dba3bc11 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -16,6 +16,7 @@ import { import { config as spellcheckerConfig } from '../../features/spellchecker'; import { getSelectOptions } from '../../helpers/i18n-helpers'; +import { hash } from '../../helpers/password-helpers'; import EditSettingsForm from '../../components/settings/settings/EditSettingsForm'; import ErrorBoundary from '../../components/util/ErrorBoundary'; @@ -185,6 +186,14 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e intl: intlShape, }; + constructor(props) { + super(props); + + this.state = { + lockedPassword: '', + }; + } + onSubmit(settingsData) { const { todos, workspaces } = this.props.stores; const { @@ -195,6 +204,10 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e workspaces: workspaceActions, } = this.props.actions; + this.setState({ + lockedPassword: settingsData.lockedPassword, + }); + app.launchOnStartup({ enable: settingsData.autoLaunchOnStart, openInBackground: settingsData.autoLaunchInBackground, @@ -217,7 +230,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e predefinedTodoServer: settingsData.predefinedTodoServer, customTodoServer: settingsData.customTodoServer, lockingFeatureEnabled: settingsData.lockingFeatureEnabled, - lockedPassword: settingsData.lockedPassword, + lockedPassword: hash(String(settingsData.lockedPassword)), useTouchIdToUnlock: settingsData.useTouchIdToUnlock, inactivityLock: settingsData.inactivityLock, scheduledDNDEnabled: settingsData.scheduledDNDEnabled, @@ -273,6 +286,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e app, settings, user, todos, workspaces, } = this.props.stores; const { intl } = this.context; + const { lockedPassword } = this.state; const locales = getSelectOptions({ locales: APP_LOCALES, @@ -395,7 +409,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e }, lockedPassword: { label: intl.formatMessage(messages.lockPassword), - value: settings.all.app.lockedPassword, + value: lockedPassword, default: '', type: 'password', }, diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 5e3fe5810..6b3f3066c 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -4541,494 +4541,494 @@ "defaultMessage": "!!!Launch Ferdi on start", "end": { "column": 3, - "line": 32 + "line": 33 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.autoLaunchOnStart", "start": { "column": 21, - "line": 29 + "line": 30 } }, { "defaultMessage": "!!!Open in background", "end": { "column": 3, - "line": 36 + "line": 37 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.autoLaunchInBackground", "start": { "column": 26, - "line": 33 + "line": 34 } }, { "defaultMessage": "!!!Keep Ferdi in background when closing the window", "end": { "column": 3, - "line": 40 + "line": 41 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.runInBackground", "start": { "column": 19, - "line": 37 + "line": 38 } }, { "defaultMessage": "!!!Start minimized", "end": { "column": 3, - "line": 44 + "line": 45 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.startMinimized", "start": { "column": 18, - "line": 41 + "line": 42 } }, { "defaultMessage": "!!!Always show Ferdi in system tray", "end": { "column": 3, - "line": 48 + "line": 49 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableSystemTray", "start": { "column": 20, - "line": 45 + "line": 46 } }, { "defaultMessage": "!!!Reload Ferdi after system resume", "end": { "column": 3, - "line": 52 + "line": 53 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.reloadAfterResume", "start": { "column": 21, - "line": 49 + "line": 50 } }, { "defaultMessage": "!!!Minimize Ferdi to system tray", "end": { "column": 3, - "line": 56 + "line": 57 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.minimizeToSystemTray", "start": { "column": 24, - "line": 53 + "line": 54 } }, { "defaultMessage": "!!!Don't show message content in notifications", "end": { "column": 3, - "line": 60 + "line": 61 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.privateNotifications", "start": { "column": 24, - "line": 57 + "line": 58 } }, { "defaultMessage": "!!!Navigation bar behaviour", "end": { "column": 3, - "line": 64 + "line": 65 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.navigationBarBehaviour", "start": { "column": 26, - "line": 61 + "line": 62 } }, { "defaultMessage": "!!!Send telemetry data", "end": { "column": 3, - "line": 68 + "line": 69 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.sentry", "start": { "column": 10, - "line": 65 + "line": 66 } }, { "defaultMessage": "!!!Enable service hibernation", "end": { "column": 3, - "line": 72 + "line": 73 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.hibernate", "start": { "column": 13, - "line": 69 + "line": 70 } }, { "defaultMessage": "!!!Keep services in hibernation on startup", "end": { "column": 3, - "line": 76 + "line": 77 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.hibernateOnStartup", "start": { "column": 22, - "line": 73 + "line": 74 } }, { "defaultMessage": "!!!Hibernation strategy", "end": { "column": 3, - "line": 80 + "line": 81 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.hibernationStrategy", "start": { "column": 23, - "line": 77 + "line": 78 } }, { "defaultMessage": "!!!Todo Server", "end": { "column": 3, - "line": 84 + "line": 85 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.predefinedTodoServer", "start": { "column": 24, - "line": 81 + "line": 82 } }, { "defaultMessage": "!!!Custom TodoServer", "end": { "column": 3, - "line": 88 + "line": 89 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.customTodoServer", "start": { "column": 20, - "line": 85 + "line": 86 } }, { "defaultMessage": "!!!Enable Password Lock", "end": { "column": 3, - "line": 92 + "line": 93 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableLock", "start": { "column": 14, - "line": 89 + "line": 90 } }, { "defaultMessage": "!!!Password", "end": { "column": 3, - "line": 96 + "line": 97 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.lockPassword", "start": { "column": 16, - "line": 93 + "line": 94 } }, { "defaultMessage": "!!!Allow using Touch ID to unlock", "end": { "column": 3, - "line": 100 + "line": 101 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.useTouchIdToUnlock", "start": { "column": 22, - "line": 97 + "line": 98 } }, { "defaultMessage": "!!!Lock after inactivity", "end": { "column": 3, - "line": 104 + "line": 105 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.inactivityLock", "start": { "column": 18, - "line": 101 + "line": 102 } }, { "defaultMessage": "!!!Enable scheduled Do-not-Disturb", "end": { "column": 3, - "line": 108 + "line": 109 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.scheduledDNDEnabled", "start": { "column": 23, - "line": 105 + "line": 106 } }, { "defaultMessage": "!!!From", "end": { "column": 3, - "line": 112 + "line": 113 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.scheduledDNDStart", "start": { "column": 21, - "line": 109 + "line": 110 } }, { "defaultMessage": "!!!To", "end": { "column": 3, - "line": 116 + "line": 117 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.scheduledDNDEnd", "start": { "column": 19, - "line": 113 + "line": 114 } }, { "defaultMessage": "!!!Language", "end": { "column": 3, - "line": 120 + "line": 121 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.language", "start": { "column": 12, - "line": 117 + "line": 118 } }, { "defaultMessage": "!!!Dark Mode", "end": { "column": 3, - "line": 124 + "line": 125 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.darkMode", "start": { "column": 12, - "line": 121 + "line": 122 } }, { "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", "end": { "column": 3, - "line": 128 + "line": 129 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.adaptableDarkMode", "start": { "column": 21, - "line": 125 + "line": 126 } }, { "defaultMessage": "!!!Enable universal Dark Mode", "end": { "column": 3, - "line": 132 + "line": 133 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.universalDarkMode", "start": { "column": 21, - "line": 129 + "line": 130 } }, { "defaultMessage": "!!!Sidebar width", "end": { "column": 3, - "line": 136 + "line": 137 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.serviceRibbonWidth", "start": { "column": 22, - "line": 133 + "line": 134 } }, { "defaultMessage": "!!!Service icon size", "end": { "column": 3, - "line": 140 + "line": 141 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.iconSize", "start": { "column": 12, - "line": 137 + "line": 138 } }, { "defaultMessage": "!!!Accent color", "end": { "column": 3, - "line": 144 + "line": 145 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.accentColor", "start": { "column": 15, - "line": 141 + "line": 142 } }, { "defaultMessage": "!!!Display disabled services tabs", "end": { "column": 3, - "line": 148 + "line": 149 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.showDisabledServices", "start": { "column": 24, - "line": 145 + "line": 146 } }, { "defaultMessage": "!!!Show unread message badge when notifications are disabled", "end": { "column": 3, - "line": 152 + "line": 153 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.showMessagesBadgesWhenMuted", "start": { "column": 29, - "line": 149 + "line": 150 } }, { "defaultMessage": "!!!Show draggable area on window", "end": { "column": 3, - "line": 156 + "line": 157 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.showDragArea", "start": { "column": 16, - "line": 153 + "line": 154 } }, { "defaultMessage": "!!!Enable spell checking", "end": { "column": 3, - "line": 160 + "line": 161 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableSpellchecking", "start": { "column": 23, - "line": 157 + "line": 158 } }, { "defaultMessage": "!!!Enable GPU Acceleration", "end": { "column": 3, - "line": 164 + "line": 165 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableGPUAcceleration", "start": { "column": 25, - "line": 161 + "line": 162 } }, { "defaultMessage": "!!!Include beta versions", "end": { "column": 3, - "line": 168 + "line": 169 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.beta", "start": { "column": 8, - "line": 165 + "line": 166 } }, { "defaultMessage": "!!!Enable updates", "end": { "column": 3, - "line": 172 + "line": 173 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.automaticUpdates", "start": { "column": 20, - "line": 169 + "line": 170 } }, { "defaultMessage": "!!!Enable Franz Todos", "end": { "column": 3, - "line": 176 + "line": 177 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableTodos", "start": { "column": 15, - "line": 173 + "line": 174 } }, { "defaultMessage": "!!!Keep all workspaces loaded", "end": { "column": 3, - "line": 180 + "line": 181 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.keepAllWorkspacesLoaded", "start": { "column": 27, - "line": 177 + "line": 178 } } ], diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json index f6afe5246..df5e7714a 100644 --- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json +++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Launch Ferdi on start", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 29, + "line": 30, "column": 21 }, "end": { - "line": 32, + "line": 33, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!Open in background", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 33, + "line": 34, "column": 26 }, "end": { - "line": 36, + "line": 37, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Keep Ferdi in background when closing the window", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 37, + "line": 38, "column": 19 }, "end": { - "line": 40, + "line": 41, "column": 3 } }, @@ -43,11 +43,11 @@ "defaultMessage": "!!!Start minimized", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 41, + "line": 42, "column": 18 }, "end": { - "line": 44, + "line": 45, "column": 3 } }, @@ -56,11 +56,11 @@ "defaultMessage": "!!!Always show Ferdi in system tray", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 45, + "line": 46, "column": 20 }, "end": { - "line": 48, + "line": 49, "column": 3 } }, @@ -69,11 +69,11 @@ "defaultMessage": "!!!Reload Ferdi after system resume", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 49, + "line": 50, "column": 21 }, "end": { - "line": 52, + "line": 53, "column": 3 } }, @@ -82,11 +82,11 @@ "defaultMessage": "!!!Minimize Ferdi to system tray", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 53, + "line": 54, "column": 24 }, "end": { - "line": 56, + "line": 57, "column": 3 } }, @@ -95,11 +95,11 @@ "defaultMessage": "!!!Don't show message content in notifications", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 57, + "line": 58, "column": 24 }, "end": { - "line": 60, + "line": 61, "column": 3 } }, @@ -108,11 +108,11 @@ "defaultMessage": "!!!Navigation bar behaviour", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 61, + "line": 62, "column": 26 }, "end": { - "line": 64, + "line": 65, "column": 3 } }, @@ -121,11 +121,11 @@ "defaultMessage": "!!!Send telemetry data", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 65, + "line": 66, "column": 10 }, "end": { - "line": 68, + "line": 69, "column": 3 } }, @@ -134,11 +134,11 @@ "defaultMessage": "!!!Enable service hibernation", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 69, + "line": 70, "column": 13 }, "end": { - "line": 72, + "line": 73, "column": 3 } }, @@ -147,11 +147,11 @@ "defaultMessage": "!!!Keep services in hibernation on startup", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 73, + "line": 74, "column": 22 }, "end": { - "line": 76, + "line": 77, "column": 3 } }, @@ -160,11 +160,11 @@ "defaultMessage": "!!!Hibernation strategy", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 77, + "line": 78, "column": 23 }, "end": { - "line": 80, + "line": 81, "column": 3 } }, @@ -173,11 +173,11 @@ "defaultMessage": "!!!Todo Server", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 81, + "line": 82, "column": 24 }, "end": { - "line": 84, + "line": 85, "column": 3 } }, @@ -186,11 +186,11 @@ "defaultMessage": "!!!Custom TodoServer", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 85, + "line": 86, "column": 20 }, "end": { - "line": 88, + "line": 89, "column": 3 } }, @@ -199,11 +199,11 @@ "defaultMessage": "!!!Enable Password Lock", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 89, + "line": 90, "column": 14 }, "end": { - "line": 92, + "line": 93, "column": 3 } }, @@ -212,11 +212,11 @@ "defaultMessage": "!!!Password", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 93, + "line": 94, "column": 16 }, "end": { - "line": 96, + "line": 97, "column": 3 } }, @@ -225,11 +225,11 @@ "defaultMessage": "!!!Allow using Touch ID to unlock", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 97, + "line": 98, "column": 22 }, "end": { - "line": 100, + "line": 101, "column": 3 } }, @@ -238,11 +238,11 @@ "defaultMessage": "!!!Lock after inactivity", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 101, + "line": 102, "column": 18 }, "end": { - "line": 104, + "line": 105, "column": 3 } }, @@ -251,11 +251,11 @@ "defaultMessage": "!!!Enable scheduled Do-not-Disturb", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 105, + "line": 106, "column": 23 }, "end": { - "line": 108, + "line": 109, "column": 3 } }, @@ -264,11 +264,11 @@ "defaultMessage": "!!!From", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 109, + "line": 110, "column": 21 }, "end": { - "line": 112, + "line": 113, "column": 3 } }, @@ -277,11 +277,11 @@ "defaultMessage": "!!!To", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 113, + "line": 114, "column": 19 }, "end": { - "line": 116, + "line": 117, "column": 3 } }, @@ -290,11 +290,11 @@ "defaultMessage": "!!!Language", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 117, + "line": 118, "column": 12 }, "end": { - "line": 120, + "line": 121, "column": 3 } }, @@ -303,11 +303,11 @@ "defaultMessage": "!!!Dark Mode", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 121, + "line": 122, "column": 12 }, "end": { - "line": 124, + "line": 125, "column": 3 } }, @@ -316,11 +316,11 @@ "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 125, + "line": 126, "column": 21 }, "end": { - "line": 128, + "line": 129, "column": 3 } }, @@ -329,11 +329,11 @@ "defaultMessage": "!!!Enable universal Dark Mode", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 129, + "line": 130, "column": 21 }, "end": { - "line": 132, + "line": 133, "column": 3 } }, @@ -342,11 +342,11 @@ "defaultMessage": "!!!Sidebar width", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 133, + "line": 134, "column": 22 }, "end": { - "line": 136, + "line": 137, "column": 3 } }, @@ -355,11 +355,11 @@ "defaultMessage": "!!!Service icon size", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 137, + "line": 138, "column": 12 }, "end": { - "line": 140, + "line": 141, "column": 3 } }, @@ -368,11 +368,11 @@ "defaultMessage": "!!!Accent color", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 141, + "line": 142, "column": 15 }, "end": { - "line": 144, + "line": 145, "column": 3 } }, @@ -381,11 +381,11 @@ "defaultMessage": "!!!Display disabled services tabs", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 145, + "line": 146, "column": 24 }, "end": { - "line": 148, + "line": 149, "column": 3 } }, @@ -394,11 +394,11 @@ "defaultMessage": "!!!Show unread message badge when notifications are disabled", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 149, + "line": 150, "column": 29 }, "end": { - "line": 152, + "line": 153, "column": 3 } }, @@ -407,11 +407,11 @@ "defaultMessage": "!!!Show draggable area on window", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 153, + "line": 154, "column": 16 }, "end": { - "line": 156, + "line": 157, "column": 3 } }, @@ -420,11 +420,11 @@ "defaultMessage": "!!!Enable spell checking", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 157, + "line": 158, "column": 23 }, "end": { - "line": 160, + "line": 161, "column": 3 } }, @@ -433,11 +433,11 @@ "defaultMessage": "!!!Enable GPU Acceleration", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 161, + "line": 162, "column": 25 }, "end": { - "line": 164, + "line": 165, "column": 3 } }, @@ -446,11 +446,11 @@ "defaultMessage": "!!!Include beta versions", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 165, + "line": 166, "column": 8 }, "end": { - "line": 168, + "line": 169, "column": 3 } }, @@ -459,11 +459,11 @@ "defaultMessage": "!!!Enable updates", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 169, + "line": 170, "column": 20 }, "end": { - "line": 172, + "line": 173, "column": 3 } }, @@ -472,11 +472,11 @@ "defaultMessage": "!!!Enable Franz Todos", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 173, + "line": 174, "column": 15 }, "end": { - "line": 176, + "line": 177, "column": 3 } }, @@ -485,11 +485,11 @@ "defaultMessage": "!!!Keep all workspaces loaded", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 177, + "line": 178, "column": 27 }, "end": { - "line": 180, + "line": 181, "column": 3 } } diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js index dcf3c3b9d..c50475819 100644 --- a/src/stores/SettingsStore.js +++ b/src/stores/SettingsStore.js @@ -6,6 +6,7 @@ import localStorage from 'mobx-localstorage'; import { DEFAULT_APP_SETTINGS, FILE_SYSTEM_SETTINGS_TYPES, LOCAL_SERVER } from '../config'; import { API } from '../environment'; import { getLocale } from '../helpers/i18n-helpers'; +import { hash } from '../helpers/password-helpers'; import { SPELLCHECKER_LOCALES } from '../i18n/languages'; import Request from './lib/Request'; import Store from './lib/Store'; @@ -279,5 +280,25 @@ export default class SettingsStore extends Store { debug('Migrated updates settings'); } + + if (!this.all.migration['password-hashing']) { + if (this.stores.settings.app.lockedPassword !== '') { + this.actions.settings.update({ + type: 'app', + data: { + lockedPassword: hash(String(legacySettings.lockedPassword)), + }, + }); + } + + this.actions.settings.update({ + type: 'migration', + data: { + 'password-hashing': true, + }, + }); + + debug('Migrated updates settings'); + } } } -- cgit v1.2.3-70-g09d2