1
0

feat: seed demo users for each role in init.sql

Add 4 new demo users (Max Machtvoll/Manager, Bernd Benutzer/User,
Petra Pruefblick/Auditor, Hilfe Hilde/Support) so a fresh install
showcases all 5 roles with realistic data across both departments.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-22 22:27:35 +01:00
parent c429ff43cd
commit f8b5c8de65

View File

@@ -936,6 +936,362 @@ WHERE u.email = 'demo@user.com'
SELECT 1 FROM user_roles ur WHERE ur.user_id = u.id AND ur.role_id = r.id SELECT 1 FROM user_roles ur WHERE ur.user_id = u.id AND ur.role_id = r.id
); );
-- ─── Demo user: Max Machtvoll (Manager) ───
INSERT INTO `users` (
`uuid`,
`first_name`,
`last_name`,
`display_name`,
`email`,
`profile_description`,
`job_title`,
`phone`,
`mobile`,
`short_dial`,
`address`,
`postal_code`,
`city`,
`country`,
`region`,
`hire_date`,
`email_verified_at`,
`password`,
`locale`,
`totp_secret`,
`theme`,
`primary_tenant_id`,
`created_by`,
`created`,
`active`,
`active_changed_at`,
`active_changed_by`
)
SELECT
UUID(),
'Max',
'Machtvoll',
'Max Machtvoll',
'max@user.com',
'Manager mit Weitblick und festem Griff am Steuer.',
'Abteilungsleiter',
'+49 30 9876543',
'+49 172 1111111',
'201',
'Chefetage 7',
'80331',
'Muenchen',
'Deutschland',
'Bayern',
'2023-06-01',
NOW(),
'$2y$12$KVCQvuy4Pl1aySBuzSpc7ehpZhAzYZkndDI9OaMi05E2P/Mhob5HO',
'de',
NULL,
'light',
(SELECT id FROM tenants WHERE description = 'MusterMandant' LIMIT 1),
NULL,
NOW(),
1,
NOW(),
NULL
WHERE NOT EXISTS (SELECT 1 FROM users WHERE email = 'max@user.com');
INSERT INTO `user_tenants` (`user_id`, `tenant_id`, `created`)
SELECT u.id, t.id, NOW()
FROM users u
JOIN tenants t ON t.description = 'MusterMandant'
WHERE u.email = 'max@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_tenants ut WHERE ut.user_id = u.id AND ut.tenant_id = t.id
);
INSERT INTO `user_departments` (`user_id`, `department_id`, `created`)
SELECT u.id, d.id, NOW()
FROM users u
JOIN departments d ON d.code = 'MUSTER'
JOIN tenants t ON t.id = d.tenant_id AND t.description = 'MusterMandant'
WHERE u.email = 'max@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_departments ud WHERE ud.user_id = u.id AND ud.department_id = d.id
);
INSERT INTO `user_roles` (`user_id`, `role_id`, `created`)
SELECT u.id, r.id, NOW()
FROM users u
JOIN roles r ON r.description = 'Manager'
WHERE u.email = 'max@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_roles ur WHERE ur.user_id = u.id AND ur.role_id = r.id
);
-- ─── Demo user: Bernd Benutzer (User) ───
INSERT INTO `users` (
`uuid`,
`first_name`,
`last_name`,
`display_name`,
`email`,
`profile_description`,
`job_title`,
`phone`,
`mobile`,
`short_dial`,
`address`,
`postal_code`,
`city`,
`country`,
`region`,
`hire_date`,
`email_verified_at`,
`password`,
`locale`,
`totp_secret`,
`theme`,
`primary_tenant_id`,
`created_by`,
`created`,
`active`,
`active_changed_at`,
`active_changed_by`
)
SELECT
UUID(),
'Bernd',
'Benutzer',
'Bernd Benutzer',
'bernd@user.com',
'Stinknormaler Benutzer. Macht seine Arbeit, trinkt seinen Kaffee.',
'Sachbearbeiter',
'+49 40 5551234',
'+49 173 2222222',
'302',
'Normalweg 42',
'20095',
'Hamburg',
'Deutschland',
'Hamburg',
'2024-03-10',
NOW(),
'$2y$12$KVCQvuy4Pl1aySBuzSpc7ehpZhAzYZkndDI9OaMi05E2P/Mhob5HO',
'de',
NULL,
'light',
(SELECT id FROM tenants WHERE description = 'MusterMandant' LIMIT 1),
NULL,
NOW(),
1,
NOW(),
NULL
WHERE NOT EXISTS (SELECT 1 FROM users WHERE email = 'bernd@user.com');
INSERT INTO `user_tenants` (`user_id`, `tenant_id`, `created`)
SELECT u.id, t.id, NOW()
FROM users u
JOIN tenants t ON t.description = 'MusterMandant'
WHERE u.email = 'bernd@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_tenants ut WHERE ut.user_id = u.id AND ut.tenant_id = t.id
);
INSERT INTO `user_departments` (`user_id`, `department_id`, `created`)
SELECT u.id, d.id, NOW()
FROM users u
JOIN departments d ON d.code = 'MUSTER2'
JOIN tenants t ON t.id = d.tenant_id AND t.description = 'MusterMandant'
WHERE u.email = 'bernd@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_departments ud WHERE ud.user_id = u.id AND ud.department_id = d.id
);
INSERT INTO `user_roles` (`user_id`, `role_id`, `created`)
SELECT u.id, r.id, NOW()
FROM users u
JOIN roles r ON r.description = 'User'
WHERE u.email = 'bernd@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_roles ur WHERE ur.user_id = u.id AND ur.role_id = r.id
);
-- ─── Demo user: Petra Pruefblick (Auditor) ───
INSERT INTO `users` (
`uuid`,
`first_name`,
`last_name`,
`display_name`,
`email`,
`profile_description`,
`job_title`,
`phone`,
`mobile`,
`short_dial`,
`address`,
`postal_code`,
`city`,
`country`,
`region`,
`hire_date`,
`email_verified_at`,
`password`,
`locale`,
`totp_secret`,
`theme`,
`primary_tenant_id`,
`created_by`,
`created`,
`active`,
`active_changed_at`,
`active_changed_by`
)
SELECT
UUID(),
'Petra',
'Pruefblick',
'Petra Pruefblick',
'petra@user.com',
'Sieht alles. Vergisst nichts. Ihr Rotstift ist legendaer.',
'Prueferin',
'+49 69 4449876',
'+49 174 3333333',
'403',
'Kontrollgasse 8',
'60311',
'Frankfurt am Main',
'Deutschland',
'Hessen',
'2023-11-20',
NOW(),
'$2y$12$KVCQvuy4Pl1aySBuzSpc7ehpZhAzYZkndDI9OaMi05E2P/Mhob5HO',
'de',
NULL,
'light',
(SELECT id FROM tenants WHERE description = 'MusterMandant' LIMIT 1),
NULL,
NOW(),
1,
NOW(),
NULL
WHERE NOT EXISTS (SELECT 1 FROM users WHERE email = 'petra@user.com');
INSERT INTO `user_tenants` (`user_id`, `tenant_id`, `created`)
SELECT u.id, t.id, NOW()
FROM users u
JOIN tenants t ON t.description = 'MusterMandant'
WHERE u.email = 'petra@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_tenants ut WHERE ut.user_id = u.id AND ut.tenant_id = t.id
);
INSERT INTO `user_departments` (`user_id`, `department_id`, `created`)
SELECT u.id, d.id, NOW()
FROM users u
JOIN departments d ON d.code = 'MUSTER'
JOIN tenants t ON t.id = d.tenant_id AND t.description = 'MusterMandant'
WHERE u.email = 'petra@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_departments ud WHERE ud.user_id = u.id AND ud.department_id = d.id
);
INSERT INTO `user_roles` (`user_id`, `role_id`, `created`)
SELECT u.id, r.id, NOW()
FROM users u
JOIN roles r ON r.description = 'Auditor'
WHERE u.email = 'petra@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_roles ur WHERE ur.user_id = u.id AND ur.role_id = r.id
);
-- ─── Demo user: Hilfe Hilde (Support) ───
INSERT INTO `users` (
`uuid`,
`first_name`,
`last_name`,
`display_name`,
`email`,
`profile_description`,
`job_title`,
`phone`,
`mobile`,
`short_dial`,
`address`,
`postal_code`,
`city`,
`country`,
`region`,
`hire_date`,
`email_verified_at`,
`password`,
`locale`,
`totp_secret`,
`theme`,
`primary_tenant_id`,
`created_by`,
`created`,
`active`,
`active_changed_at`,
`active_changed_by`
)
SELECT
UUID(),
'Hilde',
'Hilfe',
'Hilfe Hilde',
'hilde@user.com',
'Erste Hilfe fuer alle Notfaelle. Kein Ticket bleibt unbeantwortet.',
'Supportmitarbeiterin',
'+49 221 7773210',
'+49 175 4444444',
'504',
'Rettungsring 3',
'50667',
'Koeln',
'Deutschland',
'Nordrhein-Westfalen',
'2024-07-01',
NOW(),
'$2y$12$KVCQvuy4Pl1aySBuzSpc7ehpZhAzYZkndDI9OaMi05E2P/Mhob5HO',
'de',
NULL,
'light',
(SELECT id FROM tenants WHERE description = 'MusterMandant' LIMIT 1),
NULL,
NOW(),
1,
NOW(),
NULL
WHERE NOT EXISTS (SELECT 1 FROM users WHERE email = 'hilde@user.com');
INSERT INTO `user_tenants` (`user_id`, `tenant_id`, `created`)
SELECT u.id, t.id, NOW()
FROM users u
JOIN tenants t ON t.description = 'MusterMandant'
WHERE u.email = 'hilde@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_tenants ut WHERE ut.user_id = u.id AND ut.tenant_id = t.id
);
INSERT INTO `user_departments` (`user_id`, `department_id`, `created`)
SELECT u.id, d.id, NOW()
FROM users u
JOIN departments d ON d.code = 'MUSTER2'
JOIN tenants t ON t.id = d.tenant_id AND t.description = 'MusterMandant'
WHERE u.email = 'hilde@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_departments ud WHERE ud.user_id = u.id AND ud.department_id = d.id
);
INSERT INTO `user_roles` (`user_id`, `role_id`, `created`)
SELECT u.id, r.id, NOW()
FROM users u
JOIN roles r ON r.description = 'Support'
WHERE u.email = 'hilde@user.com'
AND NOT EXISTS (
SELECT 1 FROM user_roles ur WHERE ur.user_id = u.id AND ur.role_id = r.id
);
INSERT INTO `pages` (`uuid`, `slug`, `created`) INSERT INTO `pages` (`uuid`, `slug`, `created`)
SELECT UUID(), v.slug, NOW() SELECT UUID(), v.slug, NOW()
FROM ( FROM (