Skip to content

feat(import): allow org editors to import DEAs with org assignment#112

Open
vgpastor wants to merge 3 commits intomainfrom
feature/org-editor-imports
Open

feat(import): allow org editors to import DEAs with org assignment#112
vgpastor wants to merge 3 commits intomainfrom
feature/org-editor-imports

Conversation

@vgpastor
Copy link
Contributor

@vgpastor vgpastor commented Mar 9, 2026

Summary

  • Los editores de organización (can_edit=true) ahora pueden usar la importación CSV en /admin/imports
  • Los DEAs importados se asocian automáticamente a la organización del editor via AedOrganizationAssignment
  • El tipo de asignación (OWNERSHIP, MAINTENANCE, VERIFICATION) es configurable durante la importación
  • El historial de importaciones filtra por organización (admins ven todo)

Cambios

Backend (6 archivos)

  • auth.ts: Nueva función requireImportPermission() — valida admin o miembro de org con can_edit
  • /api/auth/me: canImportAeds ahora incluye editores de org
  • /api/import GET: Filtra por organización para no-admins
  • /api/import POST: Acepta organizationId + assignmentType
  • PrismaStateStore: Persiste organization_id en el BatchJob
  • BulkImportService: Propaga contexto organizacional al state store y processor
  • aedRecordProcessor: Crea AedOrganizationAssignment en la misma transacción que el AED
  • Resume/Cancel routes: Verifican membership de org (no solo ownership del job)

Frontend (2 archivos)

  • admin/imports/page.tsx: Accesible para editores de org, muestra badge de organización
  • ImportWizard.tsx: Selector de organización (auto-seleccionado si solo tiene una) + dropdown de tipo de asignación

Sin migración DB

BatchJob.organization_id ya existe en el schema.

Test plan

  • Login como admin: importar sin org (comportamiento actual preservado)
  • Login como admin: importar seleccionando una org → verificar AedOrganizationAssignment
  • Login como org editor con can_edit: importar → org auto-seleccionada → seleccionar assignmentType → importar → verificar assignment
  • Login como org editor: ver historial → solo ve importaciones de su org
  • Login como org editor: resume/cancel de importación de su org funciona
  • Login como user sin permisos de edición: no ve la opción de importar

🤖 Generated with Claude Code

Organization editors (can_edit=true) can now use the CSV import at
/admin/imports. Imported DEAs are automatically associated with the
importing organization via AedOrganizationAssignment, and the assignment
type (OWNERSHIP, MAINTENANCE, VERIFICATION) is configurable during import.

Backend:
- Extend canImportAeds permission to include org editors
- Add requireImportPermission() auth helper
- GET /api/import filters by org for non-admins
- POST /api/import accepts organizationId + assignmentType
- PrismaStateStore persists organization_id on BatchJob
- aedRecordProcessor creates AedOrganizationAssignment in transaction
- Resume/cancel routes verify org membership

Frontend:
- Admin imports page accessible to org editors with badge
- ImportWizard: org selector + assignment type dropdown

No DB migration needed — BatchJob.organization_id already exists.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link
Contributor

vercel bot commented Mar 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dea-map Ready Ready Preview, Comment Mar 9, 2026 9:31pm

Request Review

Add test users with working passwords (123456) and org memberships:
- editor@deamap.es → SAMUR - Protección Civil (can_edit)
- verificador@deamap.es → SAMUR - Protección Civil (can_edit + can_verify)

These users allow testing the org editor import flow on branch DBs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Assignment type is now auto-derived from the organization's type
  (e.g., CIVIL_PROTECTION org → CIVIL_PROTECTION assignment). Only
  global admins can override this via a dropdown selector.
- Add "Importar" link to main navigation (visible when canImportAeds)
- Add "Importar DEAs" quick action to org dashboard for editors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vgpastor vgpastor added enhancement New feature or request help wanted Extra attention is needed labels Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request help wanted Extra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant