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