diff --git a/add_finance_to_enum.sql b/add_finance_to_enum.sql new file mode 100644 index 0000000..a122afd --- /dev/null +++ b/add_finance_to_enum.sql @@ -0,0 +1,27 @@ +-- Add 'finance' value to UserRole enum type +-- This is needed because we added a new finance role to the dynamic RBAC system + +BEGIN; + +-- Add the finance value to the userrole enum if it doesn't already exist +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 FROM pg_enum + WHERE enumlabel = 'finance' + AND enumtypid = (SELECT oid FROM pg_type WHERE typname = 'userrole') + ) THEN + ALTER TYPE userrole ADD VALUE 'finance'; + RAISE NOTICE 'Added finance to userrole enum'; + ELSE + RAISE NOTICE 'finance already exists in userrole enum'; + END IF; +END$$; + +COMMIT; + +-- Verify the enum values +SELECT enumlabel +FROM pg_enum +WHERE enumtypid = (SELECT oid FROM pg_type WHERE typname = 'userrole') +ORDER BY enumsortorder; diff --git a/models.py b/models.py index 79dedf9..ca4e842 100644 --- a/models.py +++ b/models.py @@ -22,6 +22,7 @@ class UserRole(enum.Enum): member = "member" admin = "admin" superadmin = "superadmin" + finance = "finance" class RSVPStatus(enum.Enum): yes = "yes" diff --git a/seed_permissions_rbac.py b/seed_permissions_rbac.py index 619aea5..1ab34ff 100755 --- a/seed_permissions_rbac.py +++ b/seed_permissions_rbac.py @@ -221,7 +221,7 @@ def seed_permissions(): 'member': UserRole.member, 'admin': UserRole.admin, 'superadmin': UserRole.superadmin, - 'finance': UserRole.admin # Finance uses admin enum for now + 'finance': UserRole.finance # Finance has its own enum value } total_assigned = 0