Add RBAC, convert existing roles
Adds full Role-Based Access Control mechanisms and converts the existing shift coordinator role.
The following roles will be created:
-
shift_coordinator
: Can manage session assignments and scheduling -
events_admin
: Can manage conferences and all sub-resources
Based on the following permissions:
manage_assignments = Permission.create!(name: 'manage_assignments', description: 'Can create and delete assignments')
manage_conferences = Permission.create!(name: 'manage_conferences', description: 'Can create, edit, and delete conferences')
manage_sessions = Permission.create!(name: 'manage_sessions', description: 'Can create, edit, and delete sessions')
manage_speakers = Permission.create!(name: 'manage_speakers', description: 'Can create, edit, and delete speakers')
manage_stages = Permission.create!(name: 'manage_stages', description: 'Can create, edit, and delete stages')
shift_coordinator_role.permissions << manage_assignments
events_admin_role.permissions << manage_conferences
events_admin_role.permissions << manage_sessions
events_admin_role.permissions << manage_speakers
events_admin_role.permissions << manage_stages