MCPcopy Create free account
hub / github.com/actiontech/dtle / UserListV2

Function UserListV2

api/handler/v2/user.go:28–62  ·  view source on GitHub ↗

@Id UserListV2 @Description get user list. @Tags user @Success 200 {object} models.UserListResp @Security ApiKeyAuth @Param filter_username query string false "filter user name" @Param filter_tenant query string false "filter tenant" @Router /v2/user/list [get]

(c echo.Context)

Source from the content-addressed store, hash-verified

26// @Param filter_tenant query string false "filter tenant"
27// @Router /v2/user/list [get]
28func UserListV2(c echo.Context) error {
29 logger := handler.NewLogger().Named("UserListV2")
30 reqParam := new(models.UserListReq)
31 if err := handler.BindAndValidate(logger, c, reqParam); err != nil {
32 return c.JSON(http.StatusInternalServerError, models.BuildBaseResp(err))
33 }
34
35 storeManager, err := common.NewStoreManager([]string{handler.ConsulAddr}, logger)
36 if err != nil {
37 return c.JSON(http.StatusInternalServerError, models.BuildBaseResp(fmt.Errorf("consul_addr=%v; connect to consul failed: %v", handler.ConsulAddr, err)))
38 }
39 userList, err := storeManager.FindUserList(reqParam.FilterTenant)
40 if nil != err {
41 return c.JSON(http.StatusInternalServerError, models.BuildBaseResp(fmt.Errorf("consul_addr=%v ; get job status list failed: %v", handler.ConsulAddr, err)))
42 }
43
44 currentUser, err := getCurrentUser(c)
45 if err != nil {
46 return c.JSON(http.StatusInternalServerError, models.BuildBaseResp(err))
47 }
48 users := make([]*common.User, 0)
49 for _, user := range userList {
50 if !userHasAccess(storeManager, fmt.Sprintf("%s:%s", user.Tenant, user.Username), currentUser) {
51 continue
52 }
53 if strings.HasPrefix(user.Username, reqParam.FilterUsername) {
54 users = append(users, user)
55 }
56 }
57
58 return c.JSON(http.StatusOK, &models.UserListResp{
59 UserList: users,
60 BaseResp: models.BuildBaseResp(nil),
61 })
62}
63
64// @Id TenantListV2
65// @Description get tenant list.

Callers

nothing calls this directly

Calls 7

FindUserListMethod · 0.95
NewLoggerFunction · 0.92
BindAndValidateFunction · 0.92
BuildBaseRespFunction · 0.92
NewStoreManagerFunction · 0.92
getCurrentUserFunction · 0.85
userHasAccessFunction · 0.85

Tested by

no test coverage detected