MCPcopy Index your code
hub / github.com/coder/coder / resetPassword

Method resetPassword

cli/resetpassword.go:21–119  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

19)
20
21func (*RootCmd) resetPassword() *serpent.Command {
22 var (
23 postgresURL string
24 postgresAuth string
25 )
26
27 root := &serpent.Command{
28 Use: "reset-password <username>",
29 Short: "Directly connect to the database to reset a user's password",
30 Middleware: serpent.RequireNArgs(1),
31 Handler: func(inv *serpent.Invocation) error {
32 username := inv.Args[0]
33
34 logger := slog.Make(sloghuman.Sink(inv.Stdout))
35 if ok, _ := inv.ParsedFlags().GetBool("verbose"); ok {
36 logger = logger.Leveled(slog.LevelDebug)
37 }
38
39 sqlDriver := "postgres"
40 if codersdk.PostgresAuth(postgresAuth) == codersdk.PostgresAuthAWSIAMRDS {
41 var err error
42 sqlDriver, err = awsiamrds.Register(inv.Context(), sqlDriver)
43 if err != nil {
44 return xerrors.Errorf("register aws rds iam auth: %w", err)
45 }
46 }
47
48 sqlDB, err := ConnectToPostgres(inv.Context(), logger, sqlDriver, postgresURL, nil)
49 if err != nil {
50 return xerrors.Errorf("dial postgres: %w", err)
51 }
52 defer sqlDB.Close()
53
54 db := database.New(sqlDB)
55
56 user, err := db.GetUserByEmailOrUsername(inv.Context(), database.GetUserByEmailOrUsernameParams{
57 Username: username,
58 })
59 if err != nil {
60 return xerrors.Errorf("retrieving user: %w", err)
61 }
62
63 password, err := cliui.Prompt(inv, cliui.PromptOptions{
64 Text: "Enter new " + pretty.Sprint(cliui.DefaultStyles.Field, "password") + ":",
65 Secret: true,
66 Validate: userpassword.Validate,
67 })
68 if err != nil {
69 return xerrors.Errorf("password prompt: %w", err)
70 }
71 confirmedPassword, err := cliui.Prompt(inv, cliui.PromptOptions{
72 Text: "Confirm " + pretty.Sprint(cliui.DefaultStyles.Field, "password") + ":",
73 Secret: true,
74 Validate: cliui.ValidateNotEmpty,
75 })
76 if err != nil {
77 return xerrors.Errorf("confirm password prompt: %w", err)
78 }

Callers 1

CoreSubcommandsMethod · 0.95

Calls 12

PostgresAuthTypeAlias · 0.92
RegisterFunction · 0.92
NewFunction · 0.92
PromptFunction · 0.92
HashFunction · 0.92
ConnectToPostgresFunction · 0.85
ContextMethod · 0.65
CloseMethod · 0.65
NewMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected