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:
@@ -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) => ({
|
||||
|
||||
Reference in New Issue
Block a user