From df799d1a190e655bd02867a32c28d1693513d68d Mon Sep 17 00:00:00 2001 From: Jake Gold Date: Wed, 21 Feb 2024 22:04:13 -0800 Subject: [PATCH] pdsadmin/account: add reset-password --- pdsadmin/account.sh | 29 +++++++++++++++++++++++++++++ pdsadmin/help.sh | 3 +++ 2 files changed, 32 insertions(+) diff --git a/pdsadmin/account.sh b/pdsadmin/account.sh index c7f095f..bde0079 100644 --- a/pdsadmin/account.sh +++ b/pdsadmin/account.sh @@ -199,6 +199,35 @@ EOF "https://${PDS_HOSTNAME}/xrpc/com.atproto.admin.updateSubjectStatus" >/dev/null echo "${DID} untaken down" +# +# account reset-password +# +elif [[ "${SUBCOMMAND}" == "reset-password" ]]; then + DID="${2:-}" + PASSWORD="$(openssl rand -base64 30 | tr -d "=+/" | cut -c1-24)" + + if [[ "${DID}" == "" ]]; then + echo "ERROR: missing DID parameter." >/dev/stderr + echo "Usage: $0 ${SUBCOMMAND} " >/dev/stderr + exit 1 + fi + + if [[ "${DID}" != did:* ]]; then + echo "ERROR: DID parameter must start with \"did:\"." >/dev/stderr + echo "Usage: $0 ${SUBCOMMAND} " >/dev/stderr + exit 1 + fi + + curl_cmd_post \ + --user "admin:${PDS_ADMIN_PASSWORD}" \ + --data "{ \"did\": \"${DID}\", \"password\": \"${PASSWORD}\" }" \ + "https://${PDS_HOSTNAME}/xrpc/com.atproto.admin.updateAccountPassword" >/dev/null + + echo + echo "Password reset for ${DID}" + echo "New password: ${PASSWORD}" + echo + else echo "Unknown subcommand: ${SUBCOMMAND}" >/dev/stderr exit 1 diff --git a/pdsadmin/help.sh b/pdsadmin/help.sh index 66f58c7..d80d0bb 100644 --- a/pdsadmin/help.sh +++ b/pdsadmin/help.sh @@ -27,6 +27,9 @@ account untakedown Remove a takedown an account specified by DID. e.g. pdsadmin account takedown did:plc:xyz123abc456 + password-reset + Reset a password for an account specified by DID. + e.g. pdsadmin account reset-password did:plc:xyz123abc456 request-crawl [] Request a crawl from a relay host.