Add filter to search users by active (#38637)

* Add filter to search users by active

* Fix query
pull/38747/head
Selene 4 years ago committed by GitHub
parent f1529b83a2
commit e47a60f511
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      pkg/api/user.go
  2. 5
      pkg/models/user.go
  3. 7
      pkg/services/sqlstore/user.go

@ -290,8 +290,9 @@ func searchUser(c *models.ReqContext) (*models.SearchUsersQuery, error) {
}
searchQuery := c.Query("query")
filter := c.Query("filter")
query := &models.SearchUsersQuery{Query: searchQuery, Page: page, Limit: perPage}
query := &models.SearchUsersQuery{Query: searchQuery, Filter: models.SearchUsersFilter(filter), Page: page, Limit: perPage}
if err := bus.Dispatch(query); err != nil {
return nil, err
}

@ -138,12 +138,17 @@ type GetUserProfileQuery struct {
Result UserProfileDTO
}
type SearchUsersFilter string
const ActiveLast30Days SearchUsersFilter = "activeLast30Days"
type SearchUsersQuery struct {
OrgId int64
Query string
Page int
Limit int
AuthModule string
Filter SearchUsersFilter
IsDisabled *bool

@ -588,7 +588,6 @@ func SearchUsers(query *models.SearchUsersQuery) error {
ORDER BY user_auth.created DESC `
joinCondition = "user_auth.id=" + joinCondition + dialect.Limit(1) + ")"
sess.Join("LEFT", "user_auth", joinCondition)
if query.OrgId > 0 {
whereConditions = append(whereConditions, "org_id = ?")
whereParams = append(whereParams, query.OrgId)
@ -609,6 +608,12 @@ func SearchUsers(query *models.SearchUsersQuery) error {
whereParams = append(whereParams, query.AuthModule)
}
if query.Filter == models.ActiveLast30Days {
activeUserDeadlineDate := time.Now().Add(-activeUserTimeLimit)
whereConditions = append(whereConditions, `last_seen_at > ?`)
whereParams = append(whereParams, activeUserDeadlineDate)
}
if len(whereConditions) > 0 {
sess.Where(strings.Join(whereConditions, " AND "), whereParams...)
}

Loading…
Cancel
Save