File tree 4 files changed +50
-13
lines changed
4 files changed +50
-13
lines changed Original file line number Diff line number Diff line change @@ -106,3 +106,26 @@ func TestAPISudoUserForbidden(t *testing.T) {
106
106
req := NewRequest (t , "GET" , urlStr )
107
107
session .MakeRequest (t , req , http .StatusForbidden )
108
108
}
109
+
110
+ func TestAPIListUsers (t * testing.T ) {
111
+ prepareTestEnv (t )
112
+ adminUsername := "user1"
113
+ session := loginUser (t , adminUsername )
114
+ token := getTokenForLoggedInUser (t , session )
115
+
116
+ urlStr := fmt .Sprintf ("/api/v1/admin/users?token=%s" , token )
117
+ req := NewRequest (t , "GET" , urlStr )
118
+ resp := session .MakeRequest (t , req , http .StatusOK )
119
+ var users []api.User
120
+ DecodeJSON (t , resp , & users )
121
+
122
+ found := false
123
+ for _ , user := range users {
124
+ if user .UserName == adminUsername {
125
+ found = true
126
+ }
127
+ }
128
+ assert .True (t , found )
129
+ numberOfUsers := models .GetCount (t , & models.User {}, "type = 0" )
130
+ assert .Equal (t , numberOfUsers , len (users ))
131
+ }
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ import (
10
10
"code.gitea.io/gitea/modules/context"
11
11
"code.gitea.io/gitea/modules/log"
12
12
"code.gitea.io/gitea/modules/setting"
13
+ "code.gitea.io/gitea/routers/api/v1/convert"
13
14
"code.gitea.io/gitea/routers/api/v1/user"
14
15
api "code.gitea.io/sdk/gitea"
15
16
)
@@ -319,8 +320,14 @@ func GetAllUsers(ctx *context.APIContext) {
319
320
PageSize : - 1 ,
320
321
})
321
322
if err != nil {
322
- ctx .Error (500 , "SearchUsers " , err )
323
+ ctx .Error (500 , "GetAllUsers " , err )
323
324
return
324
325
}
325
- ctx .JSON (200 , & users )
326
+
327
+ results := make ([]* api.User , len (users ))
328
+ for i := range users {
329
+ results [i ] = convert .ToUser (users [i ], ctx .IsSigned , ctx .User .IsAdmin )
330
+ }
331
+
332
+ ctx .JSON (200 , & results )
326
333
}
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ import (
10
10
"code.gitea.io/gitea/models"
11
11
"code.gitea.io/gitea/modules/git"
12
12
"code.gitea.io/gitea/modules/log"
13
+ "code.gitea.io/gitea/modules/markup"
13
14
"code.gitea.io/gitea/modules/util"
14
15
api "code.gitea.io/sdk/gitea"
15
16
@@ -216,3 +217,18 @@ func ToTeam(team *models.Team) *api.Team {
216
217
Units : team .GetUnitNames (),
217
218
}
218
219
}
220
+
221
+ // ToUser convert models.User to api.User
222
+ func ToUser (user * models.User , signed , admin bool ) * api.User {
223
+ result := & api.User {
224
+ ID : user .ID ,
225
+ UserName : user .Name ,
226
+ AvatarURL : user .AvatarLink (),
227
+ FullName : markup .Sanitize (user .FullName ),
228
+ IsAdmin : user .IsAdmin ,
229
+ }
230
+ if signed && (! user .KeepEmailPrivate || admin ) {
231
+ result .Email = user .Email
232
+ }
233
+ return result
234
+ }
Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ import (
10
10
11
11
"code.gitea.io/gitea/models"
12
12
"code.gitea.io/gitea/modules/context"
13
- "code.gitea.io/gitea/modules/markup "
13
+ "code.gitea.io/gitea/routers/api/v1/convert "
14
14
api "code.gitea.io/sdk/gitea"
15
15
16
16
"github.com/Unknwon/com"
@@ -67,16 +67,7 @@ func Search(ctx *context.APIContext) {
67
67
68
68
results := make ([]* api.User , len (users ))
69
69
for i := range users {
70
- results [i ] = & api.User {
71
- ID : users [i ].ID ,
72
- UserName : users [i ].Name ,
73
- AvatarURL : users [i ].AvatarLink (),
74
- FullName : markup .Sanitize (users [i ].FullName ),
75
- IsAdmin : users [i ].IsAdmin ,
76
- }
77
- if ctx .IsSigned && (! users [i ].KeepEmailPrivate || ctx .User .IsAdmin ) {
78
- results [i ].Email = users [i ].Email
79
- }
70
+ results [i ] = convert .ToUser (users [i ], ctx .IsSigned , ctx .User .IsAdmin )
80
71
}
81
72
82
73
ctx .JSON (200 , map [string ]interface {}{
You can’t perform that action at this time.
0 commit comments