feat: add user authentication and validation checks in query handlers

- Implemented user authentication checks in the `getAll` and `listarRegistrosPeriodo` query handlers, returning empty arrays for unauthenticated users.
- Enhanced date validation in `listarRegistrosPeriodo` to ensure correct date formats before processing.
- Updated the `obterEstatisticas` query to return zeroed statistics for unauthenticated users, improving data security and user experience.
This commit is contained in:
2025-11-22 22:33:44 -03:00
parent aeaa3c903f
commit 5b41d35b6f
2 changed files with 50 additions and 13 deletions

View File

@@ -47,11 +47,24 @@ const regimeTrabalhoValidator = v.optional(
export const getAll = query({
args: {},
handler: async (ctx) => {
// Verificar autenticação primeiro
const usuario = await getCurrentUserFunction(ctx);
if (!usuario) {
// Retornar array vazio quando não autenticado
return [];
}
// Autorização: listar funcionários
await ctx.runQuery(internal.permissoesAcoes.assertPermissaoAcaoAtual, {
recurso: 'funcionarios',
acao: 'listar'
});
try {
await ctx.runQuery(internal.permissoesAcoes.assertPermissaoAcaoAtual, {
recurso: 'funcionarios',
acao: 'listar'
});
} catch (error) {
// Se não tiver permissão, retornar array vazio
return [];
}
const funcionarios = await ctx.db.query('funcionarios').collect();
// Retornar apenas os campos necessários para listagem
return funcionarios.map((f) => ({