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{
|
||||
ClientID: ctx.Query("client_id"),
|
||||
Name: ctx.Query("name"),
|
||||
GroupID: ctx.Query("group_id"),
|
||||
Includes: []string{"Roles"},
|
||||
}
|
||||
filter.BindPagination(ctx)
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ type UserFilter struct {
|
|||
pagination.BaseFilter
|
||||
Name string `form:"name"` // tambahkan ini
|
||||
ClientID string `form:"client_id"` // tambahkan ini
|
||||
GroupID string `form:"group_id"` // 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)
|
||||
}
|
||||
|
||||
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
|
||||
query = query.Model(&M_User{}).Preload("Client", func(db *gorm.DB) *gorm.DB {
|
||||
return db.Select("id", "name")
|
||||
|
|
|
|||
Loading…
Reference in New Issue