Add TenantID support to user filtering and authentication middleware

This commit is contained in:
Habib Fatkhul Rohman 2025-09-16 11:02:05 +07:00
parent dae2c0daa9
commit 5b9ea46e20
3 changed files with 14 additions and 2 deletions

View File

@ -62,7 +62,11 @@ func (c *userController) Register(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)
ctx.ShouldBindQuery(filter)

View File

@ -17,10 +17,18 @@ type User struct {
type UserFilter struct {
pagination.BaseFilter
Name string `form:"name"` // tambahkan ini
TenantID string `form:"tenant_id"` // tambahkan ini
}
func (f *UserFilter) ApplyFilters(query *gorm.DB) *gorm.DB {
// 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
}

View File

@ -17,7 +17,7 @@ func RegisterRoutes(server *gin.Engine, injector *do.Injector) {
{
userRoutes.POST("", userController.Register)
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.PUT("/:id", middlewares.Authenticate(jwtService), userController.Update)
userRoutes.DELETE("/:id", middlewares.Authenticate(jwtService), userController.Delete)