OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

001_initial_data.sql

7 KB
-- ============================================================
-- IT-Dokumentationssystem - Initiale Stammdaten
-- Version: 1.0.0
--
-- Diese Daten werden bei der Erstinstallation eingespielt.
-- ============================================================

SET NAMES utf8mb4;

-- ============================================================
-- CAPABILITIES (Atomare Berechtigungen)
-- ============================================================

INSERT INTO `capabilities` (`name`, `description`, `category`, `risk_level`) VALUES
-- Seiten-Berechtigungen
('read_page', 'Berechtigung zum Lesen von Seiteninhalten und Metadaten', 'page', 'low'),
('create_page', 'Berechtigung zum Erstellen neuer Dokumentationsseiten', 'page', 'medium'),
('edit_page', 'Berechtigung zum Bearbeiten bestehender Seiteninhalte', 'page', 'medium'),
('delete_page', 'Berechtigung zum Archivieren/Löschen von Seiten', 'page', 'high'),
('restore_version', 'Berechtigung zum Wiederherstellen alter Seitenversionen', 'page', 'medium'),
('view_versions', 'Berechtigung zum Einsehen der Versionshistorie', 'page', 'low'),

-- Datei-Berechtigungen
('upload_file', 'Berechtigung zum Hochladen von Dateianhängen', 'file', 'medium'),
('download_file', 'Berechtigung zum Herunterladen von Dateianhängen', 'file', 'low'),
('delete_file', 'Berechtigung zum Entfernen von Dateianhängen', 'file', 'high'),

-- Export-Berechtigungen
('export_pdf', 'Berechtigung zum Exportieren einzelner Seiten als PDF', 'export', 'low'),
('export_zip', 'Berechtigung zum Exportieren von Bereichen als ZIP-Archiv', 'export', 'medium'),
('export_zip_encrypted', 'Berechtigung zum Erstellen verschlüsselter ZIP-Exporte', 'export', 'medium'),

-- Workflow-Berechtigungen
('approve_changes', 'Berechtigung zum Freigeben von Änderungen', 'workflow', 'high'),
('manage_responsibilities', 'Berechtigung zum Verwalten von Verantwortlichkeiten und Prüfzyklen', 'workflow', 'high'),

-- Admin-Berechtigungen
('view_audit_log', 'Berechtigung zum Einsehen des Audit-Logs', 'admin', 'high'),
('manage_topic_permissions', 'Berechtigung zum Verwalten von Berechtigungen innerhalb eines Themengebiets', 'admin', 'high'),
('manage_users', 'Berechtigung zur globalen Benutzerverwaltung', 'admin', 'critical'),
('manage_roles', 'Berechtigung zur Verwaltung von Rollen und deren Capabilities', 'admin', 'critical'),
('manage_all_permissions', 'Berechtigung zur globalen Rechteverwaltung', 'admin', 'critical'),
('system_admin', 'Vollstaendige Systemadministrationsrechte', 'admin', 'critical'),

-- Bestell-Board
('manage_orders', 'Bestellungen verwalten (Bestell-Board)', 'order', 'medium'),

-- IT-Services
('view_services', 'IT-Services ansehen und nutzen', 'service', 'low'),
('manage_services', 'IT-Services und Kategorien verwalten (anlegen, bearbeiten, loeschen)', 'service', 'medium'),

-- Adressbuch
('view_contacts', 'Adressbuch ansehen', 'contact', 'low'),
('manage_contacts', 'Kontakte und Firmen verwalten', 'contact', 'medium');

-- ============================================================
-- STANDARD-ROLLEN
-- ============================================================

INSERT INTO `roles` (`name`, `description`, `is_admin`) VALUES
('Reader', 'Lesezugriff auf Dokumentation. Kann Seiten und Anhänge lesen, PDF-Exporte erstellen.', FALSE),
('Contributor', 'Kann zusätzlich zum Lesen neue Seiten erstellen und bestehende bearbeiten.', FALSE),
('Editor', 'Volle Inhaltsberechtigungen inkl. Löschen und Versionswiederherstellung.', FALSE),
('Reviewer', 'Prüfer-Rolle für Freigaben und Verantwortlichkeiten.', FALSE),
('Topic Admin', 'Administrator für einzelne Themengebiete mit Rechteverwaltung.', FALSE),
('Auditor', 'Revisionszugriff mit Leserechten und Audit-Log-Einsicht.', FALSE),
('System Admin', 'Globaler Systemadministrator mit allen Berechtigungen.', TRUE);

-- ============================================================
-- ROLLEN-CAPABILITY-ZUORDNUNGEN
-- ============================================================

-- Reader: Nur Lesen
INSERT INTO `role_capabilities` (`role_id`, `capability_id`)
SELECT r.id, c.id FROM roles r, capabilities c
WHERE r.name = 'Reader' AND c.name IN (
    'read_page', 'view_versions', 'download_file', 'export_pdf'
);

-- Contributor: Reader + Erstellen/Bearbeiten
INSERT INTO `role_capabilities` (`role_id`, `capability_id`)
SELECT r.id, c.id FROM roles r, capabilities c
WHERE r.name = 'Contributor' AND c.name IN (
    'read_page', 'view_versions', 'download_file', 'export_pdf',
    'create_page', 'edit_page', 'upload_file'
);

-- Editor: Contributor + Löschen/Wiederherstellen
INSERT INTO `role_capabilities` (`role_id`, `capability_id`)
SELECT r.id, c.id FROM roles r, capabilities c
WHERE r.name = 'Editor' AND c.name IN (
    'read_page', 'view_versions', 'download_file', 'export_pdf',
    'create_page', 'edit_page', 'upload_file',
    'delete_page', 'delete_file', 'restore_version', 'export_zip'
);

-- Reviewer: Reader + Freigabe/Verantwortlichkeiten
INSERT INTO `role_capabilities` (`role_id`, `capability_id`)
SELECT r.id, c.id FROM roles r, capabilities c
WHERE r.name = 'Reviewer' AND c.name IN (
    'read_page', 'view_versions', 'download_file', 'export_pdf',
    'approve_changes', 'manage_responsibilities'
);

-- Topic Admin: Editor + Reviewer + Topic-Rechteverwaltung
INSERT INTO `role_capabilities` (`role_id`, `capability_id`)
SELECT r.id, c.id FROM roles r, capabilities c
WHERE r.name = 'Topic Admin' AND c.name IN (
    'read_page', 'view_versions', 'download_file', 'export_pdf',
    'create_page', 'edit_page', 'upload_file',
    'delete_page', 'delete_file', 'restore_version', 'export_zip',
    'approve_changes', 'manage_responsibilities',
    'manage_topic_permissions'
);

-- Auditor: Reader + Audit-Log
INSERT INTO `role_capabilities` (`role_id`, `capability_id`)
SELECT r.id, c.id FROM roles r, capabilities c
WHERE r.name = 'Auditor' AND c.name IN (
    'read_page', 'view_versions', 'download_file',
    'export_pdf', 'export_zip', 'export_zip_encrypted',
    'view_audit_log'
);

-- System Admin: Alle Capabilities
INSERT INTO `role_capabilities` (`role_id`, `capability_id`)
SELECT r.id, c.id FROM roles r, capabilities c
WHERE r.name = 'System Admin';

-- ============================================================
-- E-MAIL-VORLAGEN
-- ============================================================

INSERT INTO `email_templates` (`template_key`, `subject`, `body_html`, `description`) VALUES
('page_changed', 'Seite geaendert: {{page_title}}',
 '<p>Hallo {{user_name}},</p><p>die Seite <strong>{{page_title}}</strong> im Themengebiet <strong>{{topic_name}}</strong> wurde von <strong>{{editor_name}}</strong> bearbeitet.</p><p>{{change_reason}}</p><p><a href="{{page_url}}">Seite ansehen</a></p><p>Freundliche Gruesse<br>{{app_name}}</p>',
 'Wird gesendet wenn eine Seite geaendert wird, fuer die man verantwortlich ist'),
('review_due', 'Review faellig: {{page_title}}',
 '<p>Hallo {{user_name}},</p><p>fuer die Seite <strong>{{page_title}}</strong> im Themengebiet <strong>{{topic_name}}</strong> ist heute ein Review faellig.</p><p><a href="{{page_url}}">Seite pruefen</a></p><p>Freundliche Gruesse<br>{{app_name}}</p>',
 'Wird gesendet wenn ein Review faellig ist');