Feat cibersecurity #27

Merged
deyvisonwanderley merged 14 commits from feat-cibersecurity into master 2025-11-17 14:49:34 +00:00
41 changed files with 5736 additions and 3896 deletions
Showing only changes of commit 24b8eb6a14 - Show all commits

View File

@@ -7,6 +7,7 @@
import TicketTimeline from "$lib/components/chamados/TicketTimeline.svelte"; import TicketTimeline from "$lib/components/chamados/TicketTimeline.svelte";
import { chamadosStore } from "$lib/stores/chamados"; import { chamadosStore } from "$lib/stores/chamados";
import { resolve } from "$app/paths"; import { resolve } from "$app/paths";
import { useConvexWithAuth } from "$lib/hooks/useConvexWithAuth";
type Ticket = Doc<"tickets">; type Ticket = Doc<"tickets">;
type SlaConfig = Doc<"slaConfigs">; type SlaConfig = Doc<"slaConfigs">;
@@ -45,6 +46,11 @@
carregarSlaConfigs(); carregarSlaConfigs();
}); });
$effect(() => {
// Garante que o cliente Convex use o token do usuário logado
useConvexWithAuth();
});
async function carregarSlaConfigs() { async function carregarSlaConfigs() {
try { try {
carregandoSla = true; carregandoSla = true;

View File

@@ -1,6 +1,7 @@
<script lang="ts"> <script lang="ts">
import { useConvexClient, useQuery } from 'convex-svelte'; import { useConvexClient, useQuery } from 'convex-svelte';
import { api } from '@sgse-app/backend/convex/_generated/api'; import { api } from '@sgse-app/backend/convex/_generated/api';
import { resolve } from '$app/paths';
import AprovarFerias from '$lib/components/AprovarFerias.svelte'; import AprovarFerias from '$lib/components/AprovarFerias.svelte';
import WizardSolicitacaoFerias from '$lib/components/ferias/WizardSolicitacaoFerias.svelte'; import WizardSolicitacaoFerias from '$lib/components/ferias/WizardSolicitacaoFerias.svelte';
import WizardSolicitacaoAusencia from '$lib/components/ausencias/WizardSolicitacaoAusencia.svelte'; import WizardSolicitacaoAusencia from '$lib/components/ausencias/WizardSolicitacaoAusencia.svelte';
@@ -603,6 +604,29 @@ const meusTimesGestor = $derived(timesSubordinados);
Minhas Ausências Minhas Ausências
</button> </button>
<a
role="tab"
href={resolve('/perfil/chamados')}
class="tab tab-lg font-semibold transition-all duration-300 hover:bg-base-100"
aria-label="Meus Chamados"
>
<svg
xmlns="http://www.w3.org/2000/svg"
class="mr-2 h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M3 7h18M3 12h12M3 17h18"
/>
</svg>
Meus Chamados
</a>
{#if ehGestor} {#if ehGestor}
<button <button
type="button" type="button"

View File

@@ -14,6 +14,7 @@ import { chamadosStore } from "$lib/stores/chamados";
prazoRestante, prazoRestante,
} from "$lib/utils/chamados"; } from "$lib/utils/chamados";
import { resolve } from "$app/paths"; import { resolve } from "$app/paths";
import { useConvexWithAuth } from "$lib/hooks/useConvexWithAuth";
type Ticket = Doc<"tickets">; type Ticket = Doc<"tickets">;
@@ -45,6 +46,10 @@ const ticketsFiltrados = $derived(
onMount(() => { onMount(() => {
carregarChamados(); carregarChamados();
}); });
$effect(() => {
// Configura o token de autenticação no cliente Convex
useConvexWithAuth();
});
async function carregarChamados() { async function carregarChamados() {
try { try {

View File

@@ -10,6 +10,7 @@
getStatusLabel, getStatusLabel,
prazoRestante, prazoRestante,
} from "$lib/utils/chamados"; } from "$lib/utils/chamados";
import { useConvexWithAuth } from "$lib/hooks/useConvexWithAuth";
type Ticket = Doc<"tickets">; type Ticket = Doc<"tickets">;
type Usuario = Doc<"usuarios">; type Usuario = Doc<"usuarios">;
@@ -60,6 +61,8 @@
}); });
onMount(() => { onMount(() => {
// Configura token no cliente Convex
useConvexWithAuth();
if (slaConfigsQuery?.data && slaConfigsQuery.data.length > 0) { if (slaConfigsQuery?.data && slaConfigsQuery.data.length > 0) {
selecionarSla(slaConfigsQuery.data[0]); selecionarSla(slaConfigsQuery.data[0]);
} }