Skip to content

Commit 121b600

Browse files
author
Jeff McCormick
committed
add user changepassword
1 parent de28c7e commit 121b600

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

client/cmd/user.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ const DEFAULT_PSW_LEN = 8
5353

5454
var PasswordAgeDays, PasswordLength int
5555

56+
var ChangePasswordForUser string
57+
var DeleteUser string
5658
var AddUser string
5759
var Expired string
5860
var UpdatePasswords bool
@@ -66,6 +68,7 @@ For example:
6668
pgo user --selector=name=mycluster --update
6769
pgo user --expired=7 --selector=name=mycluster
6870
pgo user --add-user=bob --selector=sname=mycluster
71+
pgo user --change-password=bob --selector=sname=mycluster
6972
.`,
7073
Run: func(cmd *cobra.Command, args []string) {
7174
log.Debug("user called")
@@ -79,6 +82,8 @@ func init() {
7982
userCmd.Flags().StringVarP(&Selector, "selector", "s", "", "The selector to use for cluster filtering ")
8083
userCmd.Flags().StringVarP(&Expired, "expired", "e", "", "--expired=7 shows passwords that will expired in 7 days")
8184
userCmd.Flags().StringVarP(&AddUser, "add-user", "a", "", "--add-user=bob adds a new user to selective clusters")
85+
userCmd.Flags().StringVarP(&ChangePasswordForUser, "change-password", "c", "", "--change-password=bob updates the password for a user on selective clusters")
86+
userCmd.Flags().StringVarP(&DeleteUser, "delete-user", "d", "", "--delete-user=bob deletes a user on selective clusters")
8287
userCmd.Flags().BoolVarP(&UpdatePasswords, "update-passwords", "u", false, "--update-passwords performs password updating on expired passwords")
8388
getDefaults()
8489

@@ -108,6 +113,20 @@ func userManager() {
108113
fmt.Println("deployment : " + d.ObjectMeta.Name)
109114
info := getPostgresUserInfo(d.ObjectMeta.Name)
110115

116+
if ChangePasswordForUser != "" {
117+
fmt.Println("changing password of user " + ChangePasswordForUser)
118+
newPassword := util.GeneratePassword(PasswordLength)
119+
newExpireDate := GeneratePasswordExpireDate(PasswordAgeDays)
120+
err = updatePassword(info, ChangePasswordForUser, newPassword, newExpireDate)
121+
if err != nil {
122+
log.Error(err.Error())
123+
os.Exit(2)
124+
}
125+
}
126+
if DeleteUser != "" {
127+
fmt.Println("deleting user " + DeleteUser)
128+
deleteUser(info, DeleteUser)
129+
}
111130
if AddUser != "" {
112131
fmt.Println("adding new user " + AddUser)
113132
addUser(info, AddUser)
@@ -341,3 +360,33 @@ func addUser(info ConnInfo, newUser string) {
341360
}()
342361

343362
}
363+
func deleteUser(info ConnInfo, user string) {
364+
var conn *sql.DB
365+
var err error
366+
367+
conn, err = sql.Open("postgres", "sslmode=disable user="+info.Username+" host="+info.Hostip+" port="+info.Port+" dbname="+info.Database+" password="+info.Password)
368+
if err != nil {
369+
log.Debug(err.Error())
370+
os.Exit(2)
371+
}
372+
373+
var rows *sql.Rows
374+
375+
querystr := "drop user if exists " + user
376+
log.Debug(querystr)
377+
rows, err = conn.Query(querystr)
378+
if err != nil {
379+
log.Debug(err.Error())
380+
os.Exit(2)
381+
}
382+
383+
defer func() {
384+
if conn != nil {
385+
conn.Close()
386+
}
387+
if rows != nil {
388+
rows.Close()
389+
}
390+
}()
391+
392+
}

0 commit comments

Comments
 (0)