- -
-
-
- {#if user.role === "admin"} - - {:else if user.role === "fuel_manager"} - - {:else if user.role === "goods_manager"} - - {/if} -
-
- -
- -
-
- - -
- + {#if user.role === "admin" && !showVehicles && !showUnits && !showPersonnel && !showGoodsManagers} diff --git a/src/server.js b/src/server.js index 77be8db..2ca3ec4 100644 --- a/src/server.js +++ b/src/server.js @@ -321,6 +321,7 @@ async function initializeDatabase() { ensureColumn('unit_id', 'unit_id INTEGER'); ensureColumn('unit_name', 'unit_name TEXT'); + ensureColumn('rank', 'rank TEXT'); } }); @@ -355,24 +356,24 @@ async function initializeDatabase() { setTimeout(async () => { // Örnek kullanıcıları ekle const users = [ - { username: 'admin', password: 'admin123', role: 'admin', full_name: 'Sistem Yöneticisi' }, - { username: 'fuel', password: 'fuel123', role: 'fuel_manager', full_name: 'Yakıt Sorumlusu' }, - { username: 'goods', password: 'goods123', role: 'goods_manager', full_name: 'Ali Veli', unit_id: 1, unit_name: '1. Motorlu Piyade Tugayı' }, - { username: 'ibrahim_kara', password: 'kara123', role: 'goods_manager', full_name: 'İbrahim Kara', unit_id: 2, unit_name: '2. Zırhlı Tabur' }, - { username: 'osmankocak', password: 'osman123', role: 'goods_manager', full_name: 'Osman Koçak', unit_id: 3, unit_name: '3. Komutanlık' } + { username: 'admin', password: 'admin123', role: 'admin', full_name: 'Sistem Yöneticisi', rank: 'Yönetici' }, + { username: 'fuel', password: 'fuel123', role: 'fuel_manager', full_name: 'Yakıt Sorumlusu', rank: 'Yüzbaşı' }, + { username: 'goods', password: 'goods123', role: 'goods_manager', full_name: 'Ali Veli', unit_id: 1, unit_name: '1. Motorlu Piyade Tugayı', rank: 'Binbaşı' }, + { username: 'ibrahim_kara', password: 'kara123', role: 'goods_manager', full_name: 'İbrahim Kara', unit_id: 2, unit_name: '2. Zırhlı Tabur', rank: 'Yüzbaşı' }, + { username: 'osmankocak', password: 'osman123', role: 'goods_manager', full_name: 'Osman Koçak', unit_id: 3, unit_name: '3. Komutanlık', rank: 'Üsteğmen' } ]; // Her kullanıcıyı kontrol et ve yoksa ekle for (const user of users) { const hashedPassword = await bcrypt.hash(user.password, 10); - db.get('SELECT id, unit_id, unit_name FROM users WHERE username = ?', [user.username], (err, row) => { + db.get('SELECT id, unit_id, unit_name, rank FROM users WHERE username = ?', [user.username], (err, row) => { if (!row) { - db.run('INSERT INTO users (username, password, role, full_name, unit_id, unit_name) VALUES (?, ?, ?, ?, ?, ?)', - [user.username, hashedPassword, user.role, user.full_name, user.unit_id || null, user.unit_name || null]); - } else if ((user.unit_id && !row.unit_id) || (user.unit_name && !row.unit_name)) { - db.run('UPDATE users SET unit_id = COALESCE(unit_id, ?), unit_name = COALESCE(unit_name, ?) WHERE username = ?', - [user.unit_id || null, user.unit_name || null, user.username]); + db.run('INSERT INTO users (username, password, role, full_name, unit_id, unit_name, rank) VALUES (?, ?, ?, ?, ?, ?, ?)', + [user.username, hashedPassword, user.role, user.full_name, user.unit_id || null, user.unit_name || null, user.rank || null]); + } else if ((user.unit_id && !row.unit_id) || (user.unit_name && !row.unit_name) || (user.rank && !row.rank)) { + db.run('UPDATE users SET unit_id = COALESCE(unit_id, ?), unit_name = COALESCE(unit_name, ?), rank = COALESCE(rank, ?) WHERE username = ?', + [user.unit_id || null, user.unit_name || null, user.rank || null, user.username]); } }); } @@ -413,6 +414,7 @@ app.post('/api/login', async (req, res) => { username: user.username, role: user.role, full_name: user.full_name, + rank: user.rank || null, unit_id: user.unit_id ? parseInt(user.unit_id) : null, unit_name: user.unit_name || null }; @@ -427,9 +429,10 @@ app.post('/api/login', async (req, res) => { sessionUser.unit_id = goodsManager.unit_id; sessionUser.unit_name = goodsManager.unit_name; sessionUser.rank = goodsManager.rank; - db.run('UPDATE users SET unit_id = ?, unit_name = ? WHERE id = ?', [ + db.run('UPDATE users SET unit_id = ?, unit_name = ?, rank = ? WHERE id = ?', [ goodsManager.unit_id, goodsManager.unit_name, + goodsManager.rank, user.id ]); } @@ -579,14 +582,15 @@ app.post('/api/units', async (req, res) => { // Mal sorumlusu kullanıcı olarak ekle await new Promise((resolve, reject) => { db.run( - 'INSERT INTO users (username, password, role, full_name, unit_id, unit_name) VALUES (?, ?, ?, ?, ?, ?)', + 'INSERT INTO users (username, password, role, full_name, unit_id, unit_name, rank) VALUES (?, ?, ?, ?, ?, ?, ?)', [ username.trim(), hashedPassword, 'goods_manager', full_name.trim(), newUnit.id, - newUnit.name + newUnit.name, + rank.trim() ], (err) => { if (err) reject(err); @@ -683,7 +687,7 @@ app.put('/api/units', async (req, res) => { await new Promise((resolve, reject) => { db.run( `UPDATE users - SET username = ?, password = ?, full_name = ?, unit_id = ?, unit_name = ? + SET username = ?, password = ?, full_name = ?, unit_id = ?, unit_name = ?, rank = ? WHERE username = ?`, [ updatedCommander.username, @@ -691,6 +695,7 @@ app.put('/api/units', async (req, res) => { updatedCommander.full_name, units[unitIndex].id, units[unitIndex].name, + updatedCommander.rank, previousCommanderUsername ], function (err) {