33 lines
944 B
JavaScript
33 lines
944 B
JavaScript
/**
|
|
* FEAT-199: Adds email confirmation to user registration.
|
|
* - confirmation_token: random string sent in confirmation email (null after confirmed)
|
|
* - confirmed_at: timestamp when email was confirmed (null until confirmed)
|
|
* - confirmed users can login; unconfirmed cannot.
|
|
*/
|
|
|
|
export const up = (pgm) => {
|
|
pgm.addColumn('identity_users', {
|
|
confirmation_token: {
|
|
type: 'text',
|
|
notNull: false,
|
|
default: null,
|
|
},
|
|
confirmed_at: {
|
|
type: 'timestamptz',
|
|
notNull: false,
|
|
default: null,
|
|
},
|
|
email_confirmed: {
|
|
type: 'boolean',
|
|
notNull: true,
|
|
default: false,
|
|
},
|
|
});
|
|
// FEAT-199: migrate existing users to confirmed (they already verified their email during signup)
|
|
pgm.sql('UPDATE identity_users SET email_confirmed = true');
|
|
};
|
|
|
|
export const down = (pgm) => {
|
|
pgm.dropColumns('identity_users', ['email_confirmed', 'confirmed_at', 'confirmation_token']);
|
|
};
|