mirror of
https://github.com/eduardolat/pgbackweb.git
synced 2026-05-03 09:29:27 -05:00
Add change-password CLI functionality
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/eduardolat/pgbackweb/internal/config"
|
||||
"github.com/eduardolat/pgbackweb/internal/database"
|
||||
"github.com/eduardolat/pgbackweb/internal/database/dbgen"
|
||||
"github.com/eduardolat/pgbackweb/internal/util/cryptoutil"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func main() {
|
||||
env := config.GetEnv()
|
||||
|
||||
db := database.Connect(env)
|
||||
defer db.Close()
|
||||
dbg := dbgen.New(db)
|
||||
|
||||
fmt.Println()
|
||||
fmt.Println()
|
||||
fmt.Println("PG Back Web - Password Reset")
|
||||
fmt.Println("---")
|
||||
fmt.Print("User email: ")
|
||||
var userID uuid.UUID
|
||||
|
||||
for {
|
||||
var email string
|
||||
if _, err := fmt.Scanln(&email); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
user, err := dbg.UsersServiceGetUserByEmail(
|
||||
context.Background(), email,
|
||||
)
|
||||
if err != nil && errors.Is(err, sql.ErrNoRows) {
|
||||
fmt.Print("User not found. Enter new email: ")
|
||||
continue
|
||||
}
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
userID = user.ID
|
||||
break
|
||||
}
|
||||
|
||||
newPassword := uuid.NewString()
|
||||
hashedPassword, err := cryptoutil.CreateBcryptHash(newPassword)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
err = dbg.UsersServiceChangePassword(
|
||||
context.Background(), dbgen.UsersServiceChangePasswordParams{
|
||||
ID: userID,
|
||||
Password: hashedPassword,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
fmt.Println()
|
||||
fmt.Println("Password reset successfully")
|
||||
fmt.Println("New password: ", newPassword)
|
||||
fmt.Println()
|
||||
fmt.Println("You can change your password after login")
|
||||
fmt.Println()
|
||||
}
|
||||
@@ -103,6 +103,10 @@ COPY . .
|
||||
# Build the app
|
||||
RUN task build
|
||||
|
||||
# Copy change-password binary
|
||||
RUN cp ./dist/change-password /usr/local/bin/change-password && \
|
||||
chmod 777 /usr/local/bin/change-password
|
||||
|
||||
# Run the app
|
||||
EXPOSE 8085
|
||||
CMD ["task", "migrate-serve"]
|
||||
|
||||
@@ -22,6 +22,7 @@ tasks:
|
||||
cmds:
|
||||
- task fmt
|
||||
- go build -o ./dist/app ./cmd/app/.
|
||||
- go build -o ./dist/change-password ./cmd/changepw/.
|
||||
|
||||
serve:
|
||||
cmd: ./dist/app
|
||||
|
||||
Reference in New Issue
Block a user