Motivation
Since police authentication is moving more towards the police side, CHPD wants a way to manage the accounts that they have with the system. This will involve adding a police admin role for police accounts, and giving them a separate table page to manage police accounts.
Completion Criteria
Database
Backend - Pydantic / DTOs
Backend - Routes
Frontend — Police Admin Dashboard Page
Frontend — Admin Dashboard
Frontend - Auth & Routing
Important Notes
Motivation
Since police authentication is moving more towards the police side, CHPD wants a way to manage the accounts that they have with the system. This will involve adding a police admin role for police accounts, and giving them a separate table page to manage police accounts.
Completion Criteria
Database
roleenum (officer,police_admin) added to thePolicetableBackend - Pydantic / DTOs
Police Account DTOandUpdate Police Account DTOincludesrolefieldroleas"officer"or"police_admin"instead of the old"police"literalBackend - Routes
PUT /police/{police_id}accepts and persistsrolechangesGET /policeimplemented with List Query Params,police_adminrole requiredGET /police/csvimplemented, returns Excel file stream,police_adminrole requiredofficerorpolice_adminrole (previously checked for a singlepolicerole)Frontend — Police Admin Dashboard Page
Frontend — Admin Dashboard
officerorpolice_adminfor police rowsofficer/police_adminoptionsFrontend - Auth & Routing
officerrole usersofficer/police_admin) correctly parsed and stored in sessionImportant Notes