33 lines
829 B
SQL
33 lines
829 B
SQL
-- Normalize existing roles to the Web authorization model.
|
|
-- This migration is intentionally re-runnable.
|
|
|
|
ALTER TABLE users
|
|
DROP CONSTRAINT IF EXISTS users_role_check;
|
|
|
|
UPDATE users
|
|
SET role = 'user'
|
|
WHERE role NOT IN ('admin', 'user');
|
|
|
|
ALTER TABLE users
|
|
ADD CONSTRAINT users_role_check
|
|
CHECK (role IN ('admin', 'user'));
|
|
|
|
ALTER TABLE user_project_membership
|
|
DROP CONSTRAINT IF EXISTS user_project_membership_role_check;
|
|
|
|
UPDATE user_project_membership
|
|
SET project_role = CASE
|
|
WHEN project_role IN (
|
|
'owner',
|
|
'admin',
|
|
'modeler',
|
|
'dispatcher'
|
|
) THEN 'member'
|
|
ELSE 'viewer'
|
|
END
|
|
WHERE project_role NOT IN ('member', 'viewer');
|
|
|
|
ALTER TABLE user_project_membership
|
|
ADD CONSTRAINT user_project_membership_role_check
|
|
CHECK (project_role IN ('member', 'viewer'));
|