From 14680cc55659863fdba2268d8b1a20c2f907329c Mon Sep 17 00:00:00 2001 From: wangsijie Date: Tue, 10 Jan 2023 11:46:41 +0800 Subject: [PATCH] feat(core): hide admin console role (#2872) --- packages/core/src/queries/roles.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/core/src/queries/roles.ts b/packages/core/src/queries/roles.ts index 9f909932d..71d57a472 100644 --- a/packages/core/src/queries/roles.ts +++ b/packages/core/src/queries/roles.ts @@ -1,5 +1,5 @@ import type { CreateRole, Role } from '@logto/schemas'; -import { SearchJointMode, Roles } from '@logto/schemas'; +import { adminConsoleAdminRoleId, SearchJointMode, Roles } from '@logto/schemas'; import type { OmitAutoSetFields } from '@logto/shared'; import { conditionalSql, convertToIdentifiers } from '@logto/shared'; import type { CommonQueryMethods } from 'slonik'; @@ -21,7 +21,7 @@ const buildRoleConditions = (search: Search) => { return conditionalSql( hasSearch, - () => sql`where ${buildConditionsFromSearch(search, searchFields)}` + () => sql`and ${buildConditionsFromSearch(search, searchFields)}` ); }; @@ -32,17 +32,16 @@ export const createRolesQueries = (pool: CommonQueryMethods) => { pool.one<{ count: number }>(sql` select count(*) from ${table} + where ${fields.id}<>${adminConsoleAdminRoleId} ${buildRoleConditions(search)} `); const findRoles = async (search: Search, limit?: number, offset?: number) => pool.any( sql` - select ${sql.join( - Object.values(fields).map((field) => sql`${table}.${field}`), - sql`,` - )} + select ${sql.join(Object.values(fields), sql`, `)} from ${table} + where ${fields.id}<>${adminConsoleAdminRoleId} ${buildRoleConditions(search)} ${conditionalSql(limit, (value) => sql`limit ${value}`)} ${conditionalSql(offset, (value) => sql`offset ${value}`)}