feat(domoticz): Add password reset via RPCD
New RPCD method: reset_password - Resets Domoticz admin password via SQLite - Accessible from LuCI dashboard - MD5 hashes the password before storing Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
7f4f34b930
commit
0d619d4780
@ -19,7 +19,7 @@ lxc_exists() {
|
|||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
list)
|
list)
|
||||||
echo '{"status":{},"start":{},"stop":{},"restart":{},"install":{},"uninstall":{},"update":{},"configure_mqtt":{},"configure_haproxy":{},"backup":{},"restore":{"path":"str"},"logs":{"lines":"int"}}'
|
echo '{"status":{},"start":{},"stop":{},"restart":{},"install":{},"uninstall":{},"update":{},"configure_mqtt":{},"configure_haproxy":{},"backup":{},"restore":{"path":"str"},"logs":{"lines":"int"},"reset_password":{"password":"str"}}'
|
||||||
;;
|
;;
|
||||||
call)
|
call)
|
||||||
case "$2" in
|
case "$2" in
|
||||||
@ -251,6 +251,35 @@ case "$1" in
|
|||||||
json_add_string "logs" "$logs"
|
json_add_string "logs" "$logs"
|
||||||
json_dump
|
json_dump
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
reset_password)
|
||||||
|
read -r input
|
||||||
|
password=$(echo "$input" | jsonfilter -e '@.password' 2>/dev/null)
|
||||||
|
[ -z "$password" ] && password="password"
|
||||||
|
|
||||||
|
# MD5 hash the password
|
||||||
|
md5hash=$(echo -n "$password" | md5sum | cut -d' ' -f1)
|
||||||
|
|
||||||
|
# Update in Domoticz database (username is base64 encoded 'admin')
|
||||||
|
if lxc_running; then
|
||||||
|
lxc-attach -n "$LXC_NAME" -- sqlite3 /opt/domoticz/db/domoticz.db \
|
||||||
|
"UPDATE Users SET Password='$md5hash' WHERE Username='YWRtaW4=';" 2>/dev/null
|
||||||
|
code=$?
|
||||||
|
else
|
||||||
|
echo '{"success":false,"error":"Container not running"}'
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
json_init
|
||||||
|
if [ "$code" = "0" ]; then
|
||||||
|
json_add_boolean "success" 1
|
||||||
|
json_add_string "message" "Password reset successfully"
|
||||||
|
else
|
||||||
|
json_add_boolean "success" 0
|
||||||
|
json_add_string "error" "Failed to reset password"
|
||||||
|
fi
|
||||||
|
json_dump
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user