40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
const fs = require('fs');
|
|
const navContent = fs.readFileSync('stores/navItems1.ts', 'utf-8');
|
|
const keys = [...navContent.matchAll(/menuKey:\s*['"]([^'"]+)['"]/g)].map(m => m[1]);
|
|
|
|
console.log('Extracted keys:', keys);
|
|
|
|
const data = JSON.parse(fs.readFileSync('data/mock/hakAkses.json', 'utf-8'));
|
|
|
|
const menus = keys.map(k => ({
|
|
menuKey: k,
|
|
name: k,
|
|
canAccess: true,
|
|
canView: true,
|
|
canAdd: true,
|
|
canEdit: true,
|
|
canDelete: true
|
|
}));
|
|
|
|
const usernameOverrides = ['[email protected]', 'akbar44', 'Akbar Attallah'];
|
|
|
|
for (const user of usernameOverrides) {
|
|
const existing = data.find(d => d.namaTipeUser === user || d.namaHakAkses === user);
|
|
if (existing) {
|
|
existing.hakAksesMenu = menus;
|
|
existing.namaTipeUser = user;
|
|
} else {
|
|
data.push({
|
|
id: require('crypto').randomUUID(),
|
|
namaHakAkses: user,
|
|
namaTipeUser: user,
|
|
status: 'aktif',
|
|
isGroupBased: false,
|
|
hakAksesMenu: menus
|
|
});
|
|
}
|
|
}
|
|
|
|
fs.writeFileSync('data/mock/hakAkses.json', JSON.stringify(data, null, 4));
|
|
console.log('Granted full access to ' + usernameOverrides.join(', '));
|