fix(server, web): Prevent the user from setting a future date of birth (#5803)
* Hide the person age if it is negative * Add validation to prevent future birth dates * Add comment * Add test, Add birth date validation and update birth date modal * Add birthDate validation in PersonService and SetBirthDateModal * Running npm run format:fix * Generating the migration file propoerly, and Make the birthdate form logic simpler * Make birthDate type only string * Adding useLocationPin back
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import {
|
||||
Check,
|
||||
Column,
|
||||
CreateDateColumn,
|
||||
Entity,
|
||||
@@ -11,6 +12,7 @@ import { AssetFaceEntity } from './asset-face.entity';
|
||||
import { UserEntity } from './user.entity';
|
||||
|
||||
@Entity('person')
|
||||
@Check(`"birthDate" <= CURRENT_DATE`)
|
||||
export class PersonEntity {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id!: string;
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class NullifyFutureBirthDatesAndAddCheckConstraint1702938928766 implements MigrationInterface {
|
||||
name = 'NullifyFutureBirthDatesAndAddCheckConstraint1702938928766'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`UPDATE "person" SET "birthDate" = NULL WHERE "birthDate" > CURRENT_DATE;`);
|
||||
await queryRunner.query(`ALTER TABLE "person" ADD CONSTRAINT "CHK_b0f82b0ed662bfc24fbb58bb45" CHECK ("birthDate" <= CURRENT_DATE)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
// The down method cannot revert the nullified dates
|
||||
await queryRunner.query(`ALTER TABLE "person" DROP CONSTRAINT "CHK_b0f82b0ed662bfc24fbb58bb45"`);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user