Änderung der pausen regelung
This commit is contained in:
@@ -8,7 +8,7 @@ const { requireAdmin } = require('../middleware/auth');
|
||||
function registerAdminRoutes(app) {
|
||||
// Admin-Bereich
|
||||
app.get('/admin', requireAdmin, (req, res) => {
|
||||
db.all('SELECT id, username, firstname, lastname, role, personalnummer, wochenstunden, urlaubstage, arbeitstage, created_at FROM users ORDER BY created_at DESC',
|
||||
db.all('SELECT id, username, firstname, lastname, role, personalnummer, wochenstunden, urlaubstage, arbeitstage, default_break_minutes, created_at FROM users ORDER BY created_at DESC',
|
||||
(err, users) => {
|
||||
// LDAP-Konfiguration, Sync-Log und Optionen abrufen
|
||||
db.get('SELECT * FROM ldap_config WHERE id = 1', (err, ldapConfig) => {
|
||||
@@ -48,7 +48,7 @@ function registerAdminRoutes(app) {
|
||||
|
||||
// Benutzer erstellen
|
||||
app.post('/admin/users', requireAdmin, (req, res) => {
|
||||
const { username, password, firstname, lastname, roles, personalnummer, wochenstunden, urlaubstage, arbeitstage } = req.body;
|
||||
const { username, password, firstname, lastname, roles, personalnummer, wochenstunden, urlaubstage, arbeitstage, default_break_minutes } = req.body;
|
||||
const hashedPassword = bcrypt.hashSync(password, 10);
|
||||
|
||||
// Normalisiere die optionalen Felder
|
||||
@@ -56,6 +56,8 @@ function registerAdminRoutes(app) {
|
||||
const normalizedWochenstunden = wochenstunden && wochenstunden !== '' ? parseFloat(wochenstunden) : null;
|
||||
const normalizedUrlaubstage = urlaubstage && urlaubstage !== '' ? parseFloat(urlaubstage) : null;
|
||||
const normalizedArbeitstage = arbeitstage && arbeitstage !== '' ? parseInt(arbeitstage) : 5;
|
||||
const parsedBreak = default_break_minutes !== undefined && default_break_minutes !== '' ? parseInt(default_break_minutes, 10) : 30;
|
||||
const normalizedDefaultBreak = (!isNaN(parsedBreak) && parsedBreak >= 0) ? parsedBreak : 30;
|
||||
|
||||
// Rollen verarbeiten: Erwarte Array, konvertiere zu JSON-String
|
||||
let rolesArray = [];
|
||||
@@ -73,8 +75,8 @@ function registerAdminRoutes(app) {
|
||||
|
||||
const rolesJson = JSON.stringify(rolesArray);
|
||||
|
||||
db.run('INSERT INTO users (username, password, firstname, lastname, role, personalnummer, wochenstunden, urlaubstage, arbeitstage) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
|
||||
[username, hashedPassword, firstname, lastname, rolesJson, normalizedPersonalnummer, normalizedWochenstunden, normalizedUrlaubstage, normalizedArbeitstage],
|
||||
db.run('INSERT INTO users (username, password, firstname, lastname, role, personalnummer, wochenstunden, urlaubstage, arbeitstage, default_break_minutes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
|
||||
[username, hashedPassword, firstname, lastname, rolesJson, normalizedPersonalnummer, normalizedWochenstunden, normalizedUrlaubstage, normalizedArbeitstage, normalizedDefaultBreak],
|
||||
(err) => {
|
||||
if (err) {
|
||||
return res.status(400).json({ error: 'Benutzername existiert bereits' });
|
||||
@@ -100,10 +102,13 @@ function registerAdminRoutes(app) {
|
||||
});
|
||||
});
|
||||
|
||||
// Benutzer aktualisieren (Personalnummer, Wochenstunden, Urlaubstage, Rollen)
|
||||
// Benutzer aktualisieren (Personalnummer, Wochenstunden, Urlaubstage, Rollen, Standard-Pause)
|
||||
app.put('/admin/users/:id', requireAdmin, (req, res) => {
|
||||
const userId = req.params.id;
|
||||
const { personalnummer, wochenstunden, urlaubstage, arbeitstage, roles } = req.body;
|
||||
const { personalnummer, wochenstunden, urlaubstage, arbeitstage, roles, default_break_minutes } = req.body;
|
||||
|
||||
const parsedBreak = default_break_minutes !== undefined && default_break_minutes !== '' ? parseInt(default_break_minutes, 10) : 30;
|
||||
const normalizedDefaultBreak = (!isNaN(parsedBreak) && parsedBreak >= 0) ? parsedBreak : 30;
|
||||
|
||||
// Rollen verarbeiten falls vorhanden
|
||||
let rolesJson = null;
|
||||
@@ -122,12 +127,13 @@ function registerAdminRoutes(app) {
|
||||
// SQL-Query dynamisch zusammenstellen
|
||||
if (rolesJson !== null) {
|
||||
// Aktualisiere auch Rollen
|
||||
db.run('UPDATE users SET personalnummer = ?, wochenstunden = ?, urlaubstage = ?, arbeitstage = ?, role = ? WHERE id = ?',
|
||||
db.run('UPDATE users SET personalnummer = ?, wochenstunden = ?, urlaubstage = ?, arbeitstage = ?, default_break_minutes = ?, role = ? WHERE id = ?',
|
||||
[
|
||||
personalnummer || null,
|
||||
wochenstunden ? parseFloat(wochenstunden) : null,
|
||||
urlaubstage ? parseFloat(urlaubstage) : null,
|
||||
arbeitstage ? parseInt(arbeitstage) : 5,
|
||||
normalizedDefaultBreak,
|
||||
rolesJson,
|
||||
userId
|
||||
],
|
||||
@@ -139,12 +145,13 @@ function registerAdminRoutes(app) {
|
||||
});
|
||||
} else {
|
||||
// Nur andere Felder aktualisieren
|
||||
db.run('UPDATE users SET personalnummer = ?, wochenstunden = ?, urlaubstage = ?, arbeitstage = ? WHERE id = ?',
|
||||
db.run('UPDATE users SET personalnummer = ?, wochenstunden = ?, urlaubstage = ?, arbeitstage = ?, default_break_minutes = ? WHERE id = ?',
|
||||
[
|
||||
personalnummer || null,
|
||||
wochenstunden ? parseFloat(wochenstunden) : null,
|
||||
urlaubstage ? parseFloat(urlaubstage) : null,
|
||||
arbeitstage ? parseInt(arbeitstage) : 5,
|
||||
normalizedDefaultBreak,
|
||||
userId
|
||||
],
|
||||
(err) => {
|
||||
|
||||
@@ -57,14 +57,15 @@ function registerUserRoutes(app) {
|
||||
app.get('/api/user/data', requireAuth, (req, res) => {
|
||||
const userId = req.session.userId;
|
||||
|
||||
db.get('SELECT wochenstunden, arbeitstage FROM users WHERE id = ?', [userId], (err, user) => {
|
||||
db.get('SELECT wochenstunden, arbeitstage, default_break_minutes FROM users WHERE id = ?', [userId], (err, user) => {
|
||||
if (err) {
|
||||
return res.status(500).json({ error: 'Fehler beim Abrufen der User-Daten' });
|
||||
}
|
||||
|
||||
res.json({
|
||||
wochenstunden: user?.wochenstunden || 0,
|
||||
arbeitstage: user?.arbeitstage || 5
|
||||
arbeitstage: user?.arbeitstage || 5,
|
||||
default_break_minutes: user?.default_break_minutes ?? 30
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user