Commit graph

353 commits

Author SHA1 Message Date
Esdras Renan
5bf77844c3 Move machine view action into companies dropdown 2025-10-18 19:59:21 -03:00
Esdras Renan
1c7309a2b6 Add confirmation dialog for client deletion and align machine badges 2025-10-18 19:52:05 -03:00
Esdras Renan
2400f34c80 Fix role selection defaults and phone input typing 2025-10-18 19:28:37 -03:00
Esdras Renan
a69d37a672 feat: refine admin access management 2025-10-18 01:32:19 -03:00
Esdras Renan
dded6d1927 Reorganiza gestão de usuários e remove dados mock 2025-10-18 01:15:15 -03:00
Esdras Renan
630110bf3a Atualiza portal e admin com bloqueio de máquinas desativadas 2025-10-18 00:02:15 -03:00
Esdras Renan
e5085962e9 Impede acesso ao portal para máquinas desativadas 2025-10-18 00:01:35 -03:00
Esdras Renan
c00b4300c1 feat: refresh Raven branding 2025-10-17 15:29:08 -03:00
Esdras Renan
d80712098b fix: gracefully degrade shader background when WebGL is unavailable 2025-10-16 23:37:36 -03:00
Esdras Renan
604216ddec feat: improve company forms, phone input, and auth redirects 2025-10-16 23:35:20 -03:00
Esdras Renan
f1a0b9dae5 feat: enrich companies with phone input and machine overview 2025-10-16 23:19:12 -03:00
Esdras Renan
4c228e908a feat: enhance machine insights and solidify admin workflows 2025-10-16 22:56:57 -03:00
Esdras Renan
ac986410a3 feat: disable automatic machine alert tickets 2025-10-16 22:31:05 -03:00
Esdras Renan
7951bc25a3 feat: allow company deletion by detaching dependents 2025-10-16 22:28:12 -03:00
Esdras Renan
91d0608838 fix: align next config with next 15.5.5 2025-10-16 21:39:43 -03:00
Esdras Renan
0cf1892256 chore: voltar para Next 15.5.5 e React 18 2025-10-16 21:12:00 -03:00
Esdras Renan
508ffe5022 chore: trust host header e validação centralizada de domínios 2025-10-16 20:55:48 -03:00
Esdras Renan
1ce402cdd7 ajustes nos teste, adições e remoções 2025-10-16 19:29:52 -03:00
Esdras Renan
68ace0a858 refactor: quality workflow, docs, tests 2025-10-16 19:14:46 -03:00
Esdras Renan
a9caf36b01 admin/companies: evitar 500 ao excluir — pré-checar vínculos (users/tickets) e retornar 409 com detalhes 2025-10-16 17:40:39 -03:00
Esdras Renan
f60a48e7b3 admin/companies: melhorar criação/edição\n\n- Aceita isAvulso e contractedHoursPerMonth no POST\n- Retorna 409 para duplicidade (slug/provisioningCode)\n- Retorna 409 para duplicidade no PATCH 2025-10-16 17:29:08 -03:00
Esdras Renan
91d53ba10a api: /api/machines/session em runtime nodejs para leitura estável de cookies 2025-10-16 16:10:23 -03:00
Esdras Renan
05ffdf7876 auth: evitar loop login<->dashboard para sessão de máquina\n\n- Login direciona máquina para portal (ou dashboard se manager)\n- Middleware redireciona máquina colaborador do dashboard para /portal/tickets\n- Middleware evita mostrar login quando já autenticado como máquina 2025-10-16 16:09:49 -03:00
Esdras Renan
4724255e79 feat: refina portal/desktop para play responsável, anexos e perfil 2025-10-16 03:10:44 -03:00
Esdras Renan
c90e99820f feat: aprimora upload/anexos e regras de atendimento no portal 2025-10-16 03:01:27 -03:00
Esdras Renan
70fdd8deb8 fix: ajustes de provisioning e layout nas empresas 2025-10-15 23:49:19 -03:00
Esdras Renan
ce6c8fdb3a fix: layout de empresas e ajustes no fluxo de provisioning 2025-10-15 23:44:00 -03:00
Esdras Renan
444b910429 fix: refina layout das colunas de empresas e corrige leitura de cookies e provisioning 2025-10-15 23:39:46 -03:00
Esdras Renan
7668c478f1 fix: refina layout das colunas de empresas e corrige leitura de cookies e provisioning 2025-10-15 23:34:36 -03:00
Esdras Renan
5211ea45df fix: refina layout das colunas de empresas e corrige leitura de cookies no middleware 2025-10-15 23:30:16 -03:00
Esdras Renan
43230e0310 Refine admin companies layout and relax provisioning schema 2025-10-15 23:19:24 -03:00
Esdras Renan
2cba553efa Implement company provisioning codes and session tweaks 2025-10-15 20:45:25 -03:00
Esdras Renan
328415d9e9 Windows inventory: add osInfo fallback from sysinfo; portal detail spacing + subcategory 2025-10-14 23:15:11 -03:00
Esdras Renan
2a4bc486cf Fix JSX block in detail (RTE + Dropzone), hide priority in detail for customers, use isCustomer and hide queue 2025-10-14 22:42:37 -03:00
Esdras Renan
3f49e349f7 Hide Sign out when running as machine (even if session is null) 2025-10-14 22:30:22 -03:00
Esdras Renan
6df49ba956 Portal polishing: hide queue/priority for customers; use RTE + attachments in detail; filter list to requester only for collaborators 2025-10-14 22:29:38 -03:00
Esdras Renan
8292abee88 Auth client: fetch machine context even if session is null; derive role/id from machineContext 2025-10-14 21:57:21 -03:00
Esdras Renan
da339a767b Fix type: use third param type for cookies.set options 2025-10-14 21:37:09 -03:00
Esdras Renan
b703561a7e Set session cookies via NextResponse.cookies.set for reliability (handshake + sessions) 2025-10-14 21:33:11 -03:00
Esdras Renan
9eb3a63e90 CORS: enable credentials for allowed origins (fix cookies set from WebView) 2025-10-14 20:57:31 -03:00
Esdras Renan
1e850ed11e Add /portal/debug page and navigate there after session; shows auth + machine context 2025-10-14 20:47:46 -03:00
Esdras Renan
6754af769b Fix session cookie propagation; desktop creates session via POST before opening portal 2025-10-14 20:33:40 -03:00
Esdras Renan
69955ae80c Surface machine context when collaborator missing 2025-10-14 19:37:19 -03:00
Esdras Renan
a1bd3bb7b9 Expose machine context debug info in console 2025-10-14 19:01:21 -03:00
Esdras Renan
0fb95147f4 Log machine context errors in portal 2025-10-14 18:49:58 -03:00
Esdras Renan
682d39db70 desktop/machines: liberar handshake e ocultar 'Sair' em sessão de máquina
- middleware: torna /machines/handshake público para permitir criação de sessão de máquina sem login prévio
- nav-user: oculta botão 'Encerrar sessão' quando a sessão é de máquina (role === 'machine')

