mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Display all user types and org types on admin management UI (#27050)
Follow #24026 <img width="1049" alt="图片" src="https://github.com/go-gitea/gitea/assets/81045/d3fc5159-b5e7-411a-b6f8-4a111a027e6b"> --------- Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
		@@ -34,12 +34,26 @@ type SearchUserOptions struct {
 | 
			
		||||
	IsRestricted       util.OptionalBool
 | 
			
		||||
	IsTwoFactorEnabled util.OptionalBool
 | 
			
		||||
	IsProhibitLogin    util.OptionalBool
 | 
			
		||||
	IncludeReserved    bool
 | 
			
		||||
 | 
			
		||||
	ExtraParamStrings map[string]string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (opts *SearchUserOptions) toSearchQueryBase() *xorm.Session {
 | 
			
		||||
	var cond builder.Cond = builder.Eq{"type": opts.Type}
 | 
			
		||||
	var cond builder.Cond
 | 
			
		||||
	cond = builder.Eq{"type": opts.Type}
 | 
			
		||||
	if opts.IncludeReserved {
 | 
			
		||||
		if opts.Type == UserTypeIndividual {
 | 
			
		||||
			cond = cond.Or(builder.Eq{"type": UserTypeUserReserved}).Or(
 | 
			
		||||
				builder.Eq{"type": UserTypeBot},
 | 
			
		||||
			).Or(
 | 
			
		||||
				builder.Eq{"type": UserTypeRemoteUser},
 | 
			
		||||
			)
 | 
			
		||||
		} else if opts.Type == UserTypeOrganization {
 | 
			
		||||
			cond = cond.Or(builder.Eq{"type": UserTypeOrganizationReserved})
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if len(opts.Keyword) > 0 {
 | 
			
		||||
		lowerKeyword := strings.ToLower(opts.Keyword)
 | 
			
		||||
		keywordCond := builder.Or(
 | 
			
		||||
 
 | 
			
		||||
@@ -2780,6 +2780,9 @@ users.full_name = Full Name
 | 
			
		||||
users.activated = Activated
 | 
			
		||||
users.admin = Admin
 | 
			
		||||
users.restricted = Restricted
 | 
			
		||||
users.reserved = Reserved
 | 
			
		||||
users.bot = Bot
 | 
			
		||||
users.remote = Remote
 | 
			
		||||
users.2fa = 2FA
 | 
			
		||||
users.repos = Repos
 | 
			
		||||
users.created = Created
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,9 @@ func Organizations(ctx *context.Context) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	explore.RenderUserSearch(ctx, &user_model.SearchUserOptions{
 | 
			
		||||
		Actor: ctx.Doer,
 | 
			
		||||
		Type:  user_model.UserTypeOrganization,
 | 
			
		||||
		Actor:           ctx.Doer,
 | 
			
		||||
		Type:            user_model.UserTypeOrganization,
 | 
			
		||||
		IncludeReserved: true, // administrator needs to list all acounts include reserved
 | 
			
		||||
		ListOptions: db.ListOptions{
 | 
			
		||||
			PageSize: setting.UI.Admin.OrgPagingNum,
 | 
			
		||||
		},
 | 
			
		||||
 
 | 
			
		||||
@@ -77,6 +77,7 @@ func Users(ctx *context.Context) {
 | 
			
		||||
		IsRestricted:       util.OptionalBoolParse(statusFilterMap["is_restricted"]),
 | 
			
		||||
		IsTwoFactorEnabled: util.OptionalBoolParse(statusFilterMap["is_2fa_enabled"]),
 | 
			
		||||
		IsProhibitLogin:    util.OptionalBoolParse(statusFilterMap["is_prohibit_login"]),
 | 
			
		||||
		IncludeReserved:    true, // administrator needs to list all acounts include reserved, bot, remote ones
 | 
			
		||||
		ExtraParamStrings:  extraParamStrings,
 | 
			
		||||
	}, tplUsers)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,9 @@
 | 
			
		||||
								{{if .Visibility.IsPrivate}}
 | 
			
		||||
									<span class="text gold">{{svg "octicon-lock"}}</span>
 | 
			
		||||
								{{end}}
 | 
			
		||||
								{{if eq .Type 3}}{{/* Reserved organization */}}
 | 
			
		||||
									<span class="ui mini label">{{$.locale.Tr "admin.users.reserved"}}</span>
 | 
			
		||||
								{{end}}
 | 
			
		||||
							</td>
 | 
			
		||||
							<td>{{.NumTeams}}</td>
 | 
			
		||||
							<td>{{.NumMembers}}</td>
 | 
			
		||||
 
 | 
			
		||||
@@ -84,7 +84,13 @@
 | 
			
		||||
							<td>
 | 
			
		||||
								<a href="{{$.Link}}/{{.ID}}">{{.Name}}</a>
 | 
			
		||||
								{{if .IsAdmin}}
 | 
			
		||||
									<span class="ui basic label">{{$.locale.Tr "admin.users.admin"}}</span>
 | 
			
		||||
									<span class="ui mini label">{{$.locale.Tr "admin.users.admin"}}</span>
 | 
			
		||||
								{{else if eq 2 .Type}}{{/* Reserved user */}}
 | 
			
		||||
									<span class="ui mini label">{{$.locale.Tr "admin.users.reserved"}}</span>
 | 
			
		||||
								{{else if eq 4 .Type}}{{/* Bot "user" */}}
 | 
			
		||||
									<span class="ui mini label">{{$.locale.Tr "admin.users.bot"}}</span>
 | 
			
		||||
								{{else if eq 5 .Type}}{{/* Remote user */}}
 | 
			
		||||
									<span class="ui mini label">{{$.locale.Tr "admin.users.remote"}}</span>
 | 
			
		||||
								{{end}}
 | 
			
		||||
							</td>
 | 
			
		||||
							<td class="gt-ellipsis gt-max-width-12rem">{{.Email}}</td>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user