77 lines
2.2 KiB
TypeScript
77 lines
2.2 KiB
TypeScript
/**
|
|
* Script para inicializar permissões de menu no sistema
|
|
*/
|
|
import { mutation } from "./_generated/server";
|
|
|
|
export const inicializarTodasPermissoes = mutation({
|
|
args: {},
|
|
handler: async (ctx) => {
|
|
console.log("🔐 Inicializando permissões de menu...");
|
|
|
|
// Buscar roles
|
|
const roles = await ctx.db.query("roles").collect();
|
|
|
|
const admin = roles.find((r) => r.nome === "admin");
|
|
const ti = roles.find((r) => r.nome === "ti");
|
|
const usuarioAvancado = roles.find((r) => r.nome === "usuario_avancado");
|
|
const usuario = roles.find((r) => r.nome === "usuario");
|
|
|
|
if (!admin || !ti || !usuarioAvancado || !usuario) {
|
|
throw new Error("Roles não encontradas");
|
|
}
|
|
|
|
// Menus do sistema
|
|
const menus = [
|
|
"/recursos-humanos",
|
|
"/recursos-humanos/funcionarios",
|
|
"/recursos-humanos/simbolos",
|
|
"/financeiro",
|
|
"/controladoria",
|
|
"/licitacoes",
|
|
"/compras",
|
|
"/juridico",
|
|
"/comunicacao",
|
|
"/programas-esportivos",
|
|
"/secretaria-executiva",
|
|
"/gestao-pessoas",
|
|
"/ti",
|
|
];
|
|
|
|
let contador = 0;
|
|
|
|
// Admin e TI: acesso total é automático no código, não precisa criar permissões
|
|
// Eles são filtrados no verificarAcesso (nivel <= 1)
|
|
|
|
// Usuario Avançado: SEM acesso por padrão (TI define depois)
|
|
for (const menu of menus) {
|
|
await ctx.db.insert("menuPermissoes", {
|
|
roleId: usuarioAvancado._id,
|
|
menuPath: menu,
|
|
podeAcessar: false,
|
|
podeConsultar: false,
|
|
podeGravar: false,
|
|
});
|
|
contador++;
|
|
}
|
|
console.log(` ✅ ${contador} permissões criadas para usuario_avancado`);
|
|
|
|
// Usuario: SEM acesso por padrão (TI define depois)
|
|
contador = 0;
|
|
for (const menu of menus) {
|
|
await ctx.db.insert("menuPermissoes", {
|
|
roleId: usuario._id,
|
|
menuPath: menu,
|
|
podeAcessar: false,
|
|
podeConsultar: false,
|
|
podeGravar: false,
|
|
});
|
|
contador++;
|
|
}
|
|
console.log(` ✅ ${contador} permissões criadas para usuario`);
|
|
|
|
console.log("✅ Permissões inicializadas com sucesso!");
|
|
return { success: true, message: "Permissões inicializadas" };
|
|
},
|
|
});
|
|
|