feat: enhance employee and symbol management with new features, improved UI components, and backend schema updates
This commit is contained in:
76
packages/backend/convex/inicializarPermissoes.ts
Normal file
76
packages/backend/convex/inicializarPermissoes.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* 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" };
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user