mirror of
				https://gitea.com/gitea/tea.git
				synced 2025-10-31 01:05:26 +01:00 
			
		
		
		
	Add user list command (#427)
Co-authored-by: Matti R <matti@mdranta.net> Co-authored-by: Norwin <noerw@noreply.gitea.io> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Norwin <git@nroo.de> Reviewed-on: https://gitea.com/gitea/tea/pulls/427 Reviewed-by: Norwin <noerw@noreply.gitea.io> Reviewed-by: 6543 <6543@obermui.de> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-committed-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		
							
								
								
									
										55
									
								
								cmd/admin.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								cmd/admin.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| // Copyright 2021 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package cmd | ||||
|  | ||||
| import ( | ||||
| 	"code.gitea.io/tea/cmd/admin/users" | ||||
| 	"code.gitea.io/tea/modules/context" | ||||
| 	"code.gitea.io/tea/modules/print" | ||||
| 	"github.com/urfave/cli/v2" | ||||
| ) | ||||
|  | ||||
| // CmdAdmin represents the namespace of admin commands. | ||||
| // The command itself has no functionality, but hosts subcommands. | ||||
| var CmdAdmin = cli.Command{ | ||||
| 	Name:     "admin", | ||||
| 	Usage:    "Operations requiring admin access on the Gitea instance", | ||||
| 	Aliases:  []string{"a"}, | ||||
| 	Category: catMisc, | ||||
| 	Action: func(cmd *cli.Context) error { | ||||
| 		return cli.ShowSubcommandHelp(cmd) | ||||
| 	}, | ||||
| 	Subcommands: []*cli.Command{ | ||||
| 		&cmdAdminUsers, | ||||
| 	}, | ||||
| } | ||||
|  | ||||
| var cmdAdminUsers = cli.Command{ | ||||
| 	Name:    "users", | ||||
| 	Aliases: []string{"u"}, | ||||
| 	Usage:   "Manage registered users", | ||||
| 	Action: func(ctx *cli.Context) error { | ||||
| 		if ctx.Args().Len() == 1 { | ||||
| 			return runAdminUserDetail(ctx, ctx.Args().First()) | ||||
| 		} | ||||
| 		return users.RunUserList(ctx) | ||||
| 	}, | ||||
| 	Subcommands: []*cli.Command{ | ||||
| 		&users.CmdUserList, | ||||
| 	}, | ||||
| 	Flags: users.CmdUserList.Flags, | ||||
| } | ||||
|  | ||||
| func runAdminUserDetail(cmd *cli.Context, u string) error { | ||||
| 	ctx := context.InitCommand(cmd) | ||||
| 	client := ctx.Login.Client() | ||||
| 	user, _, err := client.GetUserInfo(u) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	print.UserDetails(user) | ||||
| 	return nil | ||||
| } | ||||
							
								
								
									
										54
									
								
								cmd/admin/users/list.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								cmd/admin/users/list.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| // Copyright 2021 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package users | ||||
|  | ||||
| import ( | ||||
| 	"code.gitea.io/tea/cmd/flags" | ||||
| 	"code.gitea.io/tea/modules/context" | ||||
| 	"code.gitea.io/tea/modules/print" | ||||
|  | ||||
| 	"code.gitea.io/sdk/gitea" | ||||
| 	"github.com/urfave/cli/v2" | ||||
| ) | ||||
|  | ||||
| var userFieldsFlag = flags.FieldsFlag(print.UserFields, []string{ | ||||
| 	"id", "login", "full_name", "email", "activated", | ||||
| }) | ||||
|  | ||||
| // CmdUserList represents a sub command of users to list users | ||||
| var CmdUserList = cli.Command{ | ||||
| 	Name:        "list", | ||||
| 	Aliases:     []string{"ls"}, | ||||
| 	Usage:       "List Users", | ||||
| 	Description: "List users", | ||||
| 	Action:      RunUserList, | ||||
| 	Flags: append([]cli.Flag{ | ||||
| 		userFieldsFlag, | ||||
| 		&flags.PaginationPageFlag, | ||||
| 		&flags.PaginationLimitFlag, | ||||
| 	}, flags.AllDefaultFlags...), | ||||
| } | ||||
|  | ||||
| // RunUserList list users | ||||
| func RunUserList(cmd *cli.Context) error { | ||||
| 	ctx := context.InitCommand(cmd) | ||||
|  | ||||
| 	fields, err := userFieldsFlag.GetValues(cmd) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	client := ctx.Login.Client() | ||||
| 	users, _, err := client.AdminListUsers(gitea.AdminListUsersOptions{ | ||||
| 		ListOptions: ctx.GetListOptions(), | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	print.UserList(users, ctx.Output, fields) | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
| @@ -8,4 +8,5 @@ var ( | ||||
| 	catSetup    = "SETUP" | ||||
| 	catEntities = "ENTITIES" | ||||
| 	catHelpers  = "HELPERS" | ||||
| 	catMisc     = "MISCELLANEOUS" | ||||
| ) | ||||
|   | ||||
| @@ -14,7 +14,7 @@ import ( | ||||
| // CmdWhoami represents the command to show current logged in user | ||||
| var CmdWhoami = cli.Command{ | ||||
| 	Name:        "whoami", | ||||
| 	Category:    catSetup, | ||||
| 	Category:    catMisc, | ||||
| 	Description: `For debugging purposes, show the user that is currently logged in.`, | ||||
| 	Usage:       "Show current logged in user", | ||||
| 	ArgsUsage:   " ", // command does not accept arguments | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 techknowlogick
					techknowlogick