summaryrefslogtreecommitdiff
path: root/src-migrate/validations/auth.ts
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-01-15 15:24:06 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-01-15 15:24:06 +0700
commit8073c4156accb3fa88469e7a16a65e46983100a5 (patch)
treee671e48f4321a7dfef1b80234af58392f71fdbdd /src-migrate/validations/auth.ts
parent9c4951174cf6cf5c15b0b2a808d5d14befac6169 (diff)
<iman> update code filter badword
Diffstat (limited to 'src-migrate/validations/auth.ts')
-rw-r--r--src-migrate/validations/auth.ts115
1 files changed, 51 insertions, 64 deletions
diff --git a/src-migrate/validations/auth.ts b/src-migrate/validations/auth.ts
index cf88011d..e24d6ea1 100644
--- a/src-migrate/validations/auth.ts
+++ b/src-migrate/validations/auth.ts
@@ -7,7 +7,7 @@ const forbiddenWords = [
' tai ',
'kontol',
'memek',
- 'bol',
+ ' bol ',
'pantat',
'jembut',
'mencret',
@@ -20,6 +20,39 @@ const forbiddenWords = [
'b4b1',
'b4bi',
'bab1',
+ 'mati',
+ 'perkosa',
+ 'bunuh',
+ 'membunuh',
+ 't41',
+ 't4i',
+ 'ta1',
+ 'anjay',
+ 'anjir',
+ 'anying',
+ 'tokay',
+ 'peler',
+ 'meki',
+ 'tetek',
+ 'teteq',
+ 'tobrut',
+ 'toket',
+ 'pentil',
+ 'pantek',
+ 'bangke',
+ 'kampret',
+ 'sialan',
+ 'beol',
+ 'bego',
+ 'goblok',
+ 'tolol',
+ 'jancok',
+ 'jablay',
+ 'jalang',
+ 'lonte',
+ 'jancuk',
+ 'pelacur',
+ 'pelakor',
];
export const registerSchema = z
.object({
@@ -27,23 +60,22 @@ export const registerSchema = z
.string()
.min(1, { message: 'Nama harus diisi' })
.refine(
- (value) =>
- !forbiddenWords.some((word) => value.toLowerCase().includes(word)),
- {
- message: 'Nama mengandung kata yang tidak diperbolehkan',
- }
+ (value) => {
+ const lowerValue = value.toLowerCase();
+ const hasForbiddenWord = forbiddenWords.some((word) =>
+ lowerValue.includes(word)
+ );
+ const isStandaloneTai = /\b(tai)\b/.test(lowerValue);
+ const isStandaloneBol = /\b(bol)\b/.test(lowerValue);
+
+ return !hasForbiddenWord && !isStandaloneTai && !isStandaloneBol;
+ },
+ { message: 'Nama mengandung kata yang tidak diperbolehkan' }
),
email: z
.string()
.min(1, { message: 'Email harus diisi' })
- .email({ message: 'Email harus menggunakan format example@mail.com' })
- .refine(
- (value) =>
- !forbiddenWords.some((word) => value.toLowerCase().includes(word)),
- {
- message: 'Nama mengandung kata yang tidak diperbolehkan',
- }
- ),
+ .email({ message: 'Email harus menggunakan format example@mail.com' }),
password: z.string().min(6, { message: 'Password minimal 6 karakter' }),
phone: z
.string()
@@ -52,61 +84,16 @@ export const registerSchema = z
message: 'Format nomor telepon tidak valid, contoh: 081234567890',
}),
type_acc: z.string().optional(),
- nama_wajib_pajak: z
- .string()
- .refine(
- (value) =>
- !forbiddenWords.some((word) => value.toLowerCase().includes(word)),
- {
- message: 'Nama mengandung kata yang tidak diperbolehkan',
- }
- )
- .optional(),
- alamat_bisnis: z
- .string()
- .refine(
- (value) =>
- !forbiddenWords.some((word) => value.toLowerCase().includes(word)),
- {
- message: 'Nama mengandung kata yang tidak diperbolehkan',
- }
- )
- .optional(),
- alamat_wajib_pajak: z
- .string()
- .refine(
- (value) =>
- !forbiddenWords.some((word) => value.toLowerCase().includes(word)),
- {
- message: 'Nama mengandung kata yang tidak diperbolehkan',
- }
- )
- .optional(),
+ nama_wajib_pajak: z.string().optional(),
+ alamat_bisnis: z.string().optional(),
+ alamat_wajib_pajak: z.string().optional(),
is_pkp: z.string(),
is_terdaftar: z.string(),
sppkp_document: z.string().optional(),
npwp_document: z.string().optional(),
industry_id: z.string().optional(),
- email_partner: z
- .string()
- .refine(
- (value) =>
- !forbiddenWords.some((word) => value.toLowerCase().includes(word)),
- {
- message: 'Nama mengandung kata yang tidak diperbolehkan',
- }
- )
- .optional(),
- business_name: z
- .string()
- .refine(
- (value) =>
- !forbiddenWords.some((word) => value.toLowerCase().includes(word)),
- {
- message: 'Nama mengandung kata yang tidak diperbolehkan',
- }
- )
- .optional(),
+ email_partner: z.string().optional(),
+ business_name: z.string().optional(),
company_type_id: z.string().optional(),
isChekBox: z.string().optional(),
npwp: z