Add TenantID support to user filtering and authentication middleware
This commit is contained in:
parent
dae2c0daa9
commit
5b9ea46e20
|
|
@ -62,7 +62,11 @@ func (c *userController) Register(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *userController) GetAllUser(ctx *gin.Context) {
|
func (c *userController) GetAllUser(ctx *gin.Context) {
|
||||||
var filter = &query.UserFilter{}
|
tenantId := ctx.MustGet("tenant_id").(string)
|
||||||
|
var filter = &query.UserFilter{
|
||||||
|
TenantID: tenantId,
|
||||||
|
Name: ctx.Query("name"), // ambil parameter name dari query string
|
||||||
|
}
|
||||||
filter.BindPagination(ctx)
|
filter.BindPagination(ctx)
|
||||||
|
|
||||||
ctx.ShouldBindQuery(filter)
|
ctx.ShouldBindQuery(filter)
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,18 @@ type User struct {
|
||||||
|
|
||||||
type UserFilter struct {
|
type UserFilter struct {
|
||||||
pagination.BaseFilter
|
pagination.BaseFilter
|
||||||
|
Name string `form:"name"` // tambahkan ini
|
||||||
|
TenantID string `form:"tenant_id"` // tambahkan ini
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *UserFilter) ApplyFilters(query *gorm.DB) *gorm.DB {
|
func (f *UserFilter) ApplyFilters(query *gorm.DB) *gorm.DB {
|
||||||
// Apply your filters here
|
// Apply your filters here
|
||||||
|
if f.Name != "" {
|
||||||
|
query = query.Where("name ILIKE ?", "%"+f.Name+"%")
|
||||||
|
}
|
||||||
|
if f.TenantID != "" {
|
||||||
|
query = query.Where("tenant_id = ?", f.TenantID)
|
||||||
|
}
|
||||||
return query
|
return query
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ func RegisterRoutes(server *gin.Engine, injector *do.Injector) {
|
||||||
{
|
{
|
||||||
userRoutes.POST("", userController.Register)
|
userRoutes.POST("", userController.Register)
|
||||||
userRoutes.POST("/login", userController.Login)
|
userRoutes.POST("/login", userController.Login)
|
||||||
userRoutes.GET("", userController.GetAllUser)
|
userRoutes.GET("", middlewares.Authenticate(jwtService), userController.GetAllUser)
|
||||||
userRoutes.GET("/me", middlewares.Authenticate(jwtService), userController.Me)
|
userRoutes.GET("/me", middlewares.Authenticate(jwtService), userController.Me)
|
||||||
userRoutes.PUT("/:id", middlewares.Authenticate(jwtService), userController.Update)
|
userRoutes.PUT("/:id", middlewares.Authenticate(jwtService), userController.Update)
|
||||||
userRoutes.DELETE("/:id", middlewares.Authenticate(jwtService), userController.Delete)
|
userRoutes.DELETE("/:id", middlewares.Authenticate(jwtService), userController.Delete)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue