Steuerkram/migrations/093_users_role.sql

13 lines
619 B
SQL

-- Migration 093: Rollen-Feld für users (Fix #147 - fehlende Autorisierung
-- in der Benutzerverwaltung, jeder eingeloggte Benutzer konnte bislang
-- beliebige Konten anlegen/löschen/übernehmen).
ALTER TABLE users
ADD COLUMN IF NOT EXISTS role ENUM('admin','user') NOT NULL DEFAULT 'user' AFTER password_hash;
-- Bestandsinstallationen: den ältesten Benutzer automatisch zum Admin
-- machen, damit die Benutzerverwaltung nach dem Update nicht für alle
-- Bestandsnutzer gesperrt ist.
UPDATE users u
JOIN (SELECT MIN(id) AS min_id FROM users) m ON u.id = m.min_id
SET u.role = 'admin'
WHERE u.role != 'admin';