Merge pull request #2425 from proddy/dev

new command 'set admin password'
This commit is contained in:
Proddy
2025-02-25 20:47:32 +01:00
committed by GitHub
7 changed files with 151 additions and 115 deletions

View File

@@ -16,6 +16,7 @@ For more details go to [docs.emsesp.org](https://docs.emsesp.org/).
- CR11 thermostat [#2295](https://github.com/emsesp/EMS-ESP32/issues/2295) - CR11 thermostat [#2295](https://github.com/emsesp/EMS-ESP32/issues/2295)
- Show ESP32's CPU temp in Hardware Status - Show ESP32's CPU temp in Hardware Status
- vacation mode for the CR50 [#2403](https://github.com/emsesp/EMS-ESP32/issues/2403) - vacation mode for the CR50 [#2403](https://github.com/emsesp/EMS-ESP32/issues/2403)
- new Console command "set admin password" to set WebUI admin password
## Fixed ## Fixed

View File

@@ -64,7 +64,7 @@ DEFINES += -DARDUINOJSON_ENABLE -DARDUINOJSON_ENABLE_ARDUINO_STRING -DARDUINOJSO
DEFINES += -DEMSESP_STANDALONE -DEMSESP_TEST -DEMSESP_DEBUG -DEMC_RX_BUFFER_SIZE=1500 DEFINES += -DEMSESP_STANDALONE -DEMSESP_TEST -DEMSESP_DEBUG -DEMC_RX_BUFFER_SIZE=1500
DEFINES += $(ARGS) DEFINES += $(ARGS)
DEFAULTS = -DEMSESP_DEFAULT_LOCALE=\"en\" -DEMSESP_DEFAULT_TX_MODE=8 -DEMSESP_DEFAULT_VERSION=\"3.7.2-dev\" -DEMSESP_DEFAULT_BOARD_PROFILE=\"S3\" DEFAULTS = -DEMSESP_DEFAULT_LOCALE=\"en\" -DEMSESP_DEFAULT_TX_MODE=8 -DEMSESP_DEFAULT_VERSION=\"3.7.3-dev\" -DEMSESP_DEFAULT_BOARD_PROFILE=\"S32S3\"
#---------------------------------------------------------------------- #----------------------------------------------------------------------
# Sources & Files # Sources & Files

View File

@@ -58,7 +58,7 @@
"rollup-plugin-visualizer": "^5.14.0", "rollup-plugin-visualizer": "^5.14.0",
"terser": "^5.39.0", "terser": "^5.39.0",
"typescript-eslint": "8.25.0", "typescript-eslint": "8.25.0",
"vite": "^6.1.1", "vite": "^6.2.0",
"vite-plugin-imagemin": "^0.6.1", "vite-plugin-imagemin": "^0.6.1",
"vite-tsconfig-paths": "^5.1.4" "vite-tsconfig-paths": "^5.1.4"
}, },

View File

@@ -409,79 +409,79 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/aix-ppc64@npm:0.24.2": "@esbuild/aix-ppc64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/aix-ppc64@npm:0.24.2" resolution: "@esbuild/aix-ppc64@npm:0.25.0"
conditions: os=aix & cpu=ppc64 conditions: os=aix & cpu=ppc64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/android-arm64@npm:0.24.2": "@esbuild/android-arm64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/android-arm64@npm:0.24.2" resolution: "@esbuild/android-arm64@npm:0.25.0"
conditions: os=android & cpu=arm64 conditions: os=android & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/android-arm@npm:0.24.2": "@esbuild/android-arm@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/android-arm@npm:0.24.2" resolution: "@esbuild/android-arm@npm:0.25.0"
conditions: os=android & cpu=arm conditions: os=android & cpu=arm
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/android-x64@npm:0.24.2": "@esbuild/android-x64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/android-x64@npm:0.24.2" resolution: "@esbuild/android-x64@npm:0.25.0"
conditions: os=android & cpu=x64 conditions: os=android & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/darwin-arm64@npm:0.24.2": "@esbuild/darwin-arm64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/darwin-arm64@npm:0.24.2" resolution: "@esbuild/darwin-arm64@npm:0.25.0"
conditions: os=darwin & cpu=arm64 conditions: os=darwin & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/darwin-x64@npm:0.24.2": "@esbuild/darwin-x64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/darwin-x64@npm:0.24.2" resolution: "@esbuild/darwin-x64@npm:0.25.0"
conditions: os=darwin & cpu=x64 conditions: os=darwin & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/freebsd-arm64@npm:0.24.2": "@esbuild/freebsd-arm64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/freebsd-arm64@npm:0.24.2" resolution: "@esbuild/freebsd-arm64@npm:0.25.0"
conditions: os=freebsd & cpu=arm64 conditions: os=freebsd & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/freebsd-x64@npm:0.24.2": "@esbuild/freebsd-x64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/freebsd-x64@npm:0.24.2" resolution: "@esbuild/freebsd-x64@npm:0.25.0"
conditions: os=freebsd & cpu=x64 conditions: os=freebsd & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-arm64@npm:0.24.2": "@esbuild/linux-arm64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/linux-arm64@npm:0.24.2" resolution: "@esbuild/linux-arm64@npm:0.25.0"
conditions: os=linux & cpu=arm64 conditions: os=linux & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-arm@npm:0.24.2": "@esbuild/linux-arm@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/linux-arm@npm:0.24.2" resolution: "@esbuild/linux-arm@npm:0.25.0"
conditions: os=linux & cpu=arm conditions: os=linux & cpu=arm
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-ia32@npm:0.24.2": "@esbuild/linux-ia32@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/linux-ia32@npm:0.24.2" resolution: "@esbuild/linux-ia32@npm:0.25.0"
conditions: os=linux & cpu=ia32 conditions: os=linux & cpu=ia32
languageName: node languageName: node
linkType: hard linkType: hard
@@ -493,100 +493,100 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-loong64@npm:0.24.2": "@esbuild/linux-loong64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/linux-loong64@npm:0.24.2" resolution: "@esbuild/linux-loong64@npm:0.25.0"
conditions: os=linux & cpu=loong64 conditions: os=linux & cpu=loong64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-mips64el@npm:0.24.2": "@esbuild/linux-mips64el@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/linux-mips64el@npm:0.24.2" resolution: "@esbuild/linux-mips64el@npm:0.25.0"
conditions: os=linux & cpu=mips64el conditions: os=linux & cpu=mips64el
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-ppc64@npm:0.24.2": "@esbuild/linux-ppc64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/linux-ppc64@npm:0.24.2" resolution: "@esbuild/linux-ppc64@npm:0.25.0"
conditions: os=linux & cpu=ppc64 conditions: os=linux & cpu=ppc64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-riscv64@npm:0.24.2": "@esbuild/linux-riscv64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/linux-riscv64@npm:0.24.2" resolution: "@esbuild/linux-riscv64@npm:0.25.0"
conditions: os=linux & cpu=riscv64 conditions: os=linux & cpu=riscv64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-s390x@npm:0.24.2": "@esbuild/linux-s390x@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/linux-s390x@npm:0.24.2" resolution: "@esbuild/linux-s390x@npm:0.25.0"
conditions: os=linux & cpu=s390x conditions: os=linux & cpu=s390x
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-x64@npm:0.24.2": "@esbuild/linux-x64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/linux-x64@npm:0.24.2" resolution: "@esbuild/linux-x64@npm:0.25.0"
conditions: os=linux & cpu=x64 conditions: os=linux & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/netbsd-arm64@npm:0.24.2": "@esbuild/netbsd-arm64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/netbsd-arm64@npm:0.24.2" resolution: "@esbuild/netbsd-arm64@npm:0.25.0"
conditions: os=netbsd & cpu=arm64 conditions: os=netbsd & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/netbsd-x64@npm:0.24.2": "@esbuild/netbsd-x64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/netbsd-x64@npm:0.24.2" resolution: "@esbuild/netbsd-x64@npm:0.25.0"
conditions: os=netbsd & cpu=x64 conditions: os=netbsd & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/openbsd-arm64@npm:0.24.2": "@esbuild/openbsd-arm64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/openbsd-arm64@npm:0.24.2" resolution: "@esbuild/openbsd-arm64@npm:0.25.0"
conditions: os=openbsd & cpu=arm64 conditions: os=openbsd & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/openbsd-x64@npm:0.24.2": "@esbuild/openbsd-x64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/openbsd-x64@npm:0.24.2" resolution: "@esbuild/openbsd-x64@npm:0.25.0"
conditions: os=openbsd & cpu=x64 conditions: os=openbsd & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/sunos-x64@npm:0.24.2": "@esbuild/sunos-x64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/sunos-x64@npm:0.24.2" resolution: "@esbuild/sunos-x64@npm:0.25.0"
conditions: os=sunos & cpu=x64 conditions: os=sunos & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/win32-arm64@npm:0.24.2": "@esbuild/win32-arm64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/win32-arm64@npm:0.24.2" resolution: "@esbuild/win32-arm64@npm:0.25.0"
conditions: os=win32 & cpu=arm64 conditions: os=win32 & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/win32-ia32@npm:0.24.2": "@esbuild/win32-ia32@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/win32-ia32@npm:0.24.2" resolution: "@esbuild/win32-ia32@npm:0.25.0"
conditions: os=win32 & cpu=ia32 conditions: os=win32 & cpu=ia32
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/win32-x64@npm:0.24.2": "@esbuild/win32-x64@npm:0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "@esbuild/win32-x64@npm:0.24.2" resolution: "@esbuild/win32-x64@npm:0.25.0"
conditions: os=win32 & cpu=x64 conditions: os=win32 & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1618,7 +1618,7 @@ __metadata:
typesafe-i18n: "npm:^5.26.2" typesafe-i18n: "npm:^5.26.2"
typescript: "npm:^5.7.3" typescript: "npm:^5.7.3"
typescript-eslint: "npm:8.25.0" typescript-eslint: "npm:8.25.0"
vite: "npm:^6.1.1" vite: "npm:^6.2.0"
vite-plugin-imagemin: "npm:^0.6.1" vite-plugin-imagemin: "npm:^0.6.1"
vite-tsconfig-paths: "npm:^5.1.4" vite-tsconfig-paths: "npm:^5.1.4"
languageName: unknown languageName: unknown
@@ -2904,35 +2904,35 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"esbuild@npm:^0.24.2": "esbuild@npm:^0.25.0":
version: 0.24.2 version: 0.25.0
resolution: "esbuild@npm:0.24.2" resolution: "esbuild@npm:0.25.0"
dependencies: dependencies:
"@esbuild/aix-ppc64": "npm:0.24.2" "@esbuild/aix-ppc64": "npm:0.25.0"
"@esbuild/android-arm": "npm:0.24.2" "@esbuild/android-arm": "npm:0.25.0"
"@esbuild/android-arm64": "npm:0.24.2" "@esbuild/android-arm64": "npm:0.25.0"
"@esbuild/android-x64": "npm:0.24.2" "@esbuild/android-x64": "npm:0.25.0"
"@esbuild/darwin-arm64": "npm:0.24.2" "@esbuild/darwin-arm64": "npm:0.25.0"
"@esbuild/darwin-x64": "npm:0.24.2" "@esbuild/darwin-x64": "npm:0.25.0"
"@esbuild/freebsd-arm64": "npm:0.24.2" "@esbuild/freebsd-arm64": "npm:0.25.0"
"@esbuild/freebsd-x64": "npm:0.24.2" "@esbuild/freebsd-x64": "npm:0.25.0"
"@esbuild/linux-arm": "npm:0.24.2" "@esbuild/linux-arm": "npm:0.25.0"
"@esbuild/linux-arm64": "npm:0.24.2" "@esbuild/linux-arm64": "npm:0.25.0"
"@esbuild/linux-ia32": "npm:0.24.2" "@esbuild/linux-ia32": "npm:0.25.0"
"@esbuild/linux-loong64": "npm:0.24.2" "@esbuild/linux-loong64": "npm:0.25.0"
"@esbuild/linux-mips64el": "npm:0.24.2" "@esbuild/linux-mips64el": "npm:0.25.0"
"@esbuild/linux-ppc64": "npm:0.24.2" "@esbuild/linux-ppc64": "npm:0.25.0"
"@esbuild/linux-riscv64": "npm:0.24.2" "@esbuild/linux-riscv64": "npm:0.25.0"
"@esbuild/linux-s390x": "npm:0.24.2" "@esbuild/linux-s390x": "npm:0.25.0"
"@esbuild/linux-x64": "npm:0.24.2" "@esbuild/linux-x64": "npm:0.25.0"
"@esbuild/netbsd-arm64": "npm:0.24.2" "@esbuild/netbsd-arm64": "npm:0.25.0"
"@esbuild/netbsd-x64": "npm:0.24.2" "@esbuild/netbsd-x64": "npm:0.25.0"
"@esbuild/openbsd-arm64": "npm:0.24.2" "@esbuild/openbsd-arm64": "npm:0.25.0"
"@esbuild/openbsd-x64": "npm:0.24.2" "@esbuild/openbsd-x64": "npm:0.25.0"
"@esbuild/sunos-x64": "npm:0.24.2" "@esbuild/sunos-x64": "npm:0.25.0"
"@esbuild/win32-arm64": "npm:0.24.2" "@esbuild/win32-arm64": "npm:0.25.0"
"@esbuild/win32-ia32": "npm:0.24.2" "@esbuild/win32-ia32": "npm:0.25.0"
"@esbuild/win32-x64": "npm:0.24.2" "@esbuild/win32-x64": "npm:0.25.0"
dependenciesMeta: dependenciesMeta:
"@esbuild/aix-ppc64": "@esbuild/aix-ppc64":
optional: true optional: true
@@ -2986,7 +2986,7 @@ __metadata:
optional: true optional: true
bin: bin:
esbuild: bin/esbuild esbuild: bin/esbuild
checksum: 10c0/5a25bb08b6ba23db6e66851828d848bd3ff87c005a48c02d83e38879058929878a6baa5a414e1141faee0d1dece3f32b5fbc2a87b82ed6a7aa857cf40359aeb5 checksum: 10c0/5767b72da46da3cfec51661647ec850ddbf8a8d0662771139f10ef0692a8831396a0004b2be7966cecdb08264fb16bdc16290dcecd92396fac5f12d722fa013d
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5430,7 +5430,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"postcss@npm:^8.5.2": "postcss@npm:^8.5.3":
version: 8.5.3 version: 8.5.3
resolution: "postcss@npm:8.5.3" resolution: "postcss@npm:8.5.3"
dependencies: dependencies:
@@ -6858,13 +6858,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"vite@npm:^6.1.1": "vite@npm:^6.2.0":
version: 6.1.1 version: 6.2.0
resolution: "vite@npm:6.1.1" resolution: "vite@npm:6.2.0"
dependencies: dependencies:
esbuild: "npm:^0.24.2" esbuild: "npm:^0.25.0"
fsevents: "npm:~2.3.3" fsevents: "npm:~2.3.3"
postcss: "npm:^8.5.2" postcss: "npm:^8.5.3"
rollup: "npm:^4.30.1" rollup: "npm:^4.30.1"
peerDependencies: peerDependencies:
"@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0
@@ -6906,7 +6906,7 @@ __metadata:
optional: true optional: true
bin: bin:
vite: bin/vite.js vite: bin/vite.js
checksum: 10c0/4ec5ddc9436951a68b213cd59c2a157663ef423658c387400774582ea33da40dcae18e55f3adb3b629173e2183b10d49db8370bc51a0aa89797e4ca5a34702a0 checksum: 10c0/db62c93d4a823e805c6f8429de035528b3c35cc7f6de4948b41e0528f94ed2ac55047d90f8534f626ef3a04e682883b570fe5ec9ee92f51bf0c3c210dbec5ac1
languageName: node languageName: node
linkType: hard linkType: hard

View File

@@ -207,6 +207,40 @@ static void setup_commands(std::shared_ptr<Commands> const & commands) {
// //
// SET commands // SET commands
// //
commands->add_command(ShellContext::MAIN,
CommandFlags::ADMIN,
string_vector{F_(set), F_(admin), F_(password)},
[](Shell & shell, const std::vector<std::string> & arguments) {
shell.enter_password(F_(new_password_prompt1), [](Shell & shell, bool completed, const std::string & password1) {
if (completed) {
shell.enter_password(F_(new_password_prompt2), [password1](Shell & shell, bool completed, const std::string & password2) {
if (completed) {
if (password1 == password2) {
#ifndef EMSESP_STANDALONE
EMSESP::esp32React.getSecuritySettingsService()->updateWithoutPropagation(
[&](SecuritySettings & securitySettings) {
// find the username 'admin' and update its password
for (auto & user : securitySettings.users) {
if (user.username == "admin") {
user.password = password2.c_str();
return StateUpdateResult::CHANGED;
}
}
// otherwise add a new admin user
securitySettings.users.emplace_back(F_(admin), password2.c_str(), true);
return StateUpdateResult::CHANGED;
});
#endif
shell.println("Admin user's password updated.");
} else {
shell.println("Passwords do not match");
}
}
});
}
});
});
commands->add_command(ShellContext::MAIN, commands->add_command(ShellContext::MAIN,
CommandFlags::ADMIN, CommandFlags::ADMIN,
string_vector{F_(set), F_(wifi), F_(password)}, string_vector{F_(set), F_(wifi), F_(password)},

View File

@@ -35,6 +35,7 @@ MAKE_WORD(show)
MAKE_WORD(su) MAKE_WORD(su)
MAKE_WORD(scan) MAKE_WORD(scan)
MAKE_WORD(password) MAKE_WORD(password)
MAKE_WORD(admin)
MAKE_WORD(read) MAKE_WORD(read)
MAKE_WORD(values) MAKE_WORD(values)
MAKE_WORD(system) MAKE_WORD(system)

View File

@@ -1 +1 @@
#define EMSESP_APP_VERSION "3.7.2-dev.22" #define EMSESP_APP_VERSION "3.7.3-dev.23"