Skip to content

Commit d0e840a

Browse files
committed
ability to filter users based on login type
1 parent 998724d commit d0e840a

File tree

5 files changed

+19
-2
lines changed

5 files changed

+19
-2
lines changed

coderd/database/modelqueries.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,7 @@ func (q *sqlQuerier) GetAuthorizedUsers(ctx context.Context, arg GetUsersParams,
395395
arg.CreatedAfter,
396396
arg.IncludeSystem,
397397
arg.GithubComUserID,
398+
pq.Array(arg.LoginType),
398399
arg.OffsetOpt,
399400
arg.LimitOpt,
400401
)

coderd/database/queries.sql.go

Lines changed: 10 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/users.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,12 @@ WHERE
237237
github_com_user_id = @github_com_user_id
238238
ELSE true
239239
END
240+
-- Filter by login_type
241+
AND CASE
242+
WHEN cardinality(@login_type :: login_type[]) > 0 THEN
243+
login_type = ANY(@login_type :: login_type[])
244+
ELSE true
245+
END
240246
-- End of filters
241247

242248
-- Authorize Filter clause will be injected below in GetAuthorizedUsers

coderd/searchquery/search.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ func Users(query string) (database.GetUsersParams, []codersdk.ValidationError) {
8888
CreatedAfter: parser.Time3339Nano(values, time.Time{}, "created_after"),
8989
CreatedBefore: parser.Time3339Nano(values, time.Time{}, "created_before"),
9090
GithubComUserID: parser.Int64(values, 0, "github_com_user_id"),
91+
LoginType: httpapi.ParseCustomList(parser, values, []database.LoginType{}, "login_type", httpapi.ParseEnum[database.LoginType]),
9192
}
9293
parser.ErrorExcessParams(values)
9394
return filter, parser.Errors

coderd/users.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,7 @@ func (api *API) GetUsers(rw http.ResponseWriter, r *http.Request) ([]database.Us
306306
CreatedAfter: params.CreatedAfter,
307307
CreatedBefore: params.CreatedBefore,
308308
GithubComUserID: params.GithubComUserID,
309+
LoginType: params.LoginType,
309310
// #nosec G115 - Pagination offsets are small and fit in int32
310311
OffsetOpt: int32(paginationParams.Offset),
311312
// #nosec G115 - Pagination limits are small and fit in int32

0 commit comments

Comments
 (0)