func cmdPermDeleteUser() { if flagCmdPermanentDeleteUser { if len(flagTeamName) == 0 { fmt.Fprintln(os.Stderr, "flag needs an argument: -team_name") flag.Usage() os.Exit(1) } if len(flagEmail) == 0 { fmt.Fprintln(os.Stderr, "flag needs an argument: -email") flag.Usage() os.Exit(1) } c := &api.Context{} c.RequestId = model.NewId() c.IpAddress = "cmd_line" var team *model.Team if result := <-api.Srv.Store.Team().GetByName(flagTeamName); result.Err != nil { l4g.Error("%v", result.Err) flushLogAndExit(1) } else { team = result.Data.(*model.Team) } var user *model.User if result := <-api.Srv.Store.User().GetByEmail(team.Id, flagEmail); result.Err != nil { l4g.Error("%v", result.Err) flushLogAndExit(1) } else { user = result.Data.(*model.User) } var confirmBackup string fmt.Print("Have you performed a database backup? (YES/NO): ") fmt.Scanln(&confirmBackup) if confirmBackup != "YES" { flushLogAndExit(1) } var confirm string fmt.Printf("Are you sure you want to delete the user %v? All data will be permanently deleted? (YES/NO): ", user.Email) fmt.Scanln(&confirm) if confirm != "YES" { flushLogAndExit(1) } if err := api.PermanentDeleteUser(c, user); err != nil { l4g.Error("%v", err) flushLogAndExit(1) } else { flushLogAndExit(0) } } }
func cmdPermDeleteUser() { if flagCmdPermanentDeleteUser { if len(flagEmail) == 0 { fmt.Fprintln(os.Stderr, "flag needs an argument: -email") flag.Usage() os.Exit(1) } c := getMockContext() var user *model.User if result := <-api.Srv.Store.User().GetByEmail(flagEmail); result.Err != nil { l4g.Error("%v", result.Err) flushLogAndExit(1) } else { user = result.Data.(*model.User) } if len(flagConfirmBackup) == 0 { fmt.Print("Have you performed a database backup? (YES/NO): ") fmt.Scanln(&flagConfirmBackup) } if flagConfirmBackup != "YES" { fmt.Print("ABORTED: You did not answer YES exactly, in all capitals.") flushLogAndExit(1) } var confirm string fmt.Printf("Are you sure you want to delete the user %v? All data will be permanently deleted? (YES/NO): ", user.Email) fmt.Scanln(&confirm) if confirm != "YES" { fmt.Print("ABORTED: You did not answer YES exactly, in all capitals.") flushLogAndExit(1) } if err := api.PermanentDeleteUser(c, user); err != nil { l4g.Error("%v", err) flushLogAndExit(1) } else { fmt.Print("SUCCESS: User deleted.") flushLogAndExit(0) } } }
func deleteUserCmdF(cmd *cobra.Command, args []string) error { initDBCommandContextCobra(cmd) if len(args) < 1 { return errors.New("Enter at least one user.") } confirmFlag, _ := cmd.Flags().GetBool("confirm") if !confirmFlag { var confirm string CommandPrettyPrintln("Have you performed a database backup? (YES/NO): ") fmt.Scanln(&confirm) if confirm != "YES" { return errors.New("ABORTED: You did not answer YES exactly, in all capitals.") } CommandPrettyPrintln("Are you sure you want to delete the teams specified? All data will be permanently deleted? (YES/NO): ") fmt.Scanln(&confirm) if confirm != "YES" { return errors.New("ABORTED: You did not answer YES exactly, in all capitals.") } } users := getUsersFromUserArgs(args) for i, user := range users { if user == nil { return errors.New("Unable to find user '" + args[i] + "'") } if err := api.PermanentDeleteUser(user); err != nil { return err } } return nil }