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:
356
db/init/init.sql
356
db/init/init.sql
@@ -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
|
||||
);
|
||||
|
||||
-- ─── 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`)
|
||||
SELECT UUID(), v.slug, NOW()
|
||||
FROM (
|
||||
|
||||
Reference in New Issue
Block a user