Skip to content

Commit 341051c

Browse files
authored
fix: exclude service accounts from license seat count (coder#24401)
1 parent e0be9bf commit 341051c

3 files changed

Lines changed: 37 additions & 0 deletions

File tree

coderd/database/querier_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2168,6 +2168,41 @@ func TestInsertUserServiceAccountConstraints(t *testing.T) {
21682168
})
21692169
}
21702170

2171+
func TestGetActiveUserCount(t *testing.T) {
2172+
t.Parallel()
2173+
if testing.Short() {
2174+
t.SkipNow()
2175+
}
2176+
2177+
db, _ := dbtestutil.NewDB(t)
2178+
ctx := testutil.Context(t, testutil.WaitLong)
2179+
2180+
// Seed users: 2 active humans, 1 active service account,
2181+
// 1 dormant, 1 deleted. Only the 2 active humans should
2182+
// be counted for license seat purposes.
2183+
_ = dbgen.User(t, db, database.User{
2184+
Status: database.UserStatusActive,
2185+
})
2186+
_ = dbgen.User(t, db, database.User{
2187+
Status: database.UserStatusActive,
2188+
})
2189+
_ = dbgen.User(t, db, database.User{
2190+
Status: database.UserStatusActive,
2191+
IsServiceAccount: true,
2192+
})
2193+
_ = dbgen.User(t, db, database.User{
2194+
Status: database.UserStatusDormant,
2195+
})
2196+
_ = dbgen.User(t, db, database.User{
2197+
Status: database.UserStatusActive,
2198+
Deleted: true,
2199+
})
2200+
2201+
count, err := db.GetActiveUserCount(ctx, false)
2202+
require.NoError(t, err)
2203+
require.Equal(t, int64(2), count)
2204+
}
2205+
21712206
func TestUserChangeLoginType(t *testing.T) {
21722207
t.Parallel()
21732208
if testing.Short() {

coderd/database/queries.sql.go

Lines changed: 1 addition & 0 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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ FROM
7878
users
7979
WHERE
8080
status = 'active'::user_status AND deleted = false
81+
AND is_service_account = false
8182
AND CASE WHEN @include_system::bool THEN TRUE ELSE is_system = false END;
8283

8384
-- name: InsertUser :one

0 commit comments

Comments
 (0)