feat(user): Add GroupID filter to user queries for enhanced filtering capabilities
Deploy Application / deploy (push) Successful in 20s
Details
Deploy Application / deploy (push) Successful in 20s
Details
This commit is contained in:
parent
5d27d4f3bd
commit
d8756b6f76
|
|
@ -114,6 +114,7 @@ func (c *userController) GetAllUser(ctx *gin.Context) {
|
||||||
var filter = &query.UserFilter{
|
var filter = &query.UserFilter{
|
||||||
ClientID: ctx.Query("client_id"),
|
ClientID: ctx.Query("client_id"),
|
||||||
Name: ctx.Query("name"),
|
Name: ctx.Query("name"),
|
||||||
|
GroupID: ctx.Query("group_id"),
|
||||||
Includes: []string{"Roles"},
|
Includes: []string{"Roles"},
|
||||||
}
|
}
|
||||||
filter.BindPagination(ctx)
|
filter.BindPagination(ctx)
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ type UserFilter struct {
|
||||||
pagination.BaseFilter
|
pagination.BaseFilter
|
||||||
Name string `form:"name"` // tambahkan ini
|
Name string `form:"name"` // tambahkan ini
|
||||||
ClientID string `form:"client_id"` // tambahkan ini
|
ClientID string `form:"client_id"` // tambahkan ini
|
||||||
|
GroupID string `form:"group_id"` // tambahkan ini
|
||||||
Includes []string `form:"includes"` // tambahkan ini
|
Includes []string `form:"includes"` // tambahkan ini
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -38,6 +39,12 @@ func (f *UserFilter) ApplyFilters(query *gorm.DB) *gorm.DB {
|
||||||
query = query.Where("client_id = ?", f.ClientID)
|
query = query.Where("client_id = ?", f.ClientID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if f.GroupID != "" {
|
||||||
|
query = query.Joins("JOIN m_maintenance_group_role_users ON m_maintenance_group_role_users.user_id = m_users.id").
|
||||||
|
Joins("JOIN m_maintenance_group_roles ON m_maintenance_group_roles.id = m_maintenance_group_role_users.maintenance_group_role_id").
|
||||||
|
Where("m_maintenance_group_roles.maintenance_group_id = ?", f.GroupID)
|
||||||
|
}
|
||||||
|
|
||||||
// add preload clients
|
// add preload clients
|
||||||
query = query.Model(&M_User{}).Preload("Client", func(db *gorm.DB) *gorm.DB {
|
query = query.Model(&M_User{}).Preload("Client", func(db *gorm.DB) *gorm.DB {
|
||||||
return db.Select("id", "name")
|
return db.Select("id", "name")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue