Skip to content

Commit a294e95

Browse files
committed
feat(lib/roles): omit grants
1 parent 2e4d909 commit a294e95

File tree

1 file changed

+7
-18
lines changed

1 file changed

+7
-18
lines changed

src/lib/PostgresMetaRoles.ts

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { ident, literal } from 'pg-format'
2-
import { DEFAULT_ROLES, DEFAULT_SYSTEM_SCHEMAS } from './constants'
3-
import { coalesceRowsToArray } from './helpers'
4-
import { grantsSql, rolesSql } from './sql'
2+
import { DEFAULT_ROLES } from './constants'
3+
import { rolesSql } from './sql'
54
import { PostgresMetaResult, PostgresRole } from './types'
65

76
export default class PostgresMetaRoles {
@@ -13,31 +12,21 @@ export default class PostgresMetaRoles {
1312

1413
async list({
1514
includeDefaultRoles = false,
16-
includeSystemSchemas = false,
1715
limit,
1816
offset,
1917
}: {
2018
includeDefaultRoles?: boolean
21-
includeSystemSchemas?: boolean
2219
limit?: number
2320
offset?: number
2421
} = {}): Promise<PostgresMetaResult<PostgresRole[]>> {
2522
let sql = `
26-
WITH roles AS (${
27-
includeDefaultRoles
28-
? rolesSql
29-
: `${rolesSql} WHERE NOT (rolname IN (${DEFAULT_ROLES.map(literal).join(',')}))`
30-
}),
31-
grants AS (${
32-
includeSystemSchemas
33-
? grantsSql
34-
: `${grantsSql} AND NOT (nc.nspname IN (${DEFAULT_SYSTEM_SCHEMAS.map(literal).join(',')}))`
35-
})
23+
WITH
24+
roles AS (${rolesSql})
3625
SELECT
37-
*,
38-
${coalesceRowsToArray('grants', 'grants.grantee = roles.name')}
26+
*
3927
FROM
40-
roles`
28+
roles
29+
${includeDefaultRoles ? '' : `WHERE name NOT IN (${DEFAULT_ROLES.map(literal).join(',')})`}`
4130
if (limit) {
4231
sql = `${sql} LIMIT ${limit}`
4332
}

0 commit comments

Comments
 (0)