mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 20:36:07 +01:00 
			
		
		
		
	fix label of --id in admin delete user (#14005)
* fix label of --id in admin delete user This pr fixes the label descriptor of `gitea admin delete user` but also adds a `--username` option. Fix #13995 Signed-off-by: Andrew Thornton <art27@cantab.net> * fix-spacing Signed-off-by: Andrew Thornton <art27@cantab.net> * Add delete email support Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		
							
								
								
									
										41
									
								
								cmd/admin.go
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								cmd/admin.go
									
									
									
									
									
								
							@@ -10,6 +10,7 @@ import (
 | 
				
			|||||||
	"errors"
 | 
						"errors"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
 | 
						"strings"
 | 
				
			||||||
	"text/tabwriter"
 | 
						"text/tabwriter"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/models"
 | 
						"code.gitea.io/gitea/models"
 | 
				
			||||||
@@ -125,9 +126,22 @@ var (
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	microcmdUserDelete = cli.Command{
 | 
						microcmdUserDelete = cli.Command{
 | 
				
			||||||
		Name:   "delete",
 | 
							Name:  "delete",
 | 
				
			||||||
		Usage:  "Delete specific user",
 | 
							Usage: "Delete specific user by id, name or email",
 | 
				
			||||||
		Flags:  []cli.Flag{idFlag},
 | 
							Flags: []cli.Flag{
 | 
				
			||||||
 | 
								cli.Int64Flag{
 | 
				
			||||||
 | 
									Name:  "id",
 | 
				
			||||||
 | 
									Usage: "ID of user of the user to delete",
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								cli.StringFlag{
 | 
				
			||||||
 | 
									Name:  "username,u",
 | 
				
			||||||
 | 
									Usage: "Username of the user to delete",
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								cli.StringFlag{
 | 
				
			||||||
 | 
									Name:  "email,e",
 | 
				
			||||||
 | 
									Usage: "Email of the user to delete",
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		Action: runDeleteUser,
 | 
							Action: runDeleteUser,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -463,18 +477,33 @@ func runListUsers(c *cli.Context) error {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func runDeleteUser(c *cli.Context) error {
 | 
					func runDeleteUser(c *cli.Context) error {
 | 
				
			||||||
	if !c.IsSet("id") {
 | 
						if !c.IsSet("id") && !c.IsSet("username") && !c.IsSet("email") {
 | 
				
			||||||
		return fmt.Errorf("--id flag is missing")
 | 
							return fmt.Errorf("You must provide the id, username or email of a user to delete")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err := initDB(); err != nil {
 | 
						if err := initDB(); err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	user, err := models.GetUserByID(c.Int64("id"))
 | 
						var err error
 | 
				
			||||||
 | 
						var user *models.User
 | 
				
			||||||
 | 
						if c.IsSet("email") {
 | 
				
			||||||
 | 
							user, err = models.GetUserByEmail(c.String("email"))
 | 
				
			||||||
 | 
						} else if c.IsSet("username") {
 | 
				
			||||||
 | 
							user, err = models.GetUserByName(c.String("username"))
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							user, err = models.GetUserByID(c.Int64("id"))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if c.IsSet("username") && user.LowerName != strings.ToLower(strings.TrimSpace(c.String("username"))) {
 | 
				
			||||||
 | 
							return fmt.Errorf("The user %s who has email %s does not match the provided username %s", user.Name, c.String("email"), c.String("username"))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if c.IsSet("id") && user.ID != c.Int64("id") {
 | 
				
			||||||
 | 
							return fmt.Errorf("The user %s does not match the provided id %d", user.Name, c.Int64("id"))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return models.DeleteUser(user)
 | 
						return models.DeleteUser(user)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -69,7 +69,10 @@ Admin operations:
 | 
				
			|||||||
        - `gitea admin user list`
 | 
					        - `gitea admin user list`
 | 
				
			||||||
    - `delete`:
 | 
					    - `delete`:
 | 
				
			||||||
      - Options:
 | 
					      - Options:
 | 
				
			||||||
        - `--id`: ID of user to be deleted. Required.
 | 
					        - `--email`: Email of the user to be deleted.
 | 
				
			||||||
 | 
					        - `--username`: Username of user to be deleted.
 | 
				
			||||||
 | 
					        - `--id`: ID of user to be deleted.
 | 
				
			||||||
 | 
					        - One of `--id`, `--username` or `--email` is required. If more than one is provided then all have to match.
 | 
				
			||||||
      - Examples:
 | 
					      - Examples:
 | 
				
			||||||
        - `gitea admin user delete --id 1`
 | 
					        - `gitea admin user delete --id 1`
 | 
				
			||||||
    - `create`: - Options: - `--name value`: Username. Required. As of gitea 1.9.0, use the `--username` flag instead. - `--username value`: Username. Required. New in gitea 1.9.0. - `--password value`: Password. Required. - `--email value`: Email. Required. - `--admin`: If provided, this makes the user an admin. Optional. - `--access-token`: If provided, an access token will be created for the user. Optional. (default: false). - `--must-change-password`: If provided, the created user will be required to choose a newer password after
 | 
					    - `create`: - Options: - `--name value`: Username. Required. As of gitea 1.9.0, use the `--username` flag instead. - `--username value`: Username. Required. New in gitea 1.9.0. - `--password value`: Password. Required. - `--email value`: Email. Required. - `--admin`: If provided, this makes the user an admin. Optional. - `--access-token`: If provided, an access token will be created for the user. Optional. (default: false). - `--must-change-password`: If provided, the created user will be required to choose a newer password after
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user