forked from fa/breadcrumb-the-shire
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
|
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 (
|
||||||
|
|||||||
Reference in New Issue
Block a user