update
This commit is contained in:
@@ -2,7 +2,7 @@ import { LockIcon } from 'lucide-react'
|
||||
import type { Route } from './+types'
|
||||
|
||||
export function meta({}: Route.MetaArgs) {
|
||||
return [{ title: 'Acesso negado' }]
|
||||
return [{ title: 'Acesso negado · EDUSEG®' }]
|
||||
}
|
||||
|
||||
export default function Deny({}: Route.ComponentProps) {
|
||||
|
||||
@@ -21,13 +21,14 @@ import { z } from 'zod'
|
||||
const schema = z.object({
|
||||
username: z
|
||||
.string()
|
||||
.trim()
|
||||
.nonempty('Digite seu Email ou CPF')
|
||||
.refine((val) => {
|
||||
const onlyDigits = val.replace(/\D/g, '')
|
||||
|
||||
return onlyDigits.length === 11
|
||||
? isValidCPF(val)
|
||||
: z.string().email().safeParse(val).success
|
||||
: z.email().safeParse(val).success
|
||||
}, 'Deve ser um Email ou CPF válido')
|
||||
})
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import { zodResolver } from '@hookform/resolvers/zod'
|
||||
import { Loader2Icon } from 'lucide-react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { useForm } from 'react-hook-form'
|
||||
import { Link, redirect, useFetcher } from 'react-router'
|
||||
import { Link, useFetcher } from 'react-router'
|
||||
import { z } from 'zod'
|
||||
|
||||
import logo from '@/components/logo.svg'
|
||||
@@ -26,15 +26,19 @@ import * as httpStatus from '@/lib/http-status'
|
||||
const schema = z.object({
|
||||
username: z
|
||||
.string()
|
||||
.trim()
|
||||
.nonempty('Digite seu Email ou CPF')
|
||||
.refine((val) => {
|
||||
const onlyDigits = val.replace(/\D/g, '')
|
||||
|
||||
return onlyDigits.length === 11
|
||||
? isValidCPF(val)
|
||||
: z.string().email().safeParse(val).success
|
||||
: z.email().safeParse(val).success
|
||||
}, 'Deve ser um Email ou CPF válido'),
|
||||
password: z.string().nonempty('Digite sua senha')
|
||||
password: z
|
||||
.string()
|
||||
.nonempty('Digite sua senha')
|
||||
.min(6, 'Deve ter no mínimo 6 caracteres')
|
||||
})
|
||||
|
||||
type Schema = z.infer<typeof schema>
|
||||
@@ -43,13 +47,6 @@ export function meta({}: Route.MetaArgs) {
|
||||
return [{ title: 'EDUSEG®' }]
|
||||
}
|
||||
|
||||
export async function loader({ request }: Route.ActionArgs) {
|
||||
const url = new URL(request.url)
|
||||
if (!url.searchParams.has('client_id')) {
|
||||
return redirect('//scorm.eduseg.workers.dev/')
|
||||
}
|
||||
}
|
||||
|
||||
export async function action({ request, context }: Route.ActionArgs) {
|
||||
const issuerUrl = new URL('/session', context.cloudflare.env.ISSUER_URL)
|
||||
const formData = Object.fromEntries(await request.formData())
|
||||
@@ -105,12 +102,13 @@ export default function Index({}: Route.ComponentProps) {
|
||||
switch (message) {
|
||||
case 'User not found':
|
||||
return setError('username', {
|
||||
message: 'Usuário não encontrado',
|
||||
message:
|
||||
'Conta não encontrada. Certifique-se de que está usando o Email ou CPF correto.',
|
||||
type: 'manual'
|
||||
})
|
||||
case 'Invalid credentials':
|
||||
return setError('password', {
|
||||
message: 'A senha está incorreta',
|
||||
message: 'A senha está incorreta.',
|
||||
type: 'manual'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -22,9 +22,12 @@ import { useForm } from 'react-hook-form'
|
||||
import { z } from 'zod'
|
||||
|
||||
const schema = z.object({
|
||||
name: z.string().nonempty('Digite seu nome'),
|
||||
name: z.string().trim().nonempty('Digite seu nome'),
|
||||
email: z.email('Digite seu email'),
|
||||
password: z.string().nonempty('Digite sua senha'),
|
||||
password: z
|
||||
.string()
|
||||
.nonempty('Digite sua senha')
|
||||
.min(6, 'Deve ter no mínimo 6 caracteres'),
|
||||
cpf: z
|
||||
.string()
|
||||
.nonempty('Digite seu CPF')
|
||||
|
||||
Reference in New Issue
Block a user