Efeito: no app desktop (Tauri), o handshake passa a autenticar corretamente, o cabeçalho exibe nome/e-mail do colaborador/gestor e o portal permite abrir chamados.

Nota: em navegação web comum, 'Sair' permanece visível para usuários humanos.
2025-10-14 11:22:01 -03:00
Esdras Renan
9ac584dcb6 auth: guarda server-side em rotas protegidas
- /tickets/[id], /tickets/resolved, /views, /play, /reports/*, /settings agora exigem sessão via requireAuthenticatedSession()
- Complementa o middleware e evita casos não-redirecionados em DEV/SSG
- Mantém /settings/templates com requireStaffSession() como já estava.
2025-10-14 10:59:09 -03:00
Esdras Renan
79f21e738c tickets: exigir sessão no servidor em /tickets
- Chama requireAuthenticatedSession() no page.tsx para redirecionar anônimos a /login
- Garante comportamento idêntico ao /dashboard quando acessado diretamente.
2025-10-14 10:46:57 -03:00
Esdras Renan
da7b866aeb app: desabilitar SSG global (force-dynamic)
- Define dynamic="force-dynamic" no layout global para garantir que o middleware rode para todas as páginas
- Evita cache s-maxage de páginas protegidas (ex.: /tickets) que impedia redirect em anônimo.
2025-10-14 10:40:25 -03:00
Esdras Renan
7e480fe864 dashboard: exigir sessão no servidor
- Chama requireAuthenticatedSession() em /dashboard para redirecionar anônimos a /login
- Evita página vazia quando aberto diretamente em janela anônima.
2025-10-14 10:32:29 -03:00