@Id RoleListV2 @Description get role list. @Tags Role @Success 200 {object} models.RoleListResp @Security ApiKeyAuth @Param filter_tenant query string false "filter tenant" @Router /v2/role/list [get]
(c echo.Context)
| 20 | // @Param filter_tenant query string false "filter tenant" |
| 21 | // @Router /v2/role/list [get] |
| 22 | func RoleListV2(c echo.Context) error { |
| 23 | logger := handler.NewLogger().Named("RoleListV2") |
| 24 | reqParam := new(models.RoleListReq) |
| 25 | if err := handler.BindAndValidate(logger, c, reqParam); err != nil { |
| 26 | return c.JSON(http.StatusInternalServerError, models.BuildBaseResp(err)) |
| 27 | } |
| 28 | |
| 29 | storeManager, err := common.NewStoreManager([]string{handler.ConsulAddr}, logger) |
| 30 | if err != nil { |
| 31 | return c.JSON(http.StatusInternalServerError, models.BuildBaseResp(fmt.Errorf("consul_addr=%v; connect to consul failed: %v", handler.ConsulAddr, err))) |
| 32 | } |
| 33 | roleList, err := storeManager.FindRoleList(reqParam.FilterTenant) |
| 34 | if nil != err { |
| 35 | return c.JSON(http.StatusInternalServerError, models.BuildBaseResp(fmt.Errorf("consul_addr=%v ; get job status list failed: %v", handler.ConsulAddr, err))) |
| 36 | } |
| 37 | |
| 38 | currentUser, err := getCurrentUser(c) |
| 39 | if err != nil { |
| 40 | return c.JSON(http.StatusInternalServerError, models.BuildBaseResp(err)) |
| 41 | } |
| 42 | roles := make([]*common.Role, 0) |
| 43 | for _, role := range roleList { |
| 44 | if currentUser.Tenant == common.DefaultAdminTenant || |
| 45 | currentUser.Tenant == role.Tenant { |
| 46 | roles = append(roles, role) |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | return c.JSON(http.StatusOK, &models.RoleListResp{ |
| 51 | RoleList: roles, |
| 52 | BaseResp: models.BuildBaseResp(nil), |
| 53 | }) |
| 54 | } |
| 55 | |
| 56 | // @Id CreateRoleV2 |
| 57 | // @Description create Role. |
nothing calls this directly
no test coverage detected