diff --git a/packages/core/src/__mocks__/user.ts b/packages/core/src/__mocks__/user.ts index 7db746a5c..157b10707 100644 --- a/packages/core/src/__mocks__/user.ts +++ b/packages/core/src/__mocks__/user.ts @@ -19,6 +19,7 @@ export const mockUser: User = { applicationId: 'bar', lastSignInAt: 1_650_969_465_789, createdAt: 1_650_969_000_000, + isSuspended: false, }; export const mockUserResponse = pick(mockUser, ...userInfoSelectFields); @@ -41,6 +42,7 @@ export const mockUserWithPassword: User = { applicationId: 'bar', lastSignInAt: 1_650_969_465_789, createdAt: 1_650_969_000_000, + isSuspended: false, }; export const mockUserList: User[] = [ @@ -59,6 +61,7 @@ export const mockUserList: User[] = [ applicationId: 'bar', lastSignInAt: 1_650_969_465_000, createdAt: 1_650_969_000_000, + isSuspended: false, }, { id: '2', @@ -75,6 +78,7 @@ export const mockUserList: User[] = [ applicationId: 'bar', lastSignInAt: 1_650_969_465_000, createdAt: 1_650_969_000_000, + isSuspended: false, }, { id: '3', @@ -91,6 +95,7 @@ export const mockUserList: User[] = [ applicationId: 'bar', lastSignInAt: 1_650_969_465_000, createdAt: 1_650_969_000_000, + isSuspended: false, }, { id: '4', @@ -107,6 +112,7 @@ export const mockUserList: User[] = [ applicationId: 'bar', lastSignInAt: 1_650_969_465_000, createdAt: 1_650_969_000_000, + isSuspended: false, }, { id: '5', @@ -123,6 +129,7 @@ export const mockUserList: User[] = [ applicationId: 'bar', lastSignInAt: 1_650_969_465_000, createdAt: 1_650_969_000_000, + isSuspended: false, }, ]; diff --git a/packages/schemas/alterations/next-1667374974-user-suspend.ts b/packages/schemas/alterations/next-1667374974-user-suspend.ts new file mode 100644 index 000000000..817f831fc --- /dev/null +++ b/packages/schemas/alterations/next-1667374974-user-suspend.ts @@ -0,0 +1,18 @@ +import { sql } from 'slonik'; + +import type { AlterationScript } from '../lib/types/alteration'; + +const alteration: AlterationScript = { + up: async (pool) => { + await pool.query(sql` + alter table users add column is_suspended boolean not null default false; + `); + }, + down: async (pool) => { + await pool.query(sql` + alter table users drop column is_suspended; + `); + }, +}; + +export default alteration; diff --git a/packages/schemas/tables/users.sql b/packages/schemas/tables/users.sql index 0b0510add..d7ca8bd51 100644 --- a/packages/schemas/tables/users.sql +++ b/packages/schemas/tables/users.sql @@ -13,6 +13,7 @@ create table users ( role_names jsonb /* @use RoleNames */ not null default '[]'::jsonb, identities jsonb /* @use Identities */ not null default '{}'::jsonb, custom_data jsonb /* @use ArbitraryObject */ not null default '{}'::jsonb, + is_suspended boolean not null default false, last_sign_in_at timestamptz, created_at timestamptz not null default (now()), primary key (id